Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpori_SPOS.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
150.6 Кб
Скачать
  1. Створення та завершення процесів. Поняття про дескриптор процесу.

Процеси можуть створюватися ядром системи під час її ініціалізації. Наприклад, в UNIX-сумісних системах таким процесом може бути процес ініціалізації системи init, у Windows XP – процеси підсистем середовища (Win32 або POSIX). Таке створення процесів, однак, є винятком, а не правилом.

Найчастіше процеси створюються під час виконання інших процесів. У цьому разі процес, який створює інший процес, називають предком, а створений ним процес – нащадком.

Нові процеси можуть бути створені під час роботи застосування відповідно до його логіки або безпосередньо за запитом користувача.

Є три варіанти завершення процесів:

Процес коректно завершується самостійно після виконання своєї задачі.

Процес аварійно завершується через помилку.

Процес завершується іншим процесом або ядром системи.

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

Дескриптор процесу, handle - це вказівка (ідентифікатор) процесу, який містить номер процесу, область пам'яті, де розміщений сегмент коду, дані пріоритетності процесу, дані про стан процесу. Кожен дескриптор процесу містить посилання на інший дескриптор.

  1. Отримання ідентифікаторів процесів. Стани процесу.

Отримання ідентифікаторів процесу, батьківського процесу і групи процесів виконується за допомогою функцій getpid, getppid i getpgrp.

Група процесів – це сукупність процесів з узгодженим доставлянням сигналів. Для встановлення ідентифікатора групи процесів призначена функція setpgid.

Для створення сеансу і встановлення ідентифікатора групи процесів призначена функція setsid.

Доступ до реальних і діючих ідентифікаторів користувача й групи виконуваного процесу здійснюються за допомогою функцій getuid, geteuid, getgid, getegid.

Функція getgroups призначена для одержання ідентифікаторів додаткових груп виконуваного процесу.

Перевизначити діючий ідентифікатор користувача виконуваного процесу можна за допомогою функцій setuid i seteuid. Аналогічні функції для пере визначення ідентифікаторів групи процесу називаються setgid setegid.

У багатозадачній (многопроцессность) системі процес може знаходитися в одному з трьох основних станів: ВИКОНАННЯ - активний стан процесу, під час якого процес володіє всіма необхідними ресурсами і безпосередньо виконується процесором; ОЧІКУВАННЯ - пасивний стан процесу, процес заблокований, він не може виконуватися по своїх внутрішніх причинах, він чекає здійснення деякої події, наприклад, завершення операції вводу-виводу, одержання повідомлення від іншого процесу, звільнення якого-небудь необхідного йому ресурсу; ГОТОВНІСТЬ - також пасивний стан процесу, але в цьому випадку процес заблокований у зв'язку з зовнішніми по відношенню до нього обставинами: процес має всі необхідні для нього ресурси, він готовий виконуватися, однак процесор зайнятий виконанням іншого процесу. У ході життєвого циклу кожен процес переходить з одного стану в інший відповідно до алгоритму планування процесів, реалізованим у даній операційній системі.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]