강좌 & 팁
글 수 2,412
2011.08.01 20:16:07 (*.119.104.169)
42696
안녕하세요 이우영입니다.
일주일이 참 빨리 지나가죠?
방학 기간중이 버 바쁜거 같아요 ㅎㅎ
그럼 오늘은 swapper에 대해서 알아보도록 하겠습니다.
(swap과는 다른겁니다!!)
swapper는 윈도우의 idle process를 생각하시면 쉽습니다.
리눅스에서 실행할 프로세스가 아무것도 없을 경우 실행되는 프로세스가
swapper process입니다.
쉘 창에서 ps 명령어를 치면 현재 실행중인 프로세스가 나옵니다.
하지만 이 swapper는 안보입니다 ㅎㅎ.
하지만 저번 시간에 context_switch를 공부 할 때 문맥교환이 일어나는 모습중에
다음과 같이 pid가 0인 swapper가 나왔습니다.
그림을 보면 swapper는 자주 실행 되는걸 볼 수 있습니다.
그럼 swapper가 어떻게 생성 되는지 간단한 그림으로 알아보도록 하겠습니다.
먼저 start_kernel 이 수행되면서 여러 가지를 초기화 합니다.
초기화를 다 하고 나서 rest_init를 호출 합니다.
rest_init는 init process를 만들어주고 스케줄도 시작합니다.
그리고 나서 프로세스가 하는 일이 없을 경우 cpu_idle 을 수행합니다.
cpu_idle는 무한 루프를 돌면서 종료 되지 않습니다.
오늘은 소개로 넘어가구요 다음시간에는 소스코드와 같이 살펴 보도록 하겠습니다.
그럼 다음시간에 만나요~
http://ms-osek.org/ <- 쫌더 빨리 보고 싶으신분은 여기로 오세요~