리눅스 커널 메모리 할당과 GFP Flags (kmalloc, GFP_KERNEL, GFP_ATOMIC)
메모리 할당이란?프로그램을 실행하면서 처리할 데이터, 변수, 그리고 각종 연산에 필요한 정보들은 메모리에 저장되는데, 이 때 시스템에서 해당 데이터가 들어갈 적절한 공간(메모리 영역)을 찾아 할당해준다. 리눅스 커널에서는 이러한 메모리 할당 작업을 효율적으로 관리하기 위해 다양한 메모리 할당 함수와 메커니즘을 제공하는데, kmalloc, vmalloc, alloc_pages와 같은 함수들이 이러한 역할을 수행한다. 1. 메모리 할당이 필요한 이유자원 효율성: 메모리 공간은 한정되어 있기 때문에, 시스템 자원을 효율적으로 사용하려면 필요한 만큼만 메모리를 할당해야 한다. 할당된 메모리는 프로그램이 실행되는 동안 사용되며, 프로그램이 종료되면 다시 시스템에 반환되어 다른 프로그램이 사용할 수 있도록 해줘야..