Блок керування процесом (, PCB), який іноді також називають дескриптором процесу, — це структура даних, яку операційна система комп'ютера використовує для зберігання всієї інформації про процес.

Коли процес створюється (ініціалізується), операційна система створює відповідний блок керування процесом, який визначає та відстежує стан процесу (тобто новий, готовий, виконується, очікує або завершений). Оскільки він використовується для відстеження інформації про процес, PCB відіграє ключову роль у перемиканні контексту.

Ядро операційної системи зберігає PCB у таблиці процесів.

Поточний робочий каталог процесу є однією з властивостей, які ядро зберігає в PCB процесу.

Роль

Роль PCB є центральною в керуванні процесами: до них звертається та/або їх змінює більшість службових програм, особливо тих, що пов’язані з плануванням і керуванням ресурсами.

Структура

У багатозадачних операційних системах PCB зберігає дані, необхідні для правильного та ефективного керування процесами. Хоча деталі цих структур залежать від системи, спільні елементи належать до трьох основних категорій: Ідентифікація процесу Стан процесу Керування процесом

Таблиці станів існують для кожної відповідної сутності, наприклад для опису пам’яті, пристроїв введення-виведення, ів і процесів.

Наприклад, таблиці пам’яті містять інформацію про розподіл основної та вторинної (віртуальної) пам’яті для кожного процесу, атрибути дозволів для доступу до областей пам’яті, спільних між різними процесами, тощо. Таблиці введення-виведення можуть містити записи, що вказують на доступність пристрою або його призначення процесу, стан операцій введення-виведення, розташування буферів пам’яті, що використовуються для них, тощо.

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

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

Інформація керування процесом використовується ОС для керування самим процесом. Вона включає:

Стан планування процесу — стан процесу з погляду «готовий», «призупинений» тощо, а також іншу інформацію про планування, таку як значення пріоритету, кількість часу, що минув від моменту отримання процесом контролю над CPU або від моменту його призупинення. Крім того, у випадку призупиненого процесу мають бути записані дані ідентифікації події, на яку процес очікує; Інформація про структуру процесу — ідентифікатори дочірніх процесів або ідентифікатори інших процесів, пов’язаних із поточним певним функціональним способом, які можуть бути представлені у вигляді черги, кільця або інших структур даних; Інформація про міжпроцесну взаємодію — прапорці, сигнали та повідомлення, пов’язані з взаємодією між незалежними процесами; Привілеї процесу — дозволений/заборонений доступ до системних ресурсів; Стан процесу — новий, готовий, виконується, очікує, завершений; Номер процесу (PID) — унікальний ідентифікаційний номер кожного процесу (також відомий як ID процесу); Лічильник команд (PC) — вказівник на адресу наступної інструкції, яку має бути виконано для цього процесу; Регістри CPU — набір регістрів, у якому зберігається стан процесу, необхідний для його виконання; Інформація про планування CPU — інформація для планування часу CPU; Інформація про керування пам’яттю — таблиця сторінок, межі пам’яті, таблиця сегментів; Облікова інформація — обсяг використаного для виконання процесу CPU, часові обмеження, ідентифікатор виконання тощо; Інформація про стан введення-виведення — список пристроїв введення-виведення, виділених процесу.

Розташування

PCB має зберігатися в області пам’яті, захищеній від звичайного доступу процесів. У деяких операційних системах PCB розміщується в нижній частині стеку процесу.Yong, Zhang, "Breaking through the Maximum Process Number", "Linux Journal", 1 January 2004, .

Див. також Блок керування потоком Блок керування файлом Program Segment Prefix

Примітки