Вытесняющая многозадачность (приоритетная многозадачность, , дословно упреждающая многозадачность) — это вид многозадачности, при которой операционная система принимает решение о переключении между задачами по истечении некоего кванта времени.

Особенности Решение принимается в соответствии с приоритетами задач. В отличие от кооперативной многозадачности, управление операционной системе передаётся вне зависимости от состояния работающих приложений, благодаря чему, в частности, зависшие (к примеру — зациклившиеся) приложения, как правило, не «подвешивают» операционную систему. За счёт регулярного переключения задач также улучшается системы, оперативность освобождения ресурсов системы, которые больше не используются задачей.

В реализации вытесняющая многозадачность отличается от кооперативной, в частности, тем, что требует обработки системного прерывания от аппаратного таймера. По истечении кванта времени, отведённого процессу, происходит прерывание и вызывается планировщик процессов. Частота вызова планировщика критична: слишком частый его вызов будет расходовать процессорное время впустую.

Поддержка в операционных системах Вытесняющая многозадачность используется в большинстве современных операционных систем общего назначения, к примеру: Windows 9x и NT, Linux (и другие UNIX) и OS/2, Mac OSЭто касается современных версий, начиная с OS X, «классическая» Mac OS реализовывала невытесняющую многозадачность (см, к примеру и BeOS, MenuetOS и KolibriOS. Примером системы с вытесняющей многозадачностью более ранней, чем UNIX, может служить VMS. Она также используется во многих встраиваемых операционных системах реального времени, таких как FreeRTOS.

См. также Многозадачность: Кооперативная Мультипрограммирование Многопоточность

Примечания

Литература

Категория:Технологии в операционных системах Категория:Управление конкурентными потоками