Основное отличие между вытесняющими и невытесняющими алгоритмами планирования потоков заключается в степени централизации механизма планирования задач. 1
Вытесняющие алгоритмы (preemptive) предполагают, что переключением процессора с одного потока на другой управляет операционная система (планирование осуществляется только ОС). 12 Процесс может быть приостановлен в любой момент исполнения. 3 Операционная система устанавливает специальный таймер для генерации сигнала прерывания по истечении некоторого интервала времени — кванта. 3 После прерывания процессор передаётся в распоряжение следующего процесса. 3
Невытесняющие алгоритмы (non-preemptive) предполагают, что функции планирования разделены между ОС и приложениями. 12 Прикладной процесс, получив управление от операционной системы, сам определяет момент завершения своей очередной итерации и передаёт управление ОС с помощью какого-либо системного вызова. 1 ОС формирует очереди задач и выбирает в соответствии с некоторым алгоритмом (например, с учётом приоритетов) следующую задачу на выполнение. 1
Таким образом, при вытесняющих алгоритмах программист пишет своё приложение, не заботясь о том, что оно будет выполняться параллельно с другими задачами, а при невытесняющих алгоритмах управление системой теряется на произвольный период времени, который определяется приложением. 1