Page 22 - 6111
P. 22
У стані виконання у однопроцесорній системі може
знаходитися тільки один процес, а в кожному зі станів очікування і
готовність - кілька процесів, ці процеси утворюють черги
відповідно очікують і готових процесів. Життєвий цикл процесу
починається зі стану готовність, коли процес готовий до
виконання і чекає своєї черги. При активізації процес переходить у
стан виконання і знаходиться в ньому до тих пір, поки він сам
звільнить процесор, перейшовши в стан очікування якої-небудь
події, або буде насильно “витиснутий” із процесора, наприклад,
внаслідок вичерпання відведеного даному процесу кванта
процесорного часу. В останньому випадку процес повертається в
стан готовність. У цей же стан процес переходить зі стану
очікування, після того, як очікуване подія відбудеться.
Протягом існування процесу його виконання може бути
багаторазово перерване і продовжене. Для того, щоб відновити
виконання процесу, необхідно відновити стан його операційного
середовища. Стан операційного середовища відображається станом
регістрів і програмного лічильника, режимом роботи процесора,
покажчиками на відкриті файли, інформацією про незавершені
операції введення-виведення, кодами помилок виконуваних даним
процесом системних викликів і т.д. Ця інформація називається
контекстом процесу.
Крім цього, операційної системи для реалізації планування
процесів потрібна додаткова інформація: ідентифікатор процесу,
стан процесу, дані про ступінь привілейованості процесу, місце
знаходження кодового сегмента й інша інформація. У деяких ОС
(наприклад, в ОС UNIX) інформацію такого роду, використовувану
ОС для планування процесів, називають дескриптором процесу.
Дескриптор процесу в порівнянні з контекстом містить більш
оперативну інформацію, яка повинна бути легко доступна
підсистемі планування процесів. Контекст процесу містить менш
актуальну інформацію і використовується операційною системою
тільки після того, як прийнято рішення про відновлення
перерваного процесу.
Черги процесів являють собою дескриптори окремих процесів,
об’єднані в списки. Таким чином, кожен дескриптор, крім всього
іншого, містить принаймні один покажчик на інший дескриптор, що
є сусідами з ним в черзі. Така організація черг дозволяє легко їх
переупорядочівать, включати і виключати процеси, переводити
процеси з одного стану в інший.
Програмний код тільки тоді почне виконуватися, коли для
нього операційною системою буде створений процес.
21