алгоритми планування

1) First Come, First Served (першим прийшов, першим обслужений)

Черга FIFO (First In, First Out (першим увійшов, першим вийшов)).

Такий алгоритм вибору процесу здійснює невитісняючі планування. Процес, який отримав в своє розпорядження процесор, займає його до закінчення свого поточного CPU burst. Після цього для виконання вибирається новий процес з початку черги.

- якщо процес з тривалим CPU burst, то короткі процеси, які перейшли в стан «готовність» після тривалого процесу, будуть дуже довго чекати початку свого виконання

- алгоритм FCFS практично непридатний для систем поділу часу

- занадто велике середній час відгуку в інтерактивних процесах

2) Round Robin (RR)

(Round Robin - це вид дитячої каруселі в США)

алгоритми планування

При виконанні процесу можливі два варіанти:

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

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

- при занадто малій величині кванта часу і, відповідно, занадто частому перемиканні контексту, накладні витрати на перемикання різко знижують продуктивність системи

3) Shortest-Job-First (SJF)

( "Найкоротша робота першої" або Shortest Job First (SJF))

Квантування часу не застосовується.

SJF алгоритм короткострокового планування може бути як витісняє, так і невитісняючі. При невитісняючі SJF плануванні процесор надається обраному процесу на все потрібне йому час, незалежно від подій, що відбуваються в обчислювальній системі. При витісняє SJF плануванні враховується поява нових процесів в черзі готових до виконання (з числа знову народилися або розблокованих) під час роботи обраного процесу. Якщо CPU burst нового процесу менше, ніж залишок CPU burst у що виконується, то що виконується процес витісняється новим.

4) Пріоритетне планування

При пріоритетному плануванні кожному процесу присвоюється певне числове значення - пріоритет, відповідно до якого йому виділяється процесор. Процеси з однаковими пріоритетами плануються в порядку FCFS. Для алгоритму SJF як такого пріоритету виступає оцінка тривалості наступного CPU burst. Чим менше значення цієї оцінки, тим вищий пріоритет має процес.

5) Багаторівневі черги

Для систем, в яких процеси можуть бути легко розсортовані на різні групи, був розроблений інший клас алгоритмів планування. Для кожної групи процесів створюється своя чергу процесів, що знаходяться в стані готовність (див. Малюнок). Цим чергам приписуються фіксовані пріоритети. Пріоритет черзі процесів, запущених студентами, - нижче, ніж для черги процесів, запущених викладачами. Це означає, що жоден призначений для користувача процес не буде обраний для виконання, поки є хоч один готовий системний процес, і жоден студентський процес не отримає в своє розпорядження процесор, якщо є процеси викладачів, готові до виконання. Усередині цих черг для планування можуть застосовуватися найрізноманітніші алгоритми. Так, наприклад, для великих рахункових процесів може використовуватися алгоритм FCFS, а для інтерактивних процесів - алгоритм RR. Подібний підхід, що отримав назву багаторівневих черг, підвищує гнучкість планування: для процесів з різними характеристиками застосовується найбільш підходящий їм алгоритм.

алгоритми планування

Схожі статті