※ 질문/내용오류/공유할 내용이 있다면 jinkilee73@gmail.com으로 메일 주세요 :-)


스케줄러에 대해서 이야기해보자.

이전의 포스팅에서 말했듯이, 스케줄러는 메모리에 있는 여러 프로세스 중에서 어떤 하나의 프로세스가 CPU 점유권을 가질지를 정해주는 것이다. 스케줄러는 세 가지 종류가 있다.


Long-term 스케줄러 (Job scheduler)

하드 디스크에서 메모리로 프로세스를 load하는 역할을 한다. 즉, 다음의 과정에서 long-term 스케줄러가 동작한다.



Short-term 스케줄러 (CPU scheduler)

메모리에 있는 프로세스 중에서 프로세스가 CPU 점유권을 가질 때 어떤 프로세스가 선택되는지를 결정하는 스케줄러이다. 다음과 같은 과정에 동작한다.


Midium-term 스케줄러

asleep 상태에서 ready 상태로 넘어가지 못 하거나 ready 상태에서 running 상태로 넘어가지 못 하는 상황이 발생하면 어떤 일이 벌어질까? 결과적으로 실행되지도 않으면서 메모리만 차지하고 있는 비효율적인 상황이 발생한다. 이럴 경우 메모리에 load되어있는 running 상태로 넘어가지 않는 프로세스를 하드디스크로 쫓아낸다.(swap-out) 그리고 나중에 필요에 의해 다시 메모리로 들어올 수도 있다.(swap-in) 즉, 아래와 같은 과정이다. 이 과정을 midium-term 스케줄러가 한다.


스케줄러에 대한 설명은 여기까지이다. 다음 포스팅에서는 Job Queue, Ready Queue 그리고 Device Queue에 대해서 논해보자.

Posted by 빛나유