Довідка та теорія
Планування ЦП вирішує, який із кількох готових процесів
отримає процесор наступним. Кожен процес має час
надходження та час обслуговування
(потрібний час ЦП). Планувальник обирає наступний процес.
FCFS
«Перший прийшов — перший обслужений» виконує процеси в порядку надходження, без витіснення. Просто, але довге завдання може затримати всіх позаду — ефект конвою.
SJF та SRTF
«Найкоротше завдання першим» обирає готовий процес із
найменшим обслуговуванням. SRTF — його витісняльна
форма: новоприбуле коротше завдання витісняє те, що виконується.
SJF дає доведено мінімальний середній час очікування, але може
голодувати довгі завдання.
Пріоритет
Кожен процес має пріоритет (менше число = вищий пріоритет тут). Планувальник виконує готовий процес із найвищим пріоритетом. Без старіння низькопріоритетні завдання можуть голодувати.
Циклічне (Round Robin)
Кожен процес виконується не довше за фіксований
квант, потім витісняється в кінець черги. Чудова
справедливість і час відгуку ціною більшої кількості
перемикань контексту.
Метрики
оборотний = завершення − надходженняочікування = оборотний − обслуговування
Перемкніть політику на тому самому наборі процесів і порівняйте середні — діаграма Ганта показує, де саме відбуваються перемикання контексту.
Поширені запитання
Що таке планування ЦП?
Планування ЦП — це діяльність операційної системи, що вирішує, який готовий процес отримає процесор наступним. Політика планування обирає серед очікуючих процесів, щоб оптимізувати цілі на кшталт малого часу очікування, справедливості чи пропускної здатності.
Яка різниця між FCFS і SJF?
FCFS (перший прийшов — перший обслужений) виконує процеси в порядку надходження. SJF (найкоротше завдання першим) обирає готовий процес із найменшим часом обслуговування. SJF мінімізує середній час очікування, але може голодувати довгі завдання й потребує знання тривалостей наперед.
Яка різниця між SJF і SRTF?
SJF без витіснення: щойно процес стартував, він виконується до завершення. SRTF (найменший залишковий час першим) — це витісняльна версія: якщо новоприбулий процес має менший залишковий час, ніж той, що виконується, він витісняє його.
Як працює циклічне планування (Round Robin)?
Циклічне планування по черзі дає кожному процесу фіксований квант часу через кільцеву чергу готових. Якщо процес не завершився після закінчення кванта, його витісняють у кінець черги, забезпечуючи чутливий і справедливий розподіл часу.
Що таке оборотний час?
Оборотний час — це загальний час від надходження процесу до його завершення: час завершення мінус час надходження. Він дорівнює часу очікування плюс час обслуговування.
Що таке час очікування?
Час очікування — це час, який процес проводить у черзі готових, не виконуючись. Він дорівнює оборотному часу мінус час обслуговування і є метрикою, яку більшість планувальників намагаються мінімізувати в середньому.
Що таке діаграма Ганта у плануванні?
Діаграма Ганта — це горизонтальна часова лінія, що показує, який процес займає ЦП у кожному кванті часу. Перемикання контексту з'являються як межі між кольоровими блоками, тож легко побачити порядок і тривалість виконання.
Що таке ефект конвою?
Ефект конвою виникає за FCFS, коли довгий процес, обмежений ЦП, прибуває першим і багато коротких процесів стають у чергу за ним, роздуваючи їхній час очікування. SJF і SRTF уникають цього, надаючи пріоритет коротким завданням.
Чи може пріоритетне планування спричинити голодування?
Так. Якщо високопріоритетні процеси постійно прибувають, низькопріоритетний процес може ніколи не виконатися. Реальні системи використовують старіння, яке поступово підвищує пріоритет процесів, що довго чекають, щоб запобігти голодуванню.
Яка політика планування найкраща?
Єдиної найкращої політики немає. SJF/SRTF мінімізують середній час очікування, але потребують прогнозів тривалості й ризикують голодуванням; FCFS простий, але страждає від ефекту конвою; циклічне дає справедливий час відгуку для інтерактивних систем ціною більшої кількості перемикань контексту.