русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Ідентифікатор користувача і групи


Дата додавання: 2014-11-27; переглядів: 901.


 

Кожен процес має UID – ідентифікаційний номер користувача, який створив даний процес. Вносити зміни в процес можуть лише його творець та привілейований користувач (root). В процесі також є EUID – це так званий «ефективний» UID. Він використовується для того, щоби визначити, до яких ресурсів в процесі є право доступу. Зазвичай EUID та UID збігаються. Розрізнюються вони для програм, в яких установлено біт зміни ідентифікатора користувача (так звані suid-програми).

Аналогічно, GID — ідентифікаційний номер групи користувача, котрий створив даний процес, EGID — «ефективний» GID. Коли процес запускається, його GID дорівнює GID батьківського процесу. Якщо процес спробує звернутися до файла, на який у власника немає прав доступу, ядро перевірить, чи можна дозволити звертання на підставі EGID.

 

2.3 Стан процесу, "заблукалі" процеси

 

При виконанні програм на центральному процесорі найчастіше розрізнюють такі характерні окремі стани:

- породження — підготовлюються умови для першого виконання на процесорі;

- активний стан, чи стан «Рахунок» — програма виконується на процесорі;

- очікування — програма не виконується на процесорі через зайнятість певного необхідного ресурсу;

- готовність — програма не виконується, але для виконання надано всі необхідні в даний момент ресурси, окрім центрального процесора;

- завершення — нормальне чи аварійне завершення виконання програми, після якого процесор й інші ресурси їй не надаються.

Іноді використовують менш детальне подання станів процесу, відмінне від наведеного. Сам факт існування процесу не надає йому права на одержання часу центрального процесора.

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

В ОС FreeBSD використовується також інша термінологія. Процес може перебувати в таких станах:

- здійснéнний — процес перебуває в активному стані;

- очікування — процес очікує на надання певного ресурсу;

- свопований — процес перебуває в swap-розділі на диску, аналог стану очікування;

- зупинений — процес припинено, завершено.

Здійснéнний процес здобув усі необхідні ресурси й очікує лише на надання часу центрального процесора для опрацювання даних.

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

Свопований процес не існує в оперативній пам’яті. Він записаний у swap-розділ на диску й очікує на «свій час».


 

 

 
 

 

 


Рисунок 2.1 — Граф існування процесу

 

Час від часу в системі виникають процеси, які у той чи інший спосіб потребýють втручання адміністратора. Такі процеси дістали назву “заблукалі”. Основні різновиди таких процесів — завислі й некеровані процеси. Завислі процеси є бездіяльні, вони не відповідають своєму керувальному терміналові, а просто «висять», займаючи ресурси системи. Некеровані процеси бувають двох типів — користувацькі й системні. Некерований користувацький процес не обов’язково працює неправильно. Просто він може «їсти» багато системних ресурсів — й через нього простоюватимуть інші, можливо, не менш корисні процеси. Некерований системний процес може (раптово “збунтувавши”) просто «трощити» все на своєму шляху.

 


<== попередня лекція | наступна лекція ==>
Поняття процесу | Поточний контроль процесів, команди ps та top


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн