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