Кожен процес має UID – ідентифікаційний номер користувача, який створив даний процес. Вносити зміни в процес можуть лише його творець та привілейований користувач (root). В процесі також є EUID – це так званий «ефективний» UID. Він використовується для того, щоби визначити, до яких ресурсів в процесі є право доступу. Зазвичай EUID та UID збігаються. Розрізнюються вони для програм, в яких установлено біт зміни ідентифікатора користувача (так звані suid-програми).
Аналогічно, GID — ідентифікаційний номер групи користувача, котрий створив даний процес, EGID — «ефективний» GID. Коли процес запускається, його GID дорівнює GID батьківського процесу. Якщо процес спробує звернутися до файла, на який у власника немає прав доступу, ядро перевірить, чи можна дозволити звертання на підставі EGID.
2.3 Стан процесу, "заблукалі" процеси
При виконанні програм на центральному процесорі найчастіше розрізнюють такі характерні окремі стани:
- породження — підготовлюються умови для першого виконання на процесорі;
- активний стан, чи стан «Рахунок» — програма виконується на процесорі;
- очікування — програма не виконується на процесорі через зайнятість певного необхідного ресурсу;
- готовність — програма не виконується, але для виконання надано всі необхідні в даний момент ресурси, окрім центрального процесора;
- завершення — нормальне чи аварійне завершення виконання програми, після якого процесор й інші ресурси їй не надаються.
Іноді використовують менш детальне подання станів процесу, відмінне від наведеного. Сам факт існування процесу не надає йому права на одержання часу центрального процесора.
Процес перебуває в кожнім зі своїх припустимих станів впродовж певного часу, після чого переходить у якийсь інший припустимий стан. Склад припустимих станів, а також припустимі переходи зі стану в стан зазвичай задають у формі графа існування процесу, приклад якого наведено на рис. 2.1.
В ОС FreeBSD використовується також інша термінологія. Процес може перебувати в таких станах:
- здійснéнний — процес перебуває в активному стані;
- очікування — процес очікує на надання певного ресурсу;
- свопований — процес перебуває в swap-розділі на диску, аналог стану очікування;
- зупинений — процес припинено, завершено.
Здійснéнний процес здобув усі необхідні ресурси й очікує лише на надання часу центрального процесора для опрацювання даних.
Процес очікування — очікує, коли надійде ресурс чи відбудеться певна подія.
Свопований процес не існує в оперативній пам’яті. Він записаний у swap-розділ на диску й очікує на «свій час».
Рисунок 2.1 — Граф існування процесу
Час від часу в системі виникають процеси, які у той чи інший спосіб потребýють втручання адміністратора. Такі процеси дістали назву “заблукалі”. Основні різновиди таких процесів — завислі й некеровані процеси. Завислі процеси є бездіяльні, вони не відповідають своєму керувальному терміналові, а просто «висять», займаючи ресурси системи. Некеровані процеси бувають двох типів — користувацькі й системні. Некерований користувацький процес не обов’язково працює неправильно. Просто він може «їсти» багато системних ресурсів — й через нього простоюватимуть інші, можливо, не менш корисні процеси. Некерований системний процес може (раптово “збунтувавши”) просто «трощити» все на своєму шляху.