Процес (інформатика)
Матеріал з Вікіпедії — вільної енциклопедії.
Процес — це одне з найважливіших понять інформатики. За визначенням це екземпляр виконуваної програми, включаючи змінні та стан програми. Процеси слід відрізняти від нитей виконання — ниті є складовими процесу, так що кожен процес має власний адресний простір, а ниті розподіляють спільний адресний простір процесу. Процес складається щонайменше з одної, головної ниті виконання.
Зміст |
[ред.] Характеристики
Кожному процесу мають бути виділені наступні ресурси:
Кожен процес має «батька» (батьківський процес). Він також може мати (але не мусить) «нащадків» (синівські процеси). Таким чином створюється дерево процесів.
Керування процесами здійснює ядро операційної системи.
Під час виконання процес може знаходитися в одному із станів:
- виконання,
- очікування на доступ до ресурсів, які надає операційна система,
- готовності до виконання,
- щойно створений,
- завершений,
- зомбі-процес.
[ред.] Інформація що міститься в процесі
Процес містить інформацію про (список не виключний):
- повний командний рядок запуску виконуваного процесом завдання;
- інформація про відведений процесу адресний простір, включно зі стеком;
- посилання на поточний робочий каталог і кореневий каталог процесу (останній служить для обмеження доступу процесу до файлової структури);
- таблиця відкритих процесом файлів;
- так зване оточення процесу, тобто перелік заданих для даного процесу змінних з їх поточними значеннями;
- атрибути, що визначають права і привілеї процесу
- таблиця обробників сигналів;
- вказівка на батьківський процес;
- призначена для користувача маска або маска доступу — вказівка на те, які права треба видалити при створенні нового файлу або каталога із стандартного набору прав, присвоєних файлу (каталогу).
- перелік нитей процесу, якщо операційна система підтримує багатонитевість
[ред.] Робочий цикл процесу
- користувач з допомогою оболонки вказує програму, яку потрібно виконати; оболонка виконує виклик fork, чи аналогічний
- операційна система створює адресний простір для процесу і структури, які описують новий процес
- заповнюються структури, які описують новий процес
- з файлу, який містить виконавчий файл, в адресний простір процесу копіюються код і дані
- встановлюється стан процесу «готовий до виконання»
- новий процес додається до черги процесів, які очікують на процесор
- керування повертається оболонці користувача
[ред.] Виконання процесів
Процес почне виконуватися в той момент, коли ядро операційної системи перемкне адресний простір на адресний простір даного процесу і, таким чином, почнеться виконання коду процесу. Виконуваний процес може вимагати певних ресурсів, наприклад, додаткової пам'яті. Такий запит оперативно реалізується операційною системою.
[ред.] Завершення процесів
- Процес виконує останню інструкцію програми — повертає операційній системі код завершення. Якщо процес завершився нормально повертається значення 0, інакше повертається значення коду помилки.
- операційна система встановлює стан процесу «завершений» і починає звільнення ресурсів, які були виділені процесу під час його виконання
- операційна система по-черзі завершує усі синівські процеси даного батьківського
- операційна система звільняє адресний простір процесу
- операційна система усуває процес з черги готових процесів
- процесор виділяється іншому процесу
Спосіб реалізації цих кроків може дещо відрізнятися у різних операційних системах.
[ред.] Дивіться також
| Це незавершена стаття про комп'ютери. Ви можете допомогти проекту, виправивши або дописавши її. |
|
||||||||||||||||||||||||||||||||

