
- •Основні архітектури пз для паралельного та розподіленого програмування
- •18)Uml-діаграми для створення багатопоточних паралельних та розподілених програм.
- •Два види процесів
- •Блок керування процесами.
- •Анатомія процесу
- •Стани процесу
- •2 . Стани процесів
- •Планування процесу, стратегії планування.
- •Встановлення та отримання пріоритету
- •Перемикання контексту
Стани процесу
2 . Стани процесів
Під час виконання процесу його стан змінюється. Під станом процесу розуміють його біжучий режим або статус. В середовищі UNIX процес може перебувати в одному з наступних станів:
виконання;
працездатності (готовності);
зомбі;
очікування (блокування);
зупинки.
С
тан
процесу змінюється при певних умовах,
які створюються існуванням процесу
або операційною системою. Під зміною
стану, або переходом з одного стану в
інший, розуміють обставини, заставляють
процес змінити свій стан. На рис. 4
показано діаграму станів для середовища
UNIX. Діаграма станів містить вузли та
напрямлені ребра, що з’єднують ці вузли.
Кожен вузол відображає стан процесу,
а напрямлені ребра між вузлами – переходи
з одного стану в інший. Можливі зміни
стані (з анотацією) описано в табл. 1. На
рис. 4 і табл. 1 показано, що між станами
дозволені лише певні переходи. Наприклад,
між станами готовності і виконання
існує перехід (ребро діаграми), а між
станами очікування і виконання –
немає. Це означає, що можливі обставини,
які заставляють процес перейти з
стану готовності в стан виконання, але
немає обставин, які можуть заставити
процес перейти в стан виконання з стану
очікування.
Коли процес тільки створюється, від готовий до виконання своїх інструкцій, але повинен очікувати свого часу до тих пір, доки не звільниться процесор. Кожному процесу персонально дозволяється використати процесор в межах дискретного часового інтервалу, який називаємо квант часу (time slice). Процеси, які очікують використання процесора, займають чергу, тобто переміщуються в чергу готових процесів. Тільки з таких черг планувальник вибирає процес, який буде використовувати процесорний час. Процеси, які знаходяться в чергах готових процесів, перебувають в працездатному стані. Коли процесор
|
Переходи процесів з одного стану в інший |
|
Переходи між станами |
Опис |
|
ОЧІКУЄ ВИКОНУЄТЬСЯ (завантаження) |
Процес призначається процесору |
|
ВИКОНУЄТЬСЯ ГОТОВИЙ (кінець кванту часу) |
Квант часу процесу, якій призначений процесу закінчився |
|
ВИКОНУЄТЬСЯ ГОТОВИЙ (дострокове вивантаження) |
Процес вивантажується до закінчення його кванту часу. (Це можливе у випадку, якщо став готовим процес з більш високим пріоритетом). Вивантажений процес розміщується знову в чергу процесів |
Планування процесу, стратегії планування.
Якщо готових до виконання процесів більше одного, планувальник повинен визначити, який з них першим призначити процесору. З цією метою планувальник підтримує структуру даних, які дозволяють найбільш ефективним чином розподіляти між процесами процесорний час. Кожен процес отримує клас (тип) пріоритету і розміщується у відповідній йому черзі разом з іншими працездатними процесами того ж пріоритетного класу. Тому істує декілька пріоритетних черг, які відображають різні класи пріоритетів, які використовуються системою. Ці пріоритетні черги впорядковуються і розміщуються в масив розподілу, що називається багаторівневою пріоритетною чергою (multilevel priority queue), зображеній на рис. 5. Кожен елемент цього масиву пов'язаний з конкретною пріоритетною чергою. Для виконання процесором планувальник призначає той процес, який міститься в головній частині не порожньої черги, і має самий високий пріоритет. Пріоритети можуть бути динамічними і статичними
.
Стратегія планування
Процеси розміщуються в пріоритетних чергах у відповідності до стратегії планування. В системах UNIX/Linux використовуються дві стратегії планування FIFO (First In First Out – перший прийшов, першим обслужений) і RR (round-robin, тобто циклічна). Схема дії стратегії FIFO подана на рис. 6, а. При використанні стратегії FIFO процеси призначаються процесору у відповідності з часом надходження в чергу. Після закінчення кванту часу процес розміщується на початок (головну частину) своєї пріоритетної черги. Коли процес, який очікує, стає працездатним (працездатним), він розміщується в кінець своєї пріоритетної черги. Процес може викликати системну функцію і відмовитися від процесора на користь іншого процесу з таким же рівнем пріоритету.
У
відповідності з циклічною стратегією
планування RR всі процеси
вважаються рівноправними
(рис. 6, б). RR-планування
співпадає з FIFO-плануванням
за одним виключенням: після закінчення
кванту часу процес розміщується не на
початок черги, а в кінець своєї пріоритетної
черги, і процесору призначається
наступний (по черзі) процес.