Лекція: Багатозадачність: кооперативна та витісняюча
1. Вступ до багатозадачності
Багатозадачність — це здатність операційної системи (ОС) виконувати декілька процесів одночасно. У багатозадачному середовищі процесорний час розподіляється між процесами, що створює ілюзію одночасного виконання. Це важлива складова сучасних ОС, оскільки вона дозволяє ефективно використовувати ресурси, виконуючи завдання в паралельному режимі.
Основні цілі багатозадачності:
Підвищення продуктивності та швидкості обробки.
Оптимізація використання процесора.
Забезпечення відгуку системи для користувача.
2. Кооперативна багатозадачність
Кооперативна багатозадачність — це метод, при якому процесорний час між процесами розподіляється за добровільною згодою процесів. У такій моделі процес самостійно вирішує, коли передати управління іншому процесу, тобто не існує жорсткого контролю з боку ОС.
Особливості кооперативної багатозадачності:
Передача управління: процес має самостійно передати контроль іншому процесу, наприклад, після завершення своєї роботи або на певних етапах.
Простота реалізації: така багатозадачність легша для реалізації, оскільки не вимагає складних механізмів для перемикання контекстів.
Недоліки: якщо один процес «зависне» або займе процесорний час надто довго, інші процеси не зможуть виконуватися, що може призвести до зниження продуктивності і стабільності системи.
Приклади використання кооперативної багатозадачності:
Історично кооперативна багатозадачність використовувалася в ранніх операційних системах, таких як Windows 3.x і Mac OS до версії 9. Хоча такий підхід простіший, він має серйозні обмеження щодо надійності та стабільності.
3. Витісняюча багатозадачність
Витісняюча багатозадачність — це модель, у якій операційна система самостійно визначає, коли один процес повинен бути перерваний, щоб надати процесорний час іншому процесу. У цій моделі ОС має повний контроль над плануванням завдань, що забезпечує ефективний розподіл ресурсів.
Особливості витісняючої багатозадачності:
Контроль ОС: ОС регулярно перевіряє стан процесів і, за необхідності, перериває поточний процес, щоб надати час іншим завданням.
Квант часу: кожен процес отримує певний інтервал часу (квант), після якого управління передається іншому процесу.
Стабільність системи: навіть якщо процес «зависне» або перевантажить систему, ОС зможе перервати його виконання, не впливаючи на інші процеси.
Приклади використання витісняючої багатозадачності:
Цей підхід став основою сучасних операційних систем, таких як Linux, Windows NT і macOS. Завдяки витісняючій багатозадачності ОС може ефективно підтримувати стабільність та продуктивність при роботі з багатьма процесами.
4. Переваги та недоліки кооперативної і витісняючої багатозадачності
Характеристика | Кооперативна багатозадачність | Витісняюча багатозадачність |
|---|---|---|
Контроль процесів | Процеси самі вирішують, коли передавати управління | ОС контролює час процесів |
Стабільність | Низька (процес може заблокувати систему) | Висока (ОС може перервати процес) |
Продуктивність | Залежить від поведінки процесів | Вища за рахунок динамічного планування |
Складність реалізації | Простішу реалізацію, менше механізмів контролю | Складніша реалізація через контроль ОС |
Застосування | Ранні ОС, програми з малим числом процесів | Сучасні ОС, сервери, багатозадачні системи |
5. Перемикання контекстів
При витісняючій багатозадачності важливу роль відіграє механізм перемикання контексту. Це процес, при якому ОС зберігає поточний стан виконуваного процесу і відновлює стан іншого процесу. Це дозволяє ОС швидко переходити між процесами без втрати даних.
Етапи перемикання контексту:
Збереження стану: операційна система зберігає всі дані поточного процесу, включаючи регістри, програмний лічильник та стан пам’яті.
Відновлення стану нового процесу: ОС завантажує всі необхідні дані для процесу, який має бути виконаний.
Продовження виконання: процес відновлюється з того місця, на якому він був перерваний.
6. Застосування багатозадачності у сучасних системах
Сучасні операційні системи зазвичай використовують витісняючу багатозадачність для оптимального розподілу процесорного часу між великою кількістю процесів. Завдяки цьому ОС може забезпечити швидку реакцію на дії користувача, стабільність роботи при великому навантаженні та можливість ефективно управляти критичними процесами.
У мобільних ОС (наприклад, Android та iOS) також використовується витісняюча багатозадачність, але з додатковими оптимізаціями для економії заряду батареї.
7. Висновки
Кооперативна та витісняюча багатозадачність — це дві різні моделі організації багатозадачного середовища, кожна з яких має свої переваги і недоліки. У той час як кооперативна багатозадачність є простою, але менш стабільною, витісняюча модель забезпечує стабільність і продуктивність, що робить її кращою для сучасних операційних систем.
Питання вихідного контролю
Що таке багатозадачність в операційних системах?
Поясніть, як працює кооперативна багатозадачність.
У чому полягає основний недолік кооперативної багатозадачності?
Що таке витісняюча багатозадачність, і як ОС контролює розподіл процесорного часу в цій моделі?
Що таке квант часу у витісняючій багатозадачності?
Як перемикання контекстів допомагає у витісняючій багатозадачності?
Назвіть приклади сучасних ОС, які використовують витісняючу багатозадачність.
Які переваги має витісняюча багатозадачність порівняно з кооперативною?













