1️⃣ 스케줄러
- 스케줄링 : 여러 프로세서가 번갈아 사용하는 자원을 어떤 시점에 어떤 프로세스에 할당할지 결정하는 것
- 스케줄러 : 한정적인 메모리를 여러 프로세스가 효율적으로 사용할 수 있도록 다음 실행 시간에 실행할 수 있는 프로세스 중에 하나를 선택하는 것. 스케줄러에 따라 프로세스의 상태 변화
2️⃣ 스케줄링 큐 종류
- Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합
- Ready Queue : 현재 메모리 내에 있으면서 CPU 를 잡아서 실행되기를 기다리는 프로세스의 집합
- Device Queue : Device I/O 작업을 대기하고 있는 프로세스의 집합
3️⃣ 스케줄링 종류
-
장기 스케줄링 (작업 스케줄링, 상위)
- 어떤 프로세스가 시스템의 자원을 차지할 수 있도록 할 것인가를 결정하여 Ready 큐로 보내는 작업
- 메모리 - 디스크 사이의 스케줄링
- 프로세스에 메모리 할당
- degree of Multiprogramming 제어
- 프로세스의 상태를 New 에서 Ready 상태로 전환
-
단기 스케줄링 (하위 스케줄링) :
- 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업
- 프로세서 스케줄링 및 문맥 교환은 프로세서 스케줄러에 의해 수행됨
- Ready Queue에 있는 프로세스 중 어떤 프로세스를 Running 상태로 만들지 선택
- CPU - 메모리 사이의 스케줄링
- 프로세스에 CPU를 할당
-
중기 스케줄링
- 어떤 프로세스들이 CPU를 할당 받을 것인지 결정하는 작업
- CPU를 할당받으려는 프로세스가 많을 경우 (=Ready 중인 프로세스가 많은 경우) 프로세스를 일시 보류(Suspend)시킨 후 활성화(Ready) 해서 일시적으로 부하를 조절
- 여유 공간 마련을 위해 프로세스를 통째로 메모리에서 디스크로 쫓아냄 (swap out)
- 프로세스의 상태 : Ready ↔ Suspend (Suspend 의 경우 wait와는 달리 스스로 Ready로 돌아갈 수 없음)
참고
https://intrepidgeeks.com/tutorial/cs-interview-1st-week-scheduler
https://technote-mezza.tistory.com/70