logo

Спершу найкоротше завдання (SJF).

Досі ми планували процеси відповідно до часу їх надходження (у плануванні FCFS). Однак алгоритм планування SJF планує процеси відповідно до їхнього часу пакету.

У плануванні SJF наступним буде заплановано процес із найменшим часом пакету зі списку доступних процесів у черзі готовності.

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

Переваги SJF

  1. Максимальна пропускна здатність
  2. Мінімальний середній час очікування та виконання

Недоліки SJF

  1. Може страждати від проблеми голодування
  2. Це неможливо реалізувати, оскільки точний час пакету для процесу не може бути відомий заздалегідь.

Існують різні методи, за допомогою яких можна визначити час розвантаження ЦП процесу. Пізніше ми розглянемо їх детально.

приклад

У наступному прикладі є п’ять завдань з іменами P1, P2, P3, P4 і P5. Час їхнього прибуття та час вибуху наведено в таблиці нижче.

PID Час прибуття Час вибуху Час завершення Час обороту Час очікування
1 1 7 8 7 0
2 3 3 13 10 7
3 6 2 10 4 2
4 7 10 31 24 14
5 9 8 двадцять один 12 4

Оскільки, жоден процес не прибуває в момент часу 0, отже; буде порожній слот у діаграма Ганта від часу 0 до 1 (час, коли надходить перший процес).

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

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

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

Серед процесів, наведених у таблиці, P3 буде виконано наступним, оскільки він має найнижчий час пакету з усіх доступних процесів.

Таким чином процедура буде проходити найкоротша робота спочатку (SJF) алгоритм планування.

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

Середній час очікування = 27/5