Контекст і дескриптор процесу. Перемикання процесів
Контекст і дескриптор процесу
Протягом існування процесу його виконання може бути багаторазово перерване і продовжено. Для того, щоб відновити виконання процесу, необхідно відновити стан його операційного середовища. Стан операційного середовища відображається станом регістрів і програмного лічильника, режимом роботи процесора, покажчиками на відкриті файли, інформацією про незавершені операції виводу-вводу-виводу, кодами помилок виконуваних даним процесом системних викликів і т.д. Ця інформація називається контекстом процесу.
Крім цього, операційній системі для реалізації планування процесів потрібно додаткова інформація: ідентифікатор процесу, стан процесу, дані про ступінь привілейованості процесу, місце перебування кодового сегмента й інша інформація. У деяких ОС (наприклад, в ОС UNIX) інформацію такого роду, використовувану ОС для планування процесів, називають дескриптором процесу.
Дескриптор процесу в порівнянні з контекстом містить більш оперативну інформацію, що повинна бути легко доступна підсистемі планування процесів. Контекст процесу містить менш актуальну інформацію і використовується операційною системою тільки після того, як прийнято рішення про поновлення перерваного процесу.
Черги процесів являють собою дескриптори окремих процесів, об'єднані в списки. Таким чином, кожен дескриптор, крім всього іншого, містить принаймні один покажчик на інший дескриптор, що сусідить з ним у черзі. Така організація черг дозволяє легко їх переупорядковувати, включати і виключати процеси, переводити процеси з одного стану в інше.
Програмний код тільки тоді почне виконуватися, коли для нього операційною системою буде створений процес. Створити процес — це значить:
- створити інформаційні структури, що описують даний процес, тобто його дескриптор і контекст;
- уключити дескриптор нового процесу в чергу готових процесів;
- завантажити кодовий сегмент процесу в оперативну чи пам'ять в область свопинга.