Лекція: Життєвий цикл процесу
Вступ
Процеси є основними одиницями виконання програм в операційних системах. Кожен процес у системі проходить через кілька етапів, які разом формують його життєвий цикл. Розуміння життєвого циклу процесу є важливим для розробників програмного забезпечення, системних адміністраторів та користувачів операційних систем, оскільки це допомагає оптимізувати використання ресурсів системи та забезпечити її стабільну роботу.
У цій лекції ми розглянемо, що таке процес, які стани він може мати, як відбуваються переходи між цими станами та як операційна система керує процесами протягом їхнього життєвого циклу.
1. Що таке процес?
1.1. Визначення процесу
Процес — це виконуваний екземпляр програми. Він складається з:
Коду програми (інструкцій, що виконуються процесором).
Даних (статичні змінні, стек, купа).
Ресурсів, виділених операційною системою (пам'ять, файлові дескриптори).
Контексту виконання, який включає значення регістрів процесора, програмний лічильник, стан процесора тощо.
1.2. Основні характеристики процесу
PID (Process ID): унікальний ідентифікатор процесу в системі.
Пріоритет: визначає порядок, у якому процеси отримують доступ до процесора.
Стан: процес може перебувати у різних станах (наприклад, виконання, очікування).
2. Основні стани процесу
Кожен процес проходить через кілька ключових станів під час свого життєвого циклу. Операційні системи, такі як Windows, Linux або macOS, можуть використовувати різні терміни для позначення станів, але загальна концепція залишається схожою.
2.1. Стан "Створення" (New)
Процес тільки створюється і ще не готовий до виконання.
На цьому етапі операційна система виділяє ресурси для нового процесу.
Після ініціалізації процес переходить у стан "Готовий".
2.2. Стан "Готовий" (Ready)
Процес готовий до виконання, але очікує на виділення процесора.
Він поміщається в чергу готових процесів.
Переміщення в цей стан можливе після завершення створення або після очікування, коли процес отримав усі необхідні ресурси.
2.3. Стан "Виконання" (Running)
Процес отримав доступ до процесора і виконує свої інструкції.
У системах з багатозадачністю в один момент часу може виконуватися кілька процесів (на багатоядерних процесорах).
Планувальник процесів вирішує, який з готових процесів отримає доступ до процесора.
2.4. Стан "Очікування" (Waiting/Blocked)
Процес очікує на виконання певної події (наприклад, завершення операції введення/виведення).
Після виконання потрібної події процес повертається в стан "Готовий".
2.5. Стан "Завершення" (Terminated)
Процес завершує своє виконання (нормально або через помилку).
Усі ресурси, виділені процесу, повертаються операційній системі.
Дані про процес можуть тимчасово зберігатися для збору статистики.
3. Життєвий цикл процесу: графічне представлення
Процес у своєму життєвому циклі може переміщуватися між кількома станами. Схематично це можна зобразити наступним чином:
Створення (New) → Готовий (Ready): процес створений і готовий до виконання.
Готовий (Ready) → Виконання (Running): процес обраний планувальником для виконання.
Виконання (Running) → Очікування (Waiting): процес потребує зовнішнього ресурсу.
Очікування (Waiting) → Готовий (Ready): ресурс став доступний.
Виконання (Running) → Готовий (Ready): процес втратив квант часу.
Виконання (Running) → Завершення (Terminated): процес завершив виконання.
4. Механізми керування процесами
4.1. Планувальник процесів (Scheduler)
Планувальник — це компонент операційної системи, що визначає, який процес буде виконуватися далі. Основні типи планувальників:
Короткостроковий (Short-Term Scheduler): визначає, який із готових процесів буде виконуватися наступним.
Довгостроковий (Long-Term Scheduler): визначає, які процеси потраплять у чергу на виконання.
Середньостроковий (Medium-Term Scheduler): відповідає за призупинення та відновлення процесів.
4.2. Контекстне перемикання (Context Switching)
Коли операційна система перемикається між процесами, відбувається контекстне перемикання, що включає збереження стану поточного процесу та завантаження стану нового процесу. Контекстне перемикання може бути витратним за часом, тому ефективне планування процесів є важливим для продуктивності системи.
5. Приклади використання життєвого циклу процесу
Операційні системи реального часу: використовують примусове планування, щоб забезпечити виконання критичних процесів у потрібний час.
Серверні системи: активно використовують стан очікування, оскільки багато процесів чекають на запити клієнтів.
Висновок
Життєвий цикл процесу є однією з основних концепцій в операційних системах. Процес може перебувати в різних станах і перемикатися між ними в залежності від дій операційної системи та програмного забезпечення. Розуміння цих механізмів дозволяє краще оптимізувати використання ресурсів комп'ютера та забезпечувати стабільну роботу системи.
Питання для вихідного контролю
Що таке процес в операційній системі?
Які основні стани може мати процес?
Що таке контекстне перемикання і чому воно важливе?
Опишіть різницю між станами "Готовий" та "Очікування".
Що робить планувальник процесів?
Як операційна система визначає, який процес слід виконувати наступним?
Що відбувається зі станом процесу, коли він завершує своє виконання?
Чому життєвий цикл процесу важливий для ефективної роботи операційної системи?
Як відрізняється життєвий цикл процесів у системах реального часу від звичайних операційних систем?
Наведіть приклад використання стану "Очікування" в реальному сценарії.













