Вытесняющая многозадачность

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

Особенности

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

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

Поддержка в операционных системах

Вытесняющая многозадачность используется в большинстве современных операционных систем общего назначения[4], к примеру: Windows 9x и NT[5], Linux (и другие UNIX)[6] и OS/2[7],[8] Mac OS[9][10] и BeOS[11], MenuetOS и KolibriOS[12]. Примером системы с вытесняющей многозадачностью более ранней, чем UNIX, может служить VMS[13]. Она также используется во многих встраиваемых операционных системах реального времени, таких как FreeRTOS[14].

См. также

Примечания

  1. Дорот Вячеслав Леонидович. Вытесняющая многозадачность // Толковый словарь современной компьютерной лексики. — 3 изд.. — БХВ-Петербург, 2004. — С. 143. — 608 с. — ISBN 978-5-94157-491-9.
  2. Hailperin, 2007, p. 37.
  3. Hailperin, 2007, p. 37-38.
  4. Алексей Белокопытов. Современные информационные технологии: учебное пособие. — Litres, 2016-01-02. — С. 6. — 173 с. — ISBN 9785457413658.
  5. Юрий Абрамович Щупак. Многозадачность // WIN32 API: разработка приложений для Windows. — Издательский дом «Питер», 2008-07-14. — С. 17-18. — 592 с. — ISBN 978-5-388-00301-0.
  6. Реймонд, 2005, 3.1.2. Поддержка многозадачности, с. 81.
  7. Реймонд, 2005, 3.2.3. OS/2, с. 92.
  8. Александр Владимирович Гордеев. Планирование и диспетчеризация процессов задач // Операционные системы: [по направлению подгот. «Информатика и вычислительная техника»]. — Издательский дом «Питер», 2009. — С. 57. — 417 с. — ISBN 9785947236323.
  9. Это касается современных версий, начиная с OS X, «классическая» Mac OS реализовывала невытесняющую многозадачность (см, к примеру Реймонд, 2005, 3.2.2. Mac OS, с. 91
  10. Павел Урусов. Гнилые яблоки. Самые неудачные продукты компании Apple. gagadget.com (5 февраля 2015). Дата обращения: 1 сентября 2016.
  11. История операционной системы BeOS // Хакер. — 2013. № 10.
  12. Сергей Кузьмин. Новое лицо Menuet OS. comprice.ru (15 декабря 2004). Дата обращения: 1 сентября 2016.
  13. Реймонд, 2005, 3.2.1. VMS, с. 89.
  14. Kormanyos, 2015, с. 196-197.

Литература

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.