Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗмМод_Р3+.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.62 Mб
Скачать

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

Засоби середньотермінового планування керують переходом потоків із призупи­неного стану в стан готовності й назад. Відразу ж зазначимо, що керуючі блоки готових до виконання потоків організуються у пам'яті в структуру, яку назива­ють чергою готових потоків (ready queue). Докладніше розглянемо цю чергу під час вивчення короткотермінового планування. Перехід потоку в призупинений стан можуть викликати такі фактори:

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

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

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

3.2.3 Короткотермінове планування

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

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

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

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

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

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

3.2.4 Типи планування

Динамічне планування.

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

Дисципліна диспетчеризації побудована на наявності інформації про пріоритети програм та процесів, про необхідність звернення до тих чи інших пристроїв, масивів даних, на угодах щодо пріоритетів переривань та перериваючих програм, на обраних дисциплінах обслуговування черг, які часто визначають і дисципліну формування черг.

Дисципліни формування черг поділяються на два класи: статичний, коли пріоритети процесів задано заздалегідь, та динамічний, за якого пріоритети визначаються в перебігу виконання програми.

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