Лекція: Управління процесами та диспетчеризація
1. Вступ
Управління процесами є ключовою функцією операційної системи (ОС), яка забезпечує ефективну роботу програм, розподіл ресурсів та стабільність усієї системи. Зокрема, управління процесами включає створення, планування та завершення процесів, а також обробку їх взаємодії. Диспетчеризація (або scheduling) є невід'ємною частиною управління процесами, оскільки вона визначає, як та коли процеси отримують доступ до ресурсів процесора.
2. Основні поняття та компоненти
Процес – це екземпляр програми в стані виконання, який містить код, дані, стек, а також інформацію про поточний стан (наприклад, програмний лічильник, значення регістрів). Кожен процес у системі має свою структуру даних, яка називається контекст процесу. Контекст процесу включає інформацію, необхідну для відновлення виконання після переривання, перемикання або переходу до іншого процесу.
Планувальник – це компонент ОС, який відповідає за вибір процесу для виконання на процесорі, керуючись певними критеріями та алгоритмами. В операційній системі часто використовуються різні рівні планування:
Довгострокове планування визначає, які процеси будуть завантажені в оперативну пам'ять для виконання.
Короткострокове планування визначає, який із процесів у черзі отримає процесорний час.
Середньострокове планування може призупиняти та відновлювати процеси для балансування навантаження на систему.
3. Життєвий цикл процесу
Процес проходить кілька станів від моменту створення до завершення. Основні стани процесу:
Новий (New): процес створюється та готується до виконання.
Готовий (Ready): процес чекає на доступ до процесора.
Виконується (Running): процес отримав доступ до процесора.
Очікує (Waiting/Blocked): процес чекає на завершення вводу-виводу або іншого ресурсу.
Завершений (Terminated): процес завершив виконання.
Переходи між станами процесів контролюються ОС і відбуваються під впливом різних подій, таких як завершення операції введення-виведення, переривання або планування процесів.
4. Алгоритми планування
Вибір процесу для виконання на процесорі є важливою задачею для забезпечення ефективності та справедливості в розподілі ресурсів. ОС може використовувати різні алгоритми планування:
FCFS (First-Come, First-Served): процеси виконуються в порядку їх надходження до черги. Простий, але може викликати довгий час очікування для коротких процесів (явище «голодування»).
SJF (Shortest Job First): надає перевагу процесам з найкоротшим часом виконання, що зменшує середній час очікування. Проте SJF потребує прогнозу часу виконання процесів.
Round Robin (RR): кожен процес отримує процесорний час на певний інтервал (квант часу). Коли квант закінчується, процес переміщується в кінець черги. Цей підхід добре підходить для багатозадачних систем.
Пріоритетне планування: процеси отримують пріоритет, і процесор надається процесам з вищим пріоритетом. Недоліком може бути «голодування» низькопріоритетних процесів.
Мультипрограмне планування: система може використовувати комбінацію алгоритмів, вибираючи їх залежно від типу задач та їх вимог.
5. Диспетчеризація (Scheduling)
Диспетчеризація займається розподілом процесорного часу між процесами, а також перемиканням контексту при переході від одного процесу до іншого. Контекст перемикання є процесом збереження та відновлення стану процесора, що включає інформацію про регістри, стек і програмний лічильник.
Контекстне перемикання є ресурсозатратною операцією, оскільки включає збереження поточного контексту та завантаження нового. Швидкість диспетчеризації має вплив на продуктивність ОС, тому оптимізація диспетчеризації та зменшення часу контекстного перемикання є важливими аспектами.
6. Висновок
Управління процесами та диспетчеризація є основними функціями ОС, що дозволяють ефективно розподіляти ресурси та забезпечувати стабільність системи. Завдяки різноманітним алгоритмам планування ОС може адаптуватися до потреб користувачів та завдань, забезпечуючи оптимальну продуктивність та відповідність пріоритетам.
Питання вихідного контролю
Які основні стани процесу існують у операційній системі?
Що таке планувальник процесів, і які рівні планування використовуються в ОС?
Опишіть алгоритм Round Robin та його переваги.
Які недоліки має алгоритм FCFS?
Що таке контекстне перемикання, і чому його тривалість є важливою?
Як працює пріоритетне планування, і які проблеми можуть виникнути при його застосуванні?
Чому мультипрограмне планування є ефективним у багатозадачних ОС?













