Операції над процесами

Підсистема керування процесами повинна виконувати наступні операції над ними:

- створення;

- знищення;

- відновлення;

- зміна пріоритету;

- блокування;

- розблокування;

- запуск (або вибір).

 

Створення процесу. При створенні процесу передбачаються наступні дії:

- присвоєння процесові імені;

- включення цього імені в список імен процесів, що відомі системі;

- визначення початкового пріоритету процесу;

- формування блоку керування процесом (PCB);

- виділення процесові початкових ресурсів.

Кожен процес може породжувати інші процеси. У таких випадках він вважається батьківським процесом а породжені ним – дочірніми або згенерованими процесами.При такому підході створюється ієрархічна структура процесів, у якій в згенерованого процесу є тільки один породжуючий процес, але у кожного породжую чого процесу може бути багато згенерованих.

Знищення процесу. Вилучення процесу зі системи. Ресурси, що були виділені процесові звільняються та повертаються системі. Ім’я процесу витирається в системних списках та таблицях. Блок PCB, знищується.

Призупинення та відновлення процесу. Призупинення процесу використовується для короткочасного вивільнення певних ресурсів в періоди пікового навантаження. У випадку довготривалого призупинення процесу його ресурси можуть бути вивільнені. Рішення про вивільнення певних ресурсів у значній мірі залежить від природи цих ресурсів. Наприклад, основна пам’ять звільняється негайно; зовнішній запам’ятовуючий пристрій у випадку короткочасної призупинки процесу може бути збережений за ним.

 

 

З врахуванням призупинення та відновлення діаграма станів процесів має наступний вигляд показаний на рис. __.

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

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

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

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

Виникає питання, чи переводити заблокований процес в стан призупинення?

Завершення операції вводу/виводу, або подія, що очікується, може ніколи не відбутися, або затриматися на невизначений час. Тому ОС в процесі розблокування виникає вибір:

- або припинити заблокований процес;

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

Так як, призупинення є операцією з найвищим пріоритетом, вона виконується негайно.