스케줄러란?
- 어떤 프로세스에게 자원을 할당할지를 결정하는 운영체제 커널의 모듈
스케줄링 Queue 종류
- Job Queue : 하드디스크에 있는 프로그램이 실행되기 위해 메인 메모리의 할당 순서를 기다리는 큐
- Ready Queue : 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합
- Device Queue : Device I/O 작업을 대기하고 있는 프로세스의 집합
장기, 단기, 중기 스케줄러란
- 장기 스케줄러 : 하드 디스크에서 대기 중인 프로세스들 중에서 어떤 프로세스을 Ready Queue에 삽입 할 지를 결정하는 역할
- 장기 스케줄러는 가끔 호출되기 때문에 상대적으로 느린 속도가 허용됨
- 현대의 운영체제에서는 보통 장기 스케줄러 없이 프로세스를 바로 Ready Queue에 넣는 경향이 있음
- 단기 스케줄러 : 어떤 프로세스에게 CPU를 할당해줄 것인지 결정하는 역할
- CPU 스케줄러라고도 함
- 준비 상태인 프로세스 중에서 어떤 프로세스를 실행 상태로 만들 것인지를 결정함
- 인터럽트가 발생하면 단기 스케줄러가 호출됨
- 단기 스케줄러는 매우 빈번하게 호출되기 때문에 수행 속도가 충분히 빨라야 함
- 중기 스케줄러 : 메모리에 적재된 프로세스 수를 관리하는 역할
- 메모리에 적재된 프로세스의 수를 동적으로 조절하기 위한 스케줄러
- 메모리가 부족할 경우 중기 스케줄러는 우선순위가 낮은 프로세스나 일정 시간 동안 활성되지 않았던 프로세스를 스왑 메모리로 내림(Swapping out)