Давайте коротко обговоримо розбіжності між попереднім та невикористовуваним плануванням за допомогою діаграми порівняння, наведеної нижче.
Діаграма порівняння
Основа для порівняння | Попереднє планування | Планування без попередження |
---|---|---|
Основний | Ресурси виділяються процесу протягом обмеженого часу. | Після виділення ресурсів процесу, процес утримує його, поки він не завершить свій пакетний час або переключиться на стан очікування. |
Переривання | Процес може бути перерваний між ними. | Процес не може бути перерваний, поки він не закінчиться або перейде в стан очікування. |
Голодування | Якщо процес високого пріоритету часто надходить у чергу готовності, процес з низьким пріоритетом може голодувати. | Якщо процес з довгим часом пакета виконується процесором, то інший процес з меншим часом запуску процесора може голодувати. |
Накладні витрати | Переважне планування має накладні витрати планування процесів. | Непереважне планування не має накладних витрат. |
Гнучкість | Переважне планування є гнучким. | Непереважне планування є жорстким. |
Вартість | Переважне планування пов'язане з витратами. | Непереважне планування не є витратним асоціативним. |
Визначення попереднього планування
Переважне планування є таке, що може бути зроблено в обставинах, коли процес переходить з запущеного стану в стан готовності або з стану очікування в стан готовності . Тут ресурси (процесорні цикли) виділяються процесу протягом обмеженого періоду часу, а потім відбираються, і процес знову поміщається в чергу готовності, якщо ще залишилося час процесора. Процес залишається в готовій черзі, поки не отримає наступний шанс на виконання.
Якщо процес з високим пріоритетом надходить у готову чергу, він не повинен чекати, поки поточний процес завершить час пакета. Замість цього, поточний процес переривається в середині виконання і поміщається в готову чергу, поки процес з високим пріоритетом не використовує цикли процесора. Таким чином, кожен процес в готовій черзі отримує деякий час для запуску процесора. Це робить гнучке планування випередження, але збільшує накладні витрати, пов'язані з перемиканням процесу з запущеного стану в готовий стан і тиск-вірш.
Алгоритми, які працюють на попереднє планування, є Round Robin. Найкоротша робота спочатку (SJF) і планування пріоритету можуть або не підпадають під попереднє планування.
Візьмемо приклад попереднього планування, див. На малюнку нижче. Ми маємо чотири процеси P0, P1, P2, P3. Виходячи з цього, P2 надходить у момент часу 0. Таким чином, процесор Р2 виділяється процесором, оскільки в черзі немає іншого процесу. Тим часом Р2 виконується, Р3 надходить у час 1, тепер час, що залишився для процесу Р2 (5 мілісекунд), що більше, ніж час, необхідний для Р3 (4 мілісекунди). Так процесор виділяється процесору P3.
Визначення планування без попереджувального планування
Непереважне планування - це те, що може застосовуватися в обставинах, коли процес завершується, або процес перемикається з запущеного в стан очікування . У Плануванні без попереджувального планування, коли ресурси (ЦП) виділяються процесу, процес утримує ЦП до завершення або досягнення стану очікування.
На відміну від попереднього планування, непереважне планування не перериває процес, який запускає процесор в середині виконання. Замість цього він очікує завершення процесу процесора, а потім може виділити процесор в інший процес.
У випадку непереважного планування, якщо виконується процес з довгим часом процесора, інший процес повинен буде чекати довгий час, що збільшує середній час очікування процесів у готовій черзі. Тим не менш, непереважне планування не має ніяких накладних витрат на перемикання процесів з готової черги на ЦП, але це робить жорстке планування, оскільки виконуваний процес навіть не витісняється для процесу з більш високим пріоритетом.
Ключові відмінності між попереднім та невивантажувальним плануванням
- Основна відмінність між попереднім і непереважним плануванням полягає в тому, що в попередньому плануванні ЦП виділяється процесам протягом обмеженого часу. У процесі планування без витіснення ЦП виділяється процесу, поки він не завершиться або перейде в стан очікування .
- Процес виконання в превентивному плануванні переривається в середині виконання, тоді як процес виконання в непереважному плануванні не переривається в середині виконання.
- Попереднє планування має накладні витрати на перемикання процесу з стану готовності до запущеного стану, тис-вірша і збереження готової черги. З іншого боку, непереважне планування не має накладних витрат на перемикання процесу з стану запуску в стан готовності.
- У попередньому плануванні, якщо процес з високим пріоритетом часто надходить у готову чергу, то процес з низьким пріоритетом повинен чекати довго, і він, можливо, повинен голодувати. З іншого боку, в непереважному плануванні, якщо процесор призначений для процесу з більшим часом розгону, то процеси з малим часом пакета можуть змусити голодувати.
- Переважне планування є досить гнучким, оскільки критичним процесам дозволено доступ до CPU, коли вони надходять у готову чергу, незалежно від того, який процес виконується в даний час. Непереважне планування є жорстким, оскільки навіть якщо критичний процес надходить у готову чергу, процес, що виконується CPU, не порушується.
- Попереднє планування є асоціативним, оскільки воно має підтримувати цілісність загальних даних, що не стосується непереважного планування.
Висновок:
Це не те, що попереджувальне планування краще, ніж непереважне планування або типові вірші. Все залежить від того, як планування мінімізує середній час очікування процесів і максимізує використання ЦП.