스케줄링
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 상태가 될 수 있다.
'운영체제' 카테고리의 다른 글
혼자 공부하는 운영체제 (5) - Thread (0) | 2022.10.24 |
---|---|
혼자 공부하는 운영체제 (3) - 프로세스의 실행 (0) | 2022.10.22 |
혼자 공부하는 운영체제 (2) - 운영체제의 구조 (0) | 2022.10.18 |
혼자 공부하는 운영체제 (1) - 운영체제란 무엇인가? (0) | 2022.10.13 |
댓글