Витискальна багатозадачність

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Витискання — це тимчасове переривання задачі яку виконує система, без узгодження із цією задачею, із наміром відновити задачу пізніше. Така зміна знана як перемикання контексту. Зазвичай це виконує привілейована задача або частина системи знана як витискальний планувальник, який має можливість витискати або переривати й пізніше відновлювати інші задачі у системі.

Витискальна операційна система

Витискальна багатозадачність — це вид багатозадачності, при якому операційна система може тимчасово перервати поточний процес без будь-якої допомоги з його боку. Завдяки цьому, завислі застосунки, як правило, не вішають операційну систему.

Витискальна ОС забирає процесорний час у задачі у двох випадках:

  • Коли вибіг квант часу. Будь-яка задача отримує процесор лише на певний відтинок часу відомий як квант, коли цей час закінчується ОС перериває задачу і запускає іншу.
  • Коли задача з вищим пріоритетом переходить у стан готовності до запуску. У такому випадку, задача з меншим пріоритетом втрачає процесор незалежно від того вибіг виділений для неї час чи ні.

Втім, квант часу може різнитись для деяких задач, наприклад на Windows Vista задача на передньому плані, тобто та з якою наразі працює користувач може отримувати подвійний квант часу кожного разу, така можливість керується налаштуваннями системи.

Розробка для витискальної ОС

[ред. | ред. код]

Загалом, задача з високим пріоритетом більшість часу повинна бути не готова зайняти процесор. Лише коли вона має щось зробити, планувальник швидко виділяє їй процесорний час, витискаючи будь-яку іншу задачу з меншим пріоритетом. У цей момент ця задача має використати якомога менше процесорних інструкцій і повернутись у стан сну, очікуючи наступного завдання. Натомість задача з низьким пріоритетом може залишатись в готовності до виконання і зайняти багато інструкцій процесора для своєї роботи. Якщо розробники слідують цим правилам, то операційна система залишатиметься чутливою до дій користувача. [1]

Примітки

[ред. | ред. код]
  1. Ріхтер, Джеффрі; Назарре, Крістоф. Chapter 7. Windows via C/C++ (вид. 5). Wintellect. ISBN 978-0735663770.