Лекція: Пріоритети процесів і управління чергою
1. Вступ
Сучасні операційні системи повинні вирішувати багато завдань одночасно, забезпечуючи належну продуктивність, швидкий відгук та стабільність системи. В умовах багатозадачності виникає питання: який процес має отримати доступ до процесора в першу чергу? Саме для цього ОС використовує механізм пріоритетів процесів, що дозволяє надавати процесорний час найважливішим або терміновим завданням.
2. Поняття пріоритетів у плануванні процесів
Пріоритет — це числове значення, яке вказує на важливість процесу для системи або користувача. Чим вищий пріоритет процесу, тим більша ймовірність, що він отримає доступ до процесора раніше за інші процеси.
Класи пріоритетів
Фіксований пріоритет: встановлюється на початку виконання процесу і не змінюється.
Динамічний пріоритет: змінюється в процесі виконання, залежно від певних умов (наприклад, часу очікування або поведінки процесу).
Пріоритети також можуть визначатися зовнішніми факторами, такими як тип процесу або його важливість для роботи системи.
Система значень пріоритетів
У різних операційних системах можуть використовуватися різні числові системи для визначення пріоритетів. Наприклад:
У деяких ОС пріоритети змінюються від 0 (найвищий) до 255 (найнижчий).
В інших ОС високий пріоритет може мати найвище значення, а низький — найнижче.
3. Алгоритми планування на основі пріоритетів
Пріоритетне планування
При використанні пріоритетного планування процесор надається процесу з найвищим пріоритетом. Якщо декілька процесів мають однаковий пріоритет, для них застосовується правило FCFS (перший прийшов — перший обслуговується).
Переваги: важливі процеси обробляються швидше, що забезпечує задоволення вимог критичних завдань.
Недоліки: процеси з низьким пріоритетом можуть «голодувати», тобто не отримувати доступу до процесора протягом довгого часу.
Алгоритм запобігання голодуванню
Для уникнення проблеми голодування використовують метод підвищення пріоритету. Процес, який довго перебуває в черзі, поступово отримує підвищений пріоритет. Це дозволяє рано чи пізно обробити навіть процеси з низьким початковим пріоритетом.
Динамічне планування
Цей підхід дозволяє ОС змінювати пріоритети процесів у реальному часі. Наприклад, процес, який тривалий час виконується без переривання, може мати знижений пріоритет, щоб дати можливість іншим процесам отримати доступ до процесора.
4. Управління чергами процесів
Для планування процесів ОС використовує структури даних, зокрема черги. Черги забезпечують ефективний порядок очікування процесів на виконання.
Типи черг у плануванні процесів
Черга готових процесів: містить процеси, які готові до виконання та очікують на надання процесора.
Черга очікування: містить процеси, що очікують на певну подію (наприклад, завершення введення-виведення).
Черга завершених процесів: процеси, які завершили своє виконання, але ще не звільнили всі свої ресурси.
Багаторівневі черги
У деяких ОС застосовуються багаторівневі черги, де кожен рівень має власний пріоритет і алгоритм планування. Це дозволяє системі обробляти процеси різного типу та важливості з урахуванням їх специфічних вимог.
Приклад: у багаторівневій черзі інтерфейсні завдання можуть виконуватися з найвищим пріоритетом, тоді як завдання на фоні мають нижчий пріоритет.
Черги з зворотним зв'язком (Feedback Queue)
Це розширення багаторівневих черг, де процеси можуть переміщуватися між рівнями залежно від часу очікування та поведінки. Наприклад, якщо процес занадто довго очікує у нижній черзі, його можна перенести у верхню, щоб запобігти голодуванню.
5. Реалізація пріоритетів і черг у сучасних ОС
У сучасних ОС (Windows, Linux, macOS) використовуються комбінації алгоритмів пріоритетного планування та управління чергами. Наприклад:
Windows застосовує систему пріоритетів з кількома рівнями і використовує методику підвищення пріоритету, щоб зменшити ризик голодування процесів.
Linux використовує O(1) та CFS (Completely Fair Scheduler), які також враховують пріоритети, але додають механізм балансування між завданнями, що покращує продуктивність для багатозадачних і багатокористувацьких середовищ.
6. Висновок
Пріоритети процесів і управління чергами відіграють ключову роль у забезпеченні ефективної роботи ОС. Пріоритети дозволяють швидко обробляти критично важливі завдання, а черги підтримують порядок і справедливість у розподілі ресурсів. Розуміння механізмів планування та налаштування черг і пріоритетів дозволяє оптимізувати продуктивність системи в залежності від її завдань.
Питання вихідного контролю
Що таке пріоритет процесу і для чого він використовується?
Які види пріоритетів існують? Поясніть різницю між фіксованим та динамічним пріоритетом.
Які основні типи черг використовуються в операційних системах?
У чому полягає методика підвищення пріоритету для запобігання голодуванню?
Як працює багаторівнева черга і які її переваги?
Поясніть, що таке черга з зворотним зв'язком і як вона допомагає в управлінні процесами.
Який алгоритм планування використовується в ОС Linux, і як він враховує пріоритети процесів?













