작업 스케줄러라고도 부르며, 어떤 프로세스를 준비 큐에 삽입할지 결정하는 역할을 합니다.
준비 큐에 있는 프로세스들은 메모리를 보유하고 있으므로 장기 스케줄러가 이를 관여합니다.
장기 스케줄러는 현재에 많이 쓰이지 않습니다. 그 이유는 과거에는 적은 양의 메모리를 많은 프로세스들에게 할당하면 프로세스당 메모리 보유량이 지나치게 적어져 시스템의 효율이 매우 떨어졌기 때문에 사용했지만 현재는 연산 속도가 증가하고 메모리가 커졌기 때문에 프로세스가 시작 상태가 되면 곧바로 프로세스에 메모리를 할당해 준비 큐에 넣어주게 됩니다.
너무 많은 프로세스에게 메모리를 할당해 시스템의 성능이 저하되는 경우, 이를 해결하기 위해 메모리에 적재된 프로세스의 수를 동적으로 조절하기 위한 스케줄러입니다.
즉, 중기 스케줄러는 프로세스당 보유 메모리량이 지나치게 적어진 경우 이를 완화시키기 위해 일부 프로세스를 메모리에서 디스크로 스왑 아웃(메모리를 빼앗아 그 내용을 디스크에 스왑 영역에 저장해두는 것)시키는 역할을 수행합니다.
중기 스케줄러가 프로세스들을 스왑 아웃 시키는 것을 중지라고 하는데, 이 중지는 중지 준비, 중지 봉쇄가 있습니다.
중지 준비는 준비 상태에 있던 프로세스가 중기 스케줄러에 의해 디스크로 스왑 아웃는 것입니다.
또한, 중지 봉쇄 상태는 봉쇄 상태에 있던 프로세스가 중기 스케줄러에 의해 스왑 아웃되는 것입니다.
CPU 스케줄러라고도 하며, 준비 상태의 프로세스 중에서 어떤 프로세스를 다음 번에 실행 상태로 만들 것인지를 결정합니다.
즉, 준비 큐에 있는 여러 프로세스들 중에 어떠한 프로세스에게 CPU를 할당한 것인지를 단기 스케줄러가 결정하게 됩니다.