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

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Контекст і дескриптор процесу

Протягом існування процесу його виконання може бути багаторазово перерване і продовжено. Для того, щоб відновити виконання процесу, необхідно відновити стан його операційного середовища. Стан операційного середовища відображається станом регістрів і програмного лічильника, режимом роботи процесора, покажчиками на відкриті файли, інформацією про незавершені операції виводу-вводу-виводу, кодами помилок виконуваних даним процесом системних викликів і т.д. Ця інформація називається контекстом процесу.

Крім цього, операційній системі для реалізації планування процесів потрібно додаткова інформація: ідентифікатор процесу, стан процесу, дані про ступінь привілейованості процесу, місце перебування кодового сегмента й інша інформація. У деяких ОС (наприклад, в ОС UNIX) інформацію такого роду, використовувану ОС для планування процесів, називають дескриптором процесу.

Дескриптор процесу в порівнянні з контекстом містить більш оперативну інформацію, що повинна бути легко доступна підсистемі планування процесів. Контекст процесу містить менш актуальну інформацію і використовується операційною системою тільки після того, як прийнято рішення про поновлення перерваного процесу.

Черги процесів являють собою дескриптори окремих процесів, об'єднані в списки. Таким чином, кожен дескриптор, крім всього іншого, містить принаймні один покажчик на інший дескриптор, що сусідить з ним у черзі. Така організація черг дозволяє легко їх переупорядковувати, включати і виключати процеси, переводити процеси з одного стану в інше.

Програмний код тільки тоді почне виконуватися, коли для нього операційною системою буде створений процес. Створити процес — це значить:

  • створити інформаційні структури, що описують даний процес, тобто його дескриптор і контекст;
  • уключити дескриптор нового процесу в чергу готових процесів;
  • завантажити кодовий сегмент процесу в оперативну чи пам'ять в область свопинга.