Ноу Інти, лекція, процеси

стану процесу

При використанні такої абстракції все, що виконується в обчислювальних системах (не тільки програми користувачів, а й, можливо, певні частини операційних систем), організовано як набір процесів. Зрозуміло, що реально на однопроцессорной комп'ютерній системі в кожен момент часу може виконуватися тільки один процес. Для мультипрограмних обчислювальних систем псевдопараллельная обробка декількох процесів досягається за допомогою перемикання процесора з одного процесу на інший. Поки один процес виконується, інші чекають своєї черги.

Як бачимо, кожен процес може знаходитися як мінімум в двох станах. процес виконується і процес не виконується. Діаграма станів процесу в такій моделі зображена на рис. 2.1.


Мал. 2.1. Найпростіша діаграма станів процесу

Процес. що знаходиться в стані процес виконується. через деякий час може бути завершений операційною системою або припинений і знову переведений в стан процес не виконується. Призупинення процесу відбувається з двох причин: для його подальшої роботи потрібно будь-яку подію (наприклад, завершення операції введення-виведення) або закінчився часовий інтервал. відведений операційною системою для роботи даного процесу. Після цього операційна система за певним алгоритмом вибирає для виконання один з процесів. знаходяться в стані процес не виконується. і переводить його в стан процес виконується. Новий процес. з'являється в системі, спочатку поміщається в стан процес не виконується.

Це дуже груба модель, вона не враховує, зокрема, те, що процес. обраний для виконання, може все ще чекати події, через якого він був припинений, і реально до виконання не готовий. Для того щоб уникнути такої ситуації, розіб'ємо стан процес не виконується на два нових стани. готовність і очікування (див. рис. 2.2).


Мал. 2.2. Більш детальна діаграма станів процесу

Будь-який новий процес. з'являється в системі, потрапляє в стан готовність. Операційна система. користуючись будь-яким алгоритмом планування, вибирає один з готових процесів і переводить його в стан виконання. У стані виконання відбувається безпосереднє виконання програмного коду процесу. Вийти з цього стану процес може з трьох причин:

  • операційна система припиняє його діяльність;
  • він не може продовжувати свою роботу, поки не відбудеться деяке подія, і операційна система переводить його в стан очікування;
  • в результаті виникнення переривання в обчислювальній системі (наприклад, переривання від таймера після закінчення передбаченого часу виконання) його повертають в стан готовність.

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

Наша нова модель добре описує поведінку процесів під час їх існування, але вона не акцентує уваги на появу процесу в системі і його зникнення. Для повноти картини нам необхідно ввести ще два стану процесів. народження і закінчив виконання (див. рис. 2.3).


Мал. 2.3. Діаграма станів процесу, прийнята в курсі

У конкретних операційних системах стану процесу можуть бути ще більш деталізовані, можуть з'явитися деякі нові варіанти переходів з одного стану в інший. Так, наприклад, модель станів процесів для операційної системи Windows NT містить 7 різних станів. а для операційної системи Unix - 9. Проте, так чи інакше всі операційні системи підкоряються викладеної вище моделі.

Схожі статті