Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

spz / lect / lekc5_2_DD

.pdf
Скачиваний:
16
Добавлен:
23.02.2016
Размер:
150.68 Кб
Скачать

Системне програмне забезпечення. І.Яковлєва.

1

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

1.Функції ОС, пов’язані з керуванням задач.

2.Організація черг процесів та ресурсів.

3.Стратегії планування.

4.Якість диспетчеризації та гарантії обслуговування.

5.Критерії порівняння алгоритмів диспетчеризації.

6.Причини зменшення продуктивності системи.

ОС виконує основні наступні функції, пов’язані з керуванням задач:

-Створення та знищення задач;

-Планування процесів та диспетчеризація задач

-Синхронізація задач, забезпечення їх засобами комунікації.

Основним підходом до організації того або іншого метода керування процесами, який забезпечить ефективне завантаження ресурсів, є організація

черг процесів та ресурсів.

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

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

динамічного планування називають диспетчеризацією.

Короткостроковий планувальник може запускатися кожні 30 –100 мс.

Стратегії планування

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

-По можливості закінчувати обчислення в тому ж порядку, в якому вони були отримані;

-Надавати перевагу більш коротким процесам;

-Надавати усім користувачам (процесам) однакові послуги, в тому числі о однаковий час очікування.

Якість диспетчеризації і гарантії обслуговування

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

Системне програмне забезпечення. І.Яковлєва.

2

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

Більшою вимогою до системи, чим просто гарантоване завершення процесу, є його гарантоване завершення до зазначеного моменту часу чи за зазначений інтервал часу. Існують різні дисципліни диспетчеризації, що враховують тверді тимчасові обмеження, але не існує дисциплін, що могли б надати більше процесорного часу, чим може бути в принципі виділено.

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

Гарантувати обслуговування можна наступними трьома способами:

1.виділяти мінімальну частку процесорного часу деякому класу процесів, якщо принаймні один з них готовий до виконання. Наприклад, можна відводити 20 % від кожних 10 мс процесам реального часу, 40 % від кожних 2 з - інтерактивним процесам і 10 % від кожних 5 хв — пакетним (фоновим) процесам;

2.виділяти мінімальну частку процесорного часу деякому конкретному процесу, якщо він готовий до виконання;

3.виділяти стільки процесорного часу, щоб він міг виконати свої обчислення до терміну.

Для порівняння алгоритмів диспетчеризації звичайно

використовуються наступні критерії:

-Використання (завантаження) центрального процесора (CPU utilization). У більшості персональних систем середнє завантаження процесора не перевищує 2-3 %, доходячи в моменти виконання складних обчислень і до 100 %. У реальних системах, де комп'ютери виконують дуже багато роботи, наприклад, у серверах, завантаження процесора коливається в межах 15-40 % для легко завантаженого процесора і до 90-100 % — для сильно завантаженого процесора.

-Пропускна здатність (CPU throughput). Пропускна здатність процесора може вимірятися кількістю процесів, що виконуються в одиницю часу.

-Час обороту (turnaround time). Для деяких процесів важливим критерієм є повний час виконання, тобто інтервал від моменту появи процесу у

вхідній черзі до моменту его завершення. Цей час названий часом обороту і включає час чекання у вхідній черзі, час чекання в черзі готових процесів, час чекання і чергах до устаткування, час виконання в процесорі і час уведення/висновку.

Системне програмне забезпечення. І.Яковлєва.

3

-Час чекання (waiting time). Під часом чекання розуміється сумарний час перебування процесу в черзі готових процесів.

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

Правильне планування процесів сильно впливає на продуктивність усієї системи. Можна виділити наступні головні причини, що приводять до зменшення продуктивності системи:

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

-Переключення на інший процес у той момент, коли поточний процес виконує критичну секцію, а інші процеси актинію очікують входу в свою критичну секцію. У цьому випадку втрати будуть особливо великі (хоча імовірність переривання виконання коротких критичні секції мала.

Соседние файлы в папке lect