vmalloc1 Virtual Memory: vmalloc(), vm_map_ram() 분석 vmalloc(), vfree()란 커널에는 메모리를 할당하는 다양한 방법이 있다. 페이지 할당자는 물리적으로 연속적인 페이지 프레임을 할당하며, 슬랩 할당자는 order-n 페이지 하나를 같은 크기로 쪼개서 슬랩 객체를 할당한다. 페이지 할당자와 슬랩 모두 물리적으로 연속적인 메모리를 할당한다. 다만 물리 주소로 접근하지는 않고, direct map 영역의 주소를 사용하여 접근한다. 하지만 항상 물리적으로 연속적인 메모리를 할당할 수는 없는데, 할당하려는 메모리의 크기가 클 수록, 메모리가 단편화될 수록 물리적으로 연속적인 메모리를 할당하기가 어려워진다. vmalloc()은 물리적으로 연속적인 메모리를 할당하는 대신, 물리적으로 흩어진 메모리들을 가상 주소 상으로 연속적이도록 페이지 테이블을 초기화한다.. 2022. 7. 13. 이전 1 다음