Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПОС_Конспект.doc
Скачиваний:
39
Добавлен:
02.05.2019
Размер:
1.13 Mб
Скачать

4. 1. 3 Застовність принципів планування

Принципи планування потоків застосовні насамперед до багатопотокових систем із реалізацією схеми 1:1(тут плануються винятково потоки ядра), а також до систем з реалізацією модулі процесів. В останньому випадку замість терміна “потік” можна вживати термін “процес”, а інформацію, необхіжну для планування, зберігати в структурах даних процесів. Складніші принципи планування використовують у багатопотокових системах, для яких кількість потоків користувача не збігається з кількістю потоків ядра (схеми 1:M і M:N). Для них потрібні два планувальники: один для роботи на рівні ядра, інший – у режимі користувача.

4. 2 Види планування

Розрізняють планування довнотермінове (long-term scheduling), cередньотермінове (medium-term scheduling) і короткотермінове (short-term schediling).

4. 2. 1 Довготермінове планування

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

4. 2. 2 Середньотермінове планування

Засоби середньотермінового планування керують переходом потоків із призупиненого стану в стан готовності й назад. Відразу ж зазаначимо, що керуючі блоки готових до виконання потоків організуються у пам’яті в структуру, яку називають чергою готових потоків (ready queue).

Перехід потоку в призупинений стан можуть викликати такі фактори:

  • очікування операції введення-виведення;

  • очікування закінчення виконання іншого потоку (приєднання);

  • блокування потоку через необхідність його синхронізації з іншими потоками.

Зазвичай, для коректної організації такого очікування, крім черги готових потоків, реалізують додатковий набір черг. Кожна така черга пов’язана з ресурсом, який може викликати очікування потоку (наприклад, із пристроєм введення-виведення); ці черги ще називають чергами планування (schediling queues) або чергами очікування (wait queues). Середньотерміновий плануваг\льник керує всіма цими чергами, переміщаючи потоки між ними та чергою готових потоків. На рис. 4.2 зображена структура черг планування.

4. 2. 3 Короткотермінове планування

Короткотермінове планування , або планування процесора (CPU scheduling), є найважливішим видом планування. Воно дає змогу відповісти на два базових запитання:

  • Коли перервати виконання потоку?

  • Якому з потоків з числа готових до виконання потрібно передати процесор у цей момент?

Короткотерміновий планувальник – це підсистема ОС, яка в разі нелбхідності перериває активний потік і вибирає з черги готових потоків той, що має виконуватися. До його продуктивності ставлять найвищі вимого, бо він отримує керування дуже часто. Виділяють також диспетчер (dispetcher), який безпосередньо предає керування вибраному потокові (перемикає контекст).

Формат черги готових потоків залежить від реалізації короткотермінового планування. Така черга може бути організована за

TCB4 TCB2

Ч ерга готових потоків

Пристрій 1

Пристрій 2 TCB5 TCB1

Пристрій 3

Рисунок 4. 2 Організація черг готових потоків і планування

принципом FIFO, бути чергою із приоритетами, деревом або невпорядкованим зв’язаним списком.

Усі стратегії й алгоритми планування, які ми будемо розглядати далі, належать до короткотермінового планування.