Рекомендуємо, 2024

Вибір Редакції

Різниця між вибірковим та непрямим заплануванням в ОС

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

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

Діаграма порівняння

Основа для порівнянняПопереднє плануванняПланування без попередження
ОсновнийРесурси виділяються процесу протягом обмеженого часу.Після виділення ресурсів процесу, процес утримує його, поки він не завершить свій пакетний час або переключиться на стан очікування.
ПерериванняПроцес може бути перерваний між ними.Процес не може бути перерваний, поки він не закінчиться або перейде в стан очікування.
ГолодуванняЯкщо процес високого пріоритету часто надходить у чергу готовності, процес з низьким пріоритетом може голодувати.Якщо процес з довгим часом пакета виконується процесором, то інший процес з меншим часом запуску процесора може голодувати.
Накладні витратиПереважне планування має накладні витрати планування процесів.Непереважне планування не має накладних витрат.
ГнучкістьПереважне планування є гнучким.Непереважне планування є жорстким.
ВартістьПереважне планування пов'язане з витратами.Непереважне планування не є витратним асоціативним.

Визначення попереднього планування

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

Якщо процес з високим пріоритетом надходить у готову чергу, він не повинен чекати, поки поточний процес завершить час пакета. Замість цього, поточний процес переривається в середині виконання і поміщається в готову чергу, поки процес з високим пріоритетом не використовує цикли процесора. Таким чином, кожен процес в готовій черзі отримує деякий час для запуску процесора. Це робить гнучке планування випередження, але збільшує накладні витрати, пов'язані з перемиканням процесу з запущеного стану в готовий стан і тиск-вірш.

Алгоритми, які працюють на попереднє планування, є Round Robin. Найкоротша робота спочатку (SJF) і планування пріоритету можуть або не підпадають під попереднє планування.

Візьмемо приклад попереднього планування, див. На малюнку нижче. Ми маємо чотири процеси P0, P1, P2, P3. Виходячи з цього, P2 надходить у момент часу 0. Таким чином, процесор Р2 виділяється процесором, оскільки в черзі немає іншого процесу. Тим часом Р2 виконується, Р3 надходить у час 1, тепер час, що залишився для процесу Р2 (5 мілісекунд), що більше, ніж час, необхідний для Р3 (4 мілісекунди). Так процесор виділяється процесору P3.

Тим часом, P3 виконувався, процес P1 надходив у момент часу 2. Тепер час, що залишився для P3 (3 мілісекунди) менше часу, необхідного для процесів P1 (4 мілісекунди) і P2 (5 мілісекунд). Таким чином, P3 має право продовжувати. Поки P3 триває, процес P0 надходить у момент 3, тепер час, що залишився для P3 (2 мілісекунди) дорівнює часу, необхідному для P0 (2 мілісекунди). Таким чином, P3 продовжується і після закінчення P3 CPU виділяється P0, оскільки він має менший час, ніж інші. Після завершення P0 ЦП виділяється на Р1, а потім на Р2.

Визначення планування без попереджувального планування

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

На відміну від попереднього планування, непереважне планування не перериває процес, який запускає процесор в середині виконання. Замість цього він очікує завершення процесу процесора, а потім може виділити процесор в інший процес.

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

Давайте вирішимо вищезгаданий приклад планування в непрямому порядку. Оскільки спочатку процес P2 надходить у момент часу 0, то CPU виділяється процесу P2, для виконання якого потрібно 6 мілісекунд. Між усіма процесами, тобто P0, P1, P3 надходить у готову чергу. Але всі чекають, поки процес P2 завершить час розгону процесора. Потім процес, що надходить після P2, тобто P3, потім виділяє процесор, поки він не закінчить його час вибуху. Аналогічно, потім виконується P1, а потім процесор P0.

Ключові відмінності між попереднім та невивантажувальним плануванням

  1. Основна відмінність між попереднім і непереважним плануванням полягає в тому, що в попередньому плануванні ЦП виділяється процесам протягом обмеженого часу. У процесі планування без витіснення ЦП виділяється процесу, поки він не завершиться або перейде в стан очікування .
  2. Процес виконання в превентивному плануванні переривається в середині виконання, тоді як процес виконання в непереважному плануванні не переривається в середині виконання.
  3. Попереднє планування має накладні витрати на перемикання процесу з стану готовності до запущеного стану, тис-вірша і збереження готової черги. З іншого боку, непереважне планування не має накладних витрат на перемикання процесу з стану запуску в стан готовності.
  4. У попередньому плануванні, якщо процес з високим пріоритетом часто надходить у готову чергу, то процес з низьким пріоритетом повинен чекати довго, і він, можливо, повинен голодувати. З іншого боку, в непереважному плануванні, якщо процесор призначений для процесу з більшим часом розгону, то процеси з малим часом пакета можуть змусити голодувати.
  5. Переважне планування є досить гнучким, оскільки критичним процесам дозволено доступ до CPU, коли вони надходять у готову чергу, незалежно від того, який процес виконується в даний час. Непереважне планування є жорстким, оскільки навіть якщо критичний процес надходить у готову чергу, процес, що виконується CPU, не порушується.
  6. Попереднє планування є асоціативним, оскільки воно має підтримувати цілісність загальних даних, що не стосується непереважного планування.

Висновок:

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

Top