Вытесняющая многозадачность (Операционные Системы)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 15:34, 7 июня 2019.

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

Основные особенности вытесняющей многозадачности

При вытесняющей многозадачности каждое приложение,которое выполняется,периодически получает квант процессорного времени. Блок Windows,который отвечает за распределение времени процессора,может в любое время прервать активную задачу и передать управление следующей. В 32-разрядных приложениях функция GetMessage,не обнаруживая определенного потока,может управление системе не передавать,а просто продолжить опрос очереди до истечения кванта.


Преимущества

Основными преимуществами вытесняющей многозадачности являются:

  • упрощение приложений
  • нет необходимости заботится о многозадачности.
  • процессу не нужно регулировать процесс переключения процессов
  • параллельное,более упрощенное выполнение процессов
  • возможность запуска многих задач

Недостатки

Основными недостатками вытесняющей многозадачности являются

  • задача не может контролировать промежуток своей работы и время отключения.
  • необходимость особой дисциплины при написании кода,особые требования к его реентрантности,к защите всех разделяемых и глобальных данных объектами типа критических секций и mutex’ов.[1]

Операционные системы,поддерживающие вытесняющую многозадачность

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

  • Windows NT и в режиме ядра,и в пользовательском режиме
  • AmigaOS все версии,до версии 4.0 без полноценной защиты памяти
  • Linux в пользовательском режиме (а часто и в режиме ядра) всех UNIX подобных OS/2, Mac OS и BeOS[2]
  • MenuetOS
  • KolibriOS[3].

Различия между вытесняющим и невытесняющим вариантами многозадачности

различия

Основным различием между вытесняющим и невытесняющим вариантами многозадачности является степень централизации механизма планирования процессов.

  • При вытесняющей многозадачности механизм планирования процессов целиком сосредоточен в операционной системе. Решение о переключении процессора с одного процесса на другой принимается операционной системой (таймер),а не самим активным процессом.
  • При невытесняющей многозадачности механизм планирования процессов-распределен между системой и прикладными программами. Активный процесс выполняется до тех пор,пока он сам,по собственной инициативе,не отдаст управление операционной системе для того,чтобы та выбрала из очереди другой готовый к выполнению процесс.

[4]

Источники

  1. Вытесняющая и не вытесняющая многозадачность.Последнее изменение страницы: 2016-12-30 URL:https://infopedia.su/15x9b27.html
  2. История операционной системы BeOS . Хакер. — 2013. — № 10.. URL:https://xakep.ru/2013/10/22/beos-history/
  3. Menuet OS Сергей Кузьмин (15 декабря 2004). Дата обращения 1 сентября 2016.. URL:http://comprice.ru/articles/detail.php?ID=42992
  4. Основные различия в многозадачности. Последнее изменение страницы: 2016-12-30 URL:https://infopedia.su/15x9b27.html

Ссылки