Skip to content

Kernel Internals

Jerry Park edited this page Aug 10, 2020 · 2 revisions

1. 리눅스의 메모리 할당 방식에 대해서 설명하시오.

2. kmalloc과 vmalloc의 차이점은 무엇인가?

kmalloc은 메모리 할당 크기에 제한이 있고, 빠르게 할당되고..또 뭐가 있나..vmalloc은 크게 할당이 가능한 대신 느리고.. 기타 나머지는 생략. kmalloc 은 kernel space 를 기준으로 연속적 관리가 가능한 공간에 메모리를 할당하기 위해서 사용하는 것이고, vmalloc 은 꼭 연속아..연속적인 공간으로 할당하고(DMA에 써먹는 용도로..) 적일 필요가 없는, virtual memory mapping 을 통해 자연할당 되어 프로그래밍 하는놈이 맘편하게 신경 끄고 싶을때 사용하는거임.

3. /proc/slabinfo 를 설명하시오.

커널의 동적 메모리 할당 정보

4. Semaphore와 mutex의 차이점은 무엇인가?

공유 자원에 접근하는 방식의 차이. 동시/비동시

5. 디바이스 드라이버 작성 시 콜드 부트(cold boot)와 웜 부트(warm boot)의 차이를 설명하시오.

6. 리눅스의 I/O 스케줄러에 대해 설명하시오.

어떤 요청에 대한 seek time을 최소화하여 전체적인 throughput과 response time을 최소화하는 것.

7. spinlock, semaphore의 차이점을 설명하시오.

8. 리눅스의 네임스페이스가 무엇인가? (가상화 관련/도커 컨테이너등에서 사용)

Clone this wiki locally