Щоб створити алгоритм планування, потрібно мати якесь уявлення про те, з чим повинен впоратися тлумачний алгоритм. Деякі завдання залежать від середовища оточення (пакетна, інтерактивна або реального часу), але є й такі завдання, які бажано виконати в будь-якому випадку. Ось деякі завдання алгоритму планування, яких слід дотримуватися при різних обставини, і які нам незабаром доведеться розглянути:
- Всі системи
Рівнодоступного ______________________________________________________________________
______________________________________________________________________________________________
Примушування до певної політиці —_________________________________________________________
______________________________________________________________________________________________
Баланс — ________________________________________________________________________________
Продуктивність — _________________________________________________________________________
Зворотній час-_____________________________________________________________________________
Використання центрального процесора — ___________________________________________________
- Интерактивні системы
Час відгуку — _________________________________________________________________________
Пропорційність — ____________________________________________________________________
- Системи реального часу
Дотримання граничних строків — __________________________________________________________
Передбачуваність — _______________________________________________________________________
____________________________________________________________________________________________________________________________________________________________________________________________
Найпростішим з усіх алгоритмів планування буде непріорітетним алгоритм, наступний принципом: «першим прийшов - першим обслужений». При використанні цього алгоритму центральний процесор виділяється процесам в порядку надходження їх запитів.
Сильною стороною цього алгоритму є простота його розуміння і така ж простота його програмування. Його справедливість схоже справедливості розподілу дефіцитних квитків на спортивні або концертні видовища тим людям, які зайняли чергу з другої години ночі. При використанні цього алгоритму відстеження готових процесів здійснюється за допомогою єдиного пов'язаного списку. Вибір наступного виконуваного процесу зводиться до ви ¬ потягу одного процесу з початку черги. Додавання нового завдання або розблокованого процесу зводиться до приєднання його до кінця черги. Що може бути простіше для сприйняття і реалізації?
На жаль, принцип «першим прийшов - першим обслужений» страждає також і суттєвими недоліками. Припустимо, що використовується один процес, обмежений швидкістю обчислень, який щоразу запускається на 1 с, і безліч процесів, обмежених швидкістю роботи пристроїв введення-виведення, незначно використовують час центрального процесора, але кожен повинен здійснити 1000 зчитувань з диску, перш ніж завершити свою роботу. Процес, обмежений швидкістю обчислень, працює протягом 1 с, а потім переходить до читання блоку даних з диска. Тепер запускаються всі процеси введення-виведення і приступають до читання даних з диска. Коли процес, обмежений швидкістю обчислень, отримує свій блок даних з диска, він запускається ще на 1 с, а за ним безперервною низкою слідують всі процеси, обмежені швидкістю роботи пристроїв введення-виведення.
В остаточному підсумку кожен процес,_______________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
Лекція№12
Планування в інтерактивних системах
Циклічне планування
Одним із самих старих, простих, справедливих і найбільш використовуваних залишається алгоритм циклічного планування. _____________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
Зрозуміло, якщо процес переходить в блокований стан або завершує свою роботу до закінчення кванта часу, то перемикання центрального процесора на інший процес відбувається саме в цей момент. Алгоритм циклічної планування не представляє складності в реалізації. На рис. 2.21, а показано, що від планувальника потрібно всього лише вести список процесів, готових до виконання. Коли процес вичерпає свій квант часу, він, як показано на рис. 2.21, б, поміщається в кінець списку.
Пріоритетне планування
Основна ідея: ___________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
Навіть якщо у персонального комп'ютера один власник, на ньому можуть виконуватися кілька процесів з різним ступенем важливості.
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
______________________________________________________________________________________________
На рис. 2.22 показана система з чотирма класами пріоритетності. Алгоритм планування виглядає наступним чином: якщо є готові до запуску процеси з класом пріоритетності 4, слід запустити кожен з них на один квант часу, за принципом планування, при цьому зовсім не турбуючись про класи з більш низьким пріоритетом. Коли клас з рівнем пріоритету 4 спорожніє, в циклічному режимі запускаються процеси з класом пріоритетності 3. Якщо спорожніють обидва класи, і 4 і 3, в циклічному режимі запускаються процеси з класом пріоритетності 2, і т. д.