※ 질문/내용오류/공유할 내용이 있다면 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에 대해서 논해보자.
'Operating Systems' 카테고리의 다른 글
[OS] Context Switcing (2) | 2013.01.01 |
---|---|
[OS] Job Queue, Ready Queue 그리고 Device Queue (1) | 2013.01.01 |
[OS] 프로세스 상태(Process State) (2) | 2012.12.31 |
[OS] Interrupt Service Routine (ISR) (2) | 2012.12.24 |
[OS] OS의 역할 (more details) (0) | 2012.12.24 |