Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lek_3_.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
257.54 Кб
Скачать

2 . Стани процесів

Під час виконання процесу його стан змінюється. Під станом процесу розуміють його біжучий режим або статус. В середовищі UNIX процес може перебувати в одному з наступних станів:

  • виконання;

  • працездатності (готовності);

  • зомбі;

  • очікування (блокування);

  • зупинки.

Стан процесу змінюється при певних умовах, які створюються існуван­ням процесу або операційною системою. Під зміною стану, або переходом з одного стану в інший, розуміють обставини, заставляють процес змінити свій стан. На рис. 4 показано діаграму станів для середовища UNIX. Діаграма станів містить вузли та напрямлені ребра, що з’єднують ці вузли. Кожен вузол відоб­ражає стан процесу, а напрямлені ребра між вузлами – переходи з одного стану в інший. Можливі зміни стані (з анотацією) описано в табл. 1. На рис. 4 і табл. 1 показано, що між станами дозволені лише певні переходи. Наприклад, між ста­нами готовності і виконання існує перехід (ребро діаграми), а між станами очі­кування і виконання – немає. Це означає, що можливі обставини, які заставля­ють процес перейти з стану готовності в стан виконання, але немає обставин, які можуть заставити процес перейти в стан виконання з стану очікування.

К оли процес тільки створюється, від готовий до виконання своїх інстру­кцій, але повинен очікувати свого часу до тих пір, доки не звільниться проце­сор. Кожному процесу персонально дозволяється використати процесор в ме­жах дискретного часового інтервалу, який називаємо квант часу (time slice). Про­цеси, які очікують використання процесора, займають чергу, тобто пере­міщуються в чергу готових процесів. Тільки з таких черг планувальник вибирає процес, який буде використовувати процесорний час. Процеси, які знаходяться в чергах готових процесів, перебувають в працездатному стані. Коли процесор

Таблиця 1.

Переходи процесів з одного стану в інший

Переходи між станами

Опис

ОЧІКУЄ  ВИКОНУЄТЬСЯ (завантаження)

Процес призначається процесору

ВИКОНУЄТЬСЯ  ГОТОВИЙ (кінець кванту часу)

Квант часу процесу, якій призначений процесу закінчився

ВИКОНУЄТЬСЯ  ГОТОВИЙ (дострокове вивантаження)

Процес вивантажується до закінчення його кванту ча­су. (Це можливе у випадку, якщо став готовим процес з більш високим пріоритетом). Виванта­жений процес роз­­міщується знову в чергу процесів

ВИКОНУЄТЬСЯ  ОЧІКУЄ (блокування)

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

ОЧІКУЄ  ГОТОВИЙ (розблокування)

Подія, настання якої очікував процес, відбулася, або завершилося виконання системної функції, наприклад, задоволено запит на ввід-вивід даних

ВИКОНУЄТЬСЯ  ЗУПИНЕНИЙ

Процес відмовився від процесора отримавши сигнал зупинити

ЗУПИНЕНИЙ  ГОТОВИЙ

Процес отримав сигнал продовжити і повертається знову в чергу готових процесів

ВИКОНУЄТЬСЯ  ЗОМБІ

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

ЗОМБІ  ВИХІД

Батьківський процес здобуває з таблиці процесів статус завершення і процес-зомбі покидає систему

ВИКОНУЄТЬСЯ  ВИХІД

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

стає доступним, диспетчер (dispatcher) призначає його працездатному (готово­му) процесу, який займає його на протязі свого кванту часу. По закінченню цьо­го кванту часу процес залишає процесор, незалежно від того, чи виконав він свої інструкції, чи ні. Цей процес знову розміщується в чергу готових процесів (як в зал очікування) очікувати наступного сеансу роботи процесора. Тим ча­сом з черги вибирається новий процес, якому виділяється його квант проце­со­рного часу. Системні процеси не вивантажуються, тобто отримавши проце­сор, вони виконуються до повного завершення. Якщо квант часу ще не завер­ши­вся, але процес не в стані продовжити виконання, він може добровільно від­мовитися від процесорного часу. Причини відмови можуть бути різними. Нап­риклад, процес може зробити запит на отримання доступу до пристроїв ввід-ви­від, викликати системну функцію, або йому необхідно почекати звільнення об’є­кту (змінної) синхронізації. Процеси, які не можуть продовжити виконання тому що очікують деякої події, засинають, тобто переходять в стан очікуван­ня. Після настання події, яка очікується вони видаляються з цієї черги і повер­та­ються в чергу готових процесів. Біжучий процес, тобто процес, який займає процесорний час, може бути позбавлений його ще до завершення кванту часу, якщо оголосить про свою готовність процес з більш високим пріоритетом (на­приклад, системний процес). Вивантажений достроково процес зберігає статус працездатного і тому знову розміщується в чергу готових процесів.

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

Виконавши всі свої інструкції, процес залишає систему. В цьому випад­ку процес видаляється з таблиці процесів, його БУП-блок руйнується, і всі ре­сурси, які він використовував, повертаються в системний пул доступних ресур­сів. Процес, який нездатний продовжити виконання, але при цьому не може ви­йти з системи, вважається зомбованим. Зомбований процес не використовує ніяких системних ресурсів, але зберігає свою структуру в таблиці процесів. Як­що в таблиці процесів виявиться надто багато зомбованих процесів це негати­в­но вплине на продуктивність системи і може викликати її перезавантаження.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]