Граф станів процесу

Створення процесу - створення інформаційної структури, яка включає в себе поля:

1. Ідентифікатор процесу, визначає розміщення процесу;

2. Ідентифікатор батьківського процесу (батьківський процес → дочірній процес), один процес створює інший процес;

3. Дані про стан виконуваного модуля в пам'яті;

4. Ступінь прива елегірованності процесу;

6. Статистичні дані (час створення процесу, час завершення процесу).

На малюнку 2 представлений алгоритм створення процесу:

Контекст і дескриптор процесу

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

Крім цього, операційній системі для реалізації планування процесів потрібна додаткова інформація: ідентифікатор процесу, стан процесу, дані про ступінь привілейованості процесу, місце знаходження кодового сегмента й інша інформація. У деяких ОС (наприклад, в ОС UNIX) інформацію такого роду, використовувану ОС для планування процесів, називають дескриптором процесу.

Дескриптор процесу в порівнянні з контекстом містить більш оперативну інформацію, яка повинна бути легко доступна підсистемі планування процесів. Контекст процесу містить менш актуальну інформацію та використовується операційною системою тільки після того, як прийнято рішення про відновлення перерваного процесу.

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

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

Створити процес - це значить:

1. створити інформаційні структури, що описують даний процес, тобто його дескриптор і контекст;

2. включити дескриптор нового процесу в чергу готових процесів;

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

У багатозадачною (многопроцессность) системі процес може знаходитися в одному з трьох основних станів:

ВИКОНАННЯ - активний стан процесу, під час якого процес володіє всіма необхідними ресурсами і безпосередньо виконується процесором;

Очікування - пасивний стан процесу, процес заблокований, він не може виконуватися по своїх внутрішніх причин, він чекає здійснення деякої події, наприклад, завершення операції введення-виведення, отримання повідомлення від іншого процесу, звільнення якого-небудь необхідного йому ресурсу;

ГОТОВНІСТЬ - також пасивний стан процесу, але в цьому випадку процес заблокований у зв'язку з зовнішніми по відношенню до нього обставинами: процес має всі необхідні для нього ресурси, він готовий виконуватися, однак процесор зайнятий виконанням іншого процесу.

В ході життєвого циклу кожен процес переходить з одного стану в інший відповідно до алгоритму планування процесів, реалізованим в даній операційній системі. Типовий граф станів процесу показаний на малюнку 2.1.

У стані ВИКОНАННЯ в однопроцесорній системі може знаходитися тільки один процес, а в кожному з станів ОЧІКУВАННЯ і ГОТОВНІСТЬ - кілька процесів, ці процеси утворюють черги відповідно очікують і готових процесів. Життєвий цикл процесу починається з стану ГОТОВНІСТЬ, коли процес готовий до виконання і чекає своєї черги. При активізації процес переходить в стан ВИКОНАННЯ і знаходиться в ньому до тих пір, поки або він сам звільнить процесор, перейшовши в стан ОЧІКУВАННЯ якої-небудь події, або буде насильно "витіснений" з процесора, наприклад, внаслідок вичерпання відведеного даному процесу кванта процесорного часу . В останньому випадку процес повертається в стан ГОТОВНІСТЬ. В цей же стан процес переходить зі стану ОЧІКУВАННЯ, після того, як очікувана подія відбудеться.

Мал. 2.1. Граф станів процесу в багатозадачному середовищі

Схожі статті