Операційні системи

4.3.1 Загальні відомості

Процес - це об'єкт ОС Linux, який складається з адресного простору пам'яті і набору структур даних. По суті, процес це запущена програма або служба. Кожен запущений процес в ОС Linux може породити додаткові процеси. Процес, що запустив новий процес називається батьківським процесом. Новий процес по відношенню до створив його процесові називається дочірнім. Процеси - це не те ж саме, що завдання: процеси є частиною операційної системи, тоді як про завдання відомо тільки командному процесору, в якому вони виконуються. Працююча програма містить в собі один або більше процесів; завдання складається з однієї або більше програм, виконуваних у вигляді команд командного процесора. Кожен процес в ОС Linux характеризується набором атрибутів, який відрізняє даний процес від всіх інших процесів. До головних атрибутів відносяться:

  • Ідентифікатор процесу (PID). Кожен процес в системі має унікальний ідентифікатор. Кожен новий запущений процес отримує номер на одиницю більше попереднього.
  • Ідентифікатор батьківського процесу (PPID). Даний атрибут процес отримує під час свого запуску та використовується для отримання статусу батьківського процесу.

У Linux процеси діляться на три типи:

  • Системні процеси - є частиною ядра і завжди розташовані в оперативній пам'яті. Системні процеси не мають відповідних їм програм у вигляді виконуваних файлів і запускаються при ініціалізації ядра системи. Виконувані інструкції і дані цих процесів знаходяться в ядрі системи, таким чином, вони можуть викликати функції і звертатися до даних, недоступним для інших процесів. Системними процесами, наприклад, є: shed (диспетчер свопінгу), vhand (диспетчер сторінкового заміщення), kmadaemon (диспетчер пам'яті ядра).
  • Демони - це неінтерактивні процеси, які запускаються звичайним чином - шляхом завантаження в пам'ять відповідних їм програм (виконуваних файлів), та виконується у фоновому режимі. Зазвичай демони запускаються при ініціалізації системи (але після ініціалізації ядра) і забезпечують роботу різних підсистем: системи термінального доступу, системи друку, система мережевого доступу і мережевих послуг, поштовий сервер, dhcp-сервер і т. п. Демони не пов'язані ні з одним користувальницьким сеансом роботи і не можуть безпосередньо управлятися користувачем. Велику частину часу демони чекають поки той або інший процес запросить певну послугу, наприклад, доступ до файлового архіву або друк документа.
  • Прикладні (користувальницькі) процеси. До прикладних процесів належать всі інші процеси, що виконуються в системі. Як правило, це процеси, породжені в рамках користувальницького сеансу роботи. Наприклад, команда ls породить відповідний процес цього типу. Прикладні процеси linux можуть виконуватися як в інтерактивному, так і у фоновому режимі, але в будь-якому випадку час їхнього життя (і виконання) обмежена сеансом роботи користувача. При виході з системи всі прикладні процеси будуть знищені.