안녕하세요 이우영입니다.


일주일이 참 빨리 지나가죠?


방학 기간중이 버 바쁜거 같아요 ㅎㅎ


그럼 오늘은 swapper에 대해서 알아보도록 하겠습니다.

(swap과는 다른겁니다!!)


swapper는 윈도우의 idle process를 생각하시면 쉽습니다.


리눅스에서 실행할 프로세스가 아무것도 없을 경우 실행되는 프로세스가 


swapper process입니다.


쉘 창에서 ps 명령어를 치면 현재 실행중인 프로세스가 나옵니다.


ps..png


하지만 이 swapper는 안보입니다 ㅎㅎ.


하지만 저번 시간에 context_switch를 공부 할 때 문맥교환이 일어나는 모습중에


다음과 같이 pid가 0인 swapper가 나왔습니다.


ubuntu- ~-1.png


그림을 보면 swapper는 자주 실행 되는걸 볼 수 있습니다.


그럼 swapper가 어떻게 생성 되는지 간단한 그림으로 알아보도록 하겠습니다.


swapper 생성과정.PNG  


먼저 start_kernel 이 수행되면서 여러 가지를 초기화 합니다.


초기화를 다 하고 나서 rest_init를 호출 합니다. 


rest_init는 init process를 만들어주고 스케줄도 시작합니다.


그리고 나서 프로세스가 하는 일이 없을 경우 cpu_idle 을 수행합니다.


cpu_idle는 무한 루프를 돌면서 종료 되지 않습니다.


오늘은 소개로 넘어가구요 다음시간에는 소스코드와 같이 살펴 보도록 하겠습니다.


그럼 다음시간에 만나요~


http://ms-osek.org/ <- 쫌더 빨리 보고 싶으신분은 여기로 오세요~