Процесс планирования осуществляется частью ОС, называемой планировщиком. Он может принимать решения о выборе для исполнения нового процесса из числа находящихся в состоянии готовность в следующих 4 случаях:
1. когда процесс переводится из состояния исполнение в состояние закончил исполнение
2. когда процесс переводится из состояния исполнение в состояние ожидание
3. когда процесс переводится из состояния исполнение в состояние готовность (например, после прерывания от таймера)
4. когда процесс переводится из состояния ожидание в состояние готовность (завершилась операция ввода-вывода или произошло другое событие)
В случаях 1и 2 процесс, находящийся в состоянии исполнение не может дальше исполняться и ОС вынуждена осуществлять планирование, выбирая новый процесс для выполнения.
В случаях 3 и 4 планирование может как проводиться, так и не проводиться. Планировщик не вынужден обязательно принимать решение о выборе процесса для выполнения. Процесс, находящийся в состоянии исполнение может просто продолжить свою работу.
Если в ОС планирование осуществляется только в вынужденных ситуациях, говорят, что имеет место невытесняющее планирование.
Если планировщик принимает и вынужденные, и невынужденные решения, говорят о невытесняющем планировании.
Термин «вытесняющее планирование» возник потому, что исполняющийся процесс может быть вытеснен из состояния исполнение другим процессом.
Невытесняющее планирование проще организовано и минимум затрат на переключение контекста, но существует реальная опасность «полного захвата» процессора исполняющимся процессом (зацикливание). Выход в подобной ситуации: перезагрузка всей системы.
Вытесняющее планирование обычно используется в системах разделения времени. В этом режиме процесс может быть приостановлен в любой момент исполнения.