본문 바로가기
운영체제

혼자 공부하는 운영체제 (4) - Scheduler

by 임동무 2022. 10. 24.

스케줄링

1. Scheduler

  • 단기 스케줄러 ( short - term scheduler)
  • 장기 스케줄러 ( long - term scheduler) 
  • 중기 스케줄러 ( medium - term scheduler)

1. 단기 스케줄러

- CPU 스케줄러라고 불리며 메모리에 ready queue 중 다음에 어떤 프로세스를 실행할 지에 대한 스케줄링을 한다.

 

2. 장기 스케줄러

- Job scheduler 라고 불린다. new 상태의 프로세스 중 어떤 프로세스를 admit 해서 ready queue 상태로 올릴지를 스케줄링 하는 역할을 한다. 예를 들어 10개의 프로세스를 수행해야 하는데 이 중에 메모리에는 6개 밖에 올릴 수 없는 상황이라면, 10개 중 6개를 선별해야 하는데 그 작업을 하는 scheduler 이다. 즉 메모리의 프로그램 수 (degree of multiprogramming) 를 제어한다. 

보통의 time sharing system 에서는 바로 ready 상태가 되기 때문에 없다. 

 

3. 중기 스케줄러

- 중기 스케줄러는 Swapper 라고도 불린다. 그 이유는 장기 스케줄러에 의해 메모리에 올라온 queue 들 중, CPU 에서 모든 프로세스를 처리하기 힘들 때 등의 이유로 해당 프로세스를 Swapping out 하여 메모리 밖으로 빼버린다. 이런 식으로 Swapping out / Swapping in 을 통해 degree of multiprogramming 을 중재하는 역할을 한다. 

 

 

2. 프로세스의 상태 + Suspended (stopped)

  • Ready
  • Running (monitor mode)
  • Running (user mode)
  • Blocked (sleep, wait)
  • Suspended - blocked
  • Suspended - ready

1. Ready

 - Ready 상태는 프로세스가 실행 준비가 된 상태를 의미한다. ready 상태의 프로세스가 Schedule dispatcher 에 의해 CPU 를 받으면 Running (monitor mode) 가 된다. 

 

2. Running - monitor mode

- 운영체제의 코드를 실행하는 부분을 의미한다. 할당시간이 만료되는 경우 Preempted 되어 Ready 상태가 된다. 

 

3. Running - user mode

 - 사용자 프로그램이 실행되고 있는 상태를 의미한다. System call , Interrupt Occur 에 의해 운영체제에게 CPU 제어권이 넘어가도, 사용자 프로그램이 실행되고 있다고 간주한다. 이 때, Running - monitor mode 상태가 된다. 

 

4. Blocked

 - I/O 요청등 프로세스가 요청한 event 를 기다리고 있는 상태, event 가 완료되면 Ready 상태가 된다. (Wake up)

 

5. Suspended - blocked

 - 중기 스케줄러에 의해 blocked 된 프로세스가 swap out 된 경우 Suspended - blocked 상태가 된다. 일반적인 blocked 의 경우 event 가 완료되면 ready 상태가 되지만, Suspended 상태의 경우 외부에서 resume 을 해주어야 Active 상태(Swap in)가 될 수 있다. 

 

6. Suspended - ready

 - Suspened blocked 상태의 프로세스가 event 가 완료되면 Suspended - ready 상태가 된다 (wake up) . 이 때도 마찬가지로 외부에서 resume 을 해주어야 (Swap in) Active 되어 Ready 상태가 될 수 있다. 

 

댓글