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

Підсистема управління задачами (процесами).

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

Кожному процесу мають бути виділені такі ресурси:

  • процесор
  • пам'ять
  • доступ до пристроїв вводу-виводу
  • файли

Кожен процес має «батька» (батьківський процес). Він також може мати (але не мусить) «нащадків» (дочірні процеси). Таким чином створюється дерево процесів. Керування процесами здійснює ядро операційної системи. Під час виконання процес може знаходитися в одному із станів:

  • виконання,
  • очікування на доступ до ресурсів, які надає операційна система,
  • готовності до виконання,
  • щойно створений,
  • завершений.

Планування виконання завдань (англ. Scheduling) є однією з ключових концепцій в багатозадачності і багатопроцесорних систем, як в операційних системах загального призначення, так і в операційних системах реального часу. Планування процесів полягає в призначенні пріоритетів процесам в черзі з пріоритетами. Утиліта, що виконує це завдання, називається планувальником (англ. Scheduler). Найважливішою метою планування завдань є якнайповніше завантаження доступних ресурсів. Для забезпечення загальної продуктивності системи планувальник має опиратися на:

  • Використання процесора (-ів) - дати завдання процесору, якщо це можливо.
  • Пропускна здатність - кількість процесів, що виконуються за одиницю часу.
  • Час на завдання - кількість часу, для повного виконання певного процесу.
  • Очікування - кількість часу, який процес очікує в черзі готових.
  • Час відповіді - час, який проходить від подання запиту до першої відповіді на запит.
  • Справедливість - Рівність процесорного часу для кожної ниті.

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