Page 23 - 6111
P. 23
Створити процес - це значить
- створити інформаційні структури, що описують даний
процес, тобто його дескриптор і контекст;
- включити дескриптор нового процесу в чергу готових
процесів;
- завантажити кодовий сегмент процесу в оперативну пам’ять
або в область свопінгу.
Нитки
Багатозадачність є найважливішою властивістю ОС. Для
підтримки цієї властивості ОС визначає й оформляє для себе ті
внутрішні одиниці роботи, між якими і буде розділятися процесор і
інші ресурси комп’ютера. Ці внутрішні одиниці роботи в різних ОС
носять різні назви - задача, завдання, процес, нитка. У деяких
випадках сутності, що позначаються цими поняттями, принципово
відрізняються один від одного.
Говорячи про процеси, ми відзначали, що операційна система
підтримує їх відособленість: у кожного процесу є своє віртуальний
адресний простір, кожному процесу призначаються свої ресурси -
файли, вікна, семафори і т.д. Така відособленість потрібна для того,
щоб захистити один процес від іншого, оскільки вони, спільно
використовуючи всі ресурси машини, конкурують один з одним. У
загальному випадку процеси належать різним користувачам, що
розділяють один комп’ютер, і ОС бере на себе роль арбітра в
суперечках процесів за ресурси.
При мультипрограмування підвищується пропускна здатність
системи, але окремий процес ніколи не може бути виконаний
швидше, ніж якщо б він виконувався в однопрограмних режимі
(всяке поділ ресурсів сповільнює роботу одного з учасників за
рахунок додаткових витрат часу на очікування звільнення ресурсу).
Проте завдання, яке вирішується в рамках одного процесу, може
мати внутрішній паралелізм, який в принципі дозволяє прискорити
її розв’язання. Наприклад, в ході виконання задачі відбувається
звертання до зовнішнього пристрою, і на час цієї операції можна не
блокувати повністю виконання процесу, а продовжити обчислення
по іншій “гілці” процесу.
Для цих цілей сучасні ОС пропонують використовувати
порівняно новий механізм багатониткової обробки (multithreading).
При цьому вводиться нове поняття “нитка” (thread), а поняття
“процес” у значній мірі змінює зміст.
Мультипрограмування тепер реалізується на рівні ниток, і
задача, оформлена у вигляді декількох ниток в рамках одного
процесу, може бути виконана швидше за рахунок
22