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

У багатозадачній комп'ютерній системі процеси можуть приймати різні стани. Ці стани в дійсності можуть не розрізнятися ядром операційної системи, проте вони зручна абстракція для розуміння процесів.

Діаграма станів процесу

Різні стани процесу показано на діаграмі станів, на якій стрілками показано переходи між станами. Як видно, деякі процеси зберігаються в основній пам'яті, а інші у вторинній (віртуальній) пам'яті.

Основні стани процесу

У всіх типах комп'ютерних систем процеси мають такі стани:

  • Створений
  • Готовий
  • Запущений
  • Блокований
  • Завершений

Створений

(Інша назва - новий). Коли процес створюється вперше, він потрапляє в стан «створений» чи «новий». В цьому стані він очікує входу в стан «готовий». В цьому стані процес може бути сприйнятий чи відкладений довготерміновим планувальником.

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

Готовий

(Інша назва - очікуючий). «Готовий» процес уже завантажений в основну пам'ять і очікує на виконання центральним процесором (контекстне перемикання буде здійснене диспетчером чи короткотерміновим планувальником). В комп'ютерній системі може бути багато «готових» процесів. В однопроцесорній системі лише один процес буде виконуватися в конкретний момент часу, всі решта «одночасно виконуваних» процесів будуть очікувати на виконання.

Запущений

(Інші назви - активний чи виконуваний). «Запущений» є той процес, який в цей час виконується центральним процесором. Якщо процес вичерпає відведений йому інтервал часу, операційна система перемкне контекст процесу знову в стан «готовий». Перемикання контексту також може відбутися коли процес завершиться або коли від буде блокований потребуючи деякого ресурсу (наприклад вводу/виводу) і тоді він буде переміщений в стан «блокований».

Блокований

Якщо процес «заблокується» на ресурсі (файлі, семафорі, пристрої тощо), він буде усунутий з процесора (бо процес не може продовжувати виконання) і переведений в блокований стан. Процес буде залишатися "заблокованим" доки відповідний ресурс не стане доступний. Про розблокування ресурсу заблокований процес повідомляє операційна система (про доступність ресурсу сама операційна система повідомляється з допомогою переривання). Щойно операційна система дізнається, що процес розблокований, він переводиться в стан "готовий", з якого він може бути переведений в стан «виконуваний», в якому він зможе використати заново доступний ресурс.

Завершений

Процес може завершитися або коли він в стані «виконуваний» і завершить своє виконання, або коли його буде явно «знято» командою оператора. В обох випадках процес переходить в стан «завершений». Якщо процес не буде усунуто з пам'яті після входження в цей стан, то цей стан називається "зомбі".

Додаткові стани процесу

В системах, що підтримують віртуальну пам'ять, можливі ще два додаткові стани. В обох цих станах процес «знаходиться» у вторинній пам'яті (переважно - жорсткому диску).

Вивантажений і очікуючий

(Інша назва - призупинений і очікуючий). В системах які підтримують віртуальну пам'ять процес може бути вивантажений з основної пам'яті та поміщений у віртуальну пам'ять середньотерміновим планувальником. Звідти процес може бути вивантажений у стан «очікуючий».

Вивантажений і блокований

(Інша назва - призупинений і блокований). Процеси які є заблокованими можуть також бути вивантажені. В цьому випадку процес є «вивантажений і очікуючий» і може бути вивантажений у тих же випадках, що і вивантажений і очікуючий процес (хоча в цьому випадку процес буде у блокованому стані і може все ще очікувати доки ресурс стане доступним).

Див. також

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.