останньому випадку процес повертається в стан ГОТОВНІСТЬ. У цей же стан процес переходить зі стану ОЧІКУВАННЯ, після того, як очікуване подія відбудеться.
Переривання
Прийнятий
Помилка
планувальника
Завершення в/в Очікування в/в Вихід
Мал.6. Граф станів процесу в багатозадачному середовищі
Таким чином, для однієї програми можуть бути створені декілька процесів в тому випадку, якщо за допомогою однієї програми в ЦП виконується декілька не співпадаючих послідовностей команд. За час існування процес багато разів змінює свій стан. Розрізняють наступні стани процесу:*
новий (процес тільки що створений);*
виконуваний (команди програми виконуються в ЦП);*
очікуваний (процес чекає завершення деякого випадку, найчастіші операції в/в);*
готовий (процес чекає звільнення ЦП);*
завершений (процес завершив свою роботу). Перехід з одного стану в інше не може виконуватися довільним чином.
Кожен процес представлений в ОС набором даних, так званою таблицею управління. У РСВ процес описується набором значень, параметрів, що характеризують його поточний стан і використовуваних ОС для управління проходження процесу через комп'ютер.
1.5. Контекст і дескриптор процесу
Протягом існування процесу його виконання може бути багаторазово перерване і продовжене. Для того, щоб відновити виконання процесу, необхідно відновити стан його операційного середовища. Стан операційного середовища відображається станом регістрів і програмного лічильника, режимом роботи процесора, покажчиками на відкриті файли, інформацією про незавершені операції в/в, кодами помилок виконуваних даним процесом системних викликів і т.д. Ця інформація називається контекстом процесу.
Крім цього, ОС для реалізації планування процесів потрібна додаткова інформація: ідентифікатор процесу, стан процесу, дані про ступінь привілейованості процесу, місце перебування кодового сегмента й інша інформація. У деяких ОС (наприклад, в ОС UNIX) інформацію такого роду, використовувану ОС для планування процесів, називають дескриптором процесу. Дескриптор процесу в порівнянні з контекстом містить більш оперативну інформацію, що повинна бути легко доступна підсистемі планування процесів. Контекст процесу містить менш актуальну інформацію і використовується ОС тільки після того, як прийняте рішення про поновлення перерваного процесу.
Черги процесів являють собою дескриптори окремих процесів, об'єднані в списки. Таким чином, кожен дескриптор, крім всього іншого, містить принаймні один покажчик на інший дескриптор, що знаходиться з ним у черзі. Така організація черг дозволяє легко їх переупорядковувати, включати і виключати процеси, переводити процеси з одного стану в інший.
Програмний код тільки тоді почне виконуватися, коли для нього ОС буде створений процес. Створити процес - це значить:
створити інформаційні структури, що описують даний процес, тобто його дескриптор і контекст;
включити дескриптор нового процесу в чергу готових процесів;
завантажити кодовий сегмент процесу в ОП чи в область свопінгу.
2. Планування процесів.
Розподіл процесів між ресурсами називається плануванням процесів.
Вхідна черга розміщується у зовнішній пам’яті. У вхідній черзі процеси очікують звільнення ресурсів – адресного простору основної пам’яті. Готові до виконання процеси розміщуються в основній пам’яті і зв’язані чергою готових прцесів. Процеси в цій черзі очікують звільнення ресурсу процесорного часу. Процес в стані очікування завершення операції в/в знаходиться в одній із черг до обладнання в/в. При проходженні через комп’ютер процес мігрує між різними чергами під управлінням програми, яка називається планувальник. ОС, яка забезпечує режим мультипрограмування зазвичай включає два планувальники: довгостроковий і короткостроковий. Наприклад в OS/360 довгостроковий планувальник називається планувальником завдань, а короткостроковий – супервізором задач. На рівень довгострокового планування виноситься рідкісні системні дії, які потребують більших затрат системних ресурсів. На рівень короткострокового планування – часті і більш короткі процеси. На кожному рівні існує свій об’єкт і власні засоби управління ним.
Основна відмінність між довгостроковим і короткостроковим плануванням заключається в частині запису. Наприклад короткостроковий планувальник може запускатися кожних 100 мсек., довгостроковий, один раз декілька хвилин. Довгостроковий планувальник вирішує який із процесів, що знаходиться у вхідній черзі повинен бути переведений в чергу готових процесів у випадку звільнення ресурсів пам’яті Довгостроковий планувальник вибирає процес із вхідної черги з метою створення неоднорідної програмної суміші.
3. Алгоритми планування процесів
Планування процесів містить у собі рішення наступних задач:
визначення моменту часу для зміни виконуваного процесу;
вибір процесу на виконання з черги готових процесів;
переключення контекстів "старого" і "нового" процесів.
Відповідно до алгоритмів, заснованих на квантуванні, зміна активного процесу відбувається, якщо:
відбулася помилка,
процес завершився і залишив систему,
процес перейшов у стан ОЧІКУВАННЯ,
вичерпано квант процесорного часу, відведений даному процесу.
Процес, що вичерпав свій квант, переводиться в стан ГОТОВНІСТЬ і очікує, коли йому буде наданий новий квант процесорного часу, а на виконання відповідно до визначеного правила вибирається новий процес з черги готових. Таким чином, жоден процес не займає процесор надовго, тому квантування широке використовується в системах поділу часу. Граф станів процесу, зображений на малюнку 6, відповідає алгоритму планування, заснованому на квантуванні.
Кванти, виділювані процесам, можуть бути однаковими для всіх процесів чи різними. Кванти, виділені одному процесу, можуть бути фіксованої величини чи змінюватися в різні періоди життя процесу. Процеси, що не цілком використовували виділений їм квант (наприклад, через відхід на виконання операцій в/в), можуть одержати чи не одержати компенсацію у виді привілеїв при наступному обслуговуванні. По різному може бути організована черга готових процесів: циклічно, за правилом "перший прийшов - перший пішов" (FIFO) чи за правилом "останній прийшов - перший пішов" (LIFO).
Інша група алгоритмів використовує поняття "пріоритет" процесу.
Пріоритет - це число, що характеризує ступінь привілейованості процесу при використанні ресурсів обчислювальної машини, зокрема, процесорного часу: чим вище пріоритет, тим вище привілею.
Пріоритет може виражатися цілими чи дробовими, позитивним чи негативним значенням. Чим вище привілею процесу, тим менше часу він буде проводити в чергах. Пріоритет може призначатися