목록로드맵/OS (1)
공대생 정리노트
커널 - Slab
Slab이란? Slab은 커널 데이터 객체 생성/파괴의 오버헤드로 인한 성능 저하를 줄이기 위해서 자주 사용되는 오브젝트들을 미리 만들어 관리한다. Slab에 할당된 객체가 release 되더라도 slab은 재사용을 위해서 캐시된 상태로 유지한다. 이해를 하기 위해 전체적인 메모리 할당 구조를 한번 보자. kmalloc() 함수를 통해 커널 내부에서 메모리를 할당받을 때 어떤 일이 일어날까? 커널은 메모리를 페이지 단위로 관리하고, 커널의 page allocator을 buddy allocator라고 한다. buddy allocator는 external fragmentation을 줄이기 위해 메모리를 관리한다. (Buddy allocator에 대한 자세한 설명은 다른 글들을 참고하면 좋다) 커널은 budd..
로드맵/OS
2022. 11. 13. 12:02