운영체제가 모든 프로세스들이 시간적, 공간적으로 가장 효율적으로 실행되도록 관리하는 것을 스케줄링이라고 한다.
스케줄링은 장기, 중기, 단기 스케줄링의 단계로 이루어져이 있다.
장기 스케줄링
중기 스케줄링
단기 스케줄링
특정 프로세스에 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법이다.
한 프로세스가 CPU를 할당받으면, 해당 프로세스가 완료될 때 까지 할당받은 CPU를 계속 사용한다.
프로세스 응답 시간을 예측하기 쉽다.
선점 방식보다 스케줄러 호출 빈도가 낮고, 컨텍스트 스위치에 의한 오버헤드가 적다.
일괄 처리 시스템(프로그램 흐름에 따라 순차적으로 처리하는 방식)에 적합하다.
짧고 중요한 작업이 길고 중요하지 않은 작업이 끝날 때 까지 기다리는 경우가 발생할 수 있다.
어떤 프로세스가 CPU를 할당받아 실행되고 있을 때, 우선순위가 더 높은 다른 프로세스가 해당 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법이다.
우선순위가 높은 프로세스를 빠르게 처리할 수 있다.
주로 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용된다.
많은 오버헤드를 발생시킨다.