Головна Розподілені та Паралельні Обчислення Планування ЦП — FCFS, SJF, циклічне

🖥️ Планування ЦП — FCFS, SJF, циклічне

Плануйте процеси на ЦП політиками FCFS, SJF, за пріоритетом та циклічною. Анімована діаграма Ганта показує перемикання контексту, а середні час очікування й обороту оновлюються наживо.

Розподілені та Паралельні Обчислення2DСередній60 FPS
cpu-scheduling ↗ Відкрити окремо
DRAG · SCROLL · CLICK — керуйте прямо у вікні симуляції.

Про планування ЦП

Ця симуляція моделює, як операційна система розподіляє один ЦП між кількома конкуруючими процесами. Кожен процес має час прибуття, тривалість виконання ЦП і пріоритет. Планувальник обчислює повну часову шкалу виконання, одна одиниця часу за раз, за обраною політикою, а потім показує її як анімовану діаграму Ганта. З цієї шкали він виводить завершення, оборот і час очікування кожного процесу за стандартними співвідношеннями: оборот = завершення − прибуття та очікування = оборот − тривалість.

Селектор Policy перемикає між FCFS, SJF, SRTF, непереривним Priority та Round Robin, а повзунок Quantum (1–6) встановлює часовий відрізок, який використовує Round Robin. Повзунок Count (2–7) встановлює, скільки процесів генерується, Randomise перегенерує їхні значення прибуття, тривалості й пріоритету, а Speed керує відтворенням, поки Step просуває на одну одиницю. Планування ЦП фундаментальне для операційних систем: ті самі компроміси між пропускною здатністю, справедливістю й часом відгуку керують реальними планувальниками в Linux, Windows та вбудованих системах реального часу.

Часті запитання

Що саме обчислює ця симуляція планування ЦП?

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

Які політики планування можна обрати?

Доступно п'ять політик: FCFS (First-Come First-Served), SJF (Shortest Job First, без витіснення), SRTF (витісняючий найкоротший залишковий час), Priority (без витіснення, менше число означає вищий пріоритет) та Round Robin. Вибір політики негайно перераховує часову шкалу для того самого набору процесів, тож ви можете їх порівняти.

Що роблять елементи керування Quantum, Count і Speed?

Quantum (від 1 до 6) — це фіксований часовий відрізок, який отримує кожен процес у Round Robin перед витісненням; на інші політики він не впливає. Count (від 2 до 7) встановлює, скільки процесів генерується, а Speed масштабує швидкість відтворення анімації, не змінюючи результат.

У чому різниця між SJF та SRTF?

SJF без витіснення: щойно процес починається, він виконується до завершення, і планувальник обирає знову лише коли ЦП звільняється. SRTF — витісняюча форма: щоразу він обирає доступний процес з найменшим залишковим часом, тож щойно прибулий коротший процес може перервати поточний.

Як обчислюються час обороту та час очікування?

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

Чому Round Robin породжує так багато перемикань контексту?

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

Що таке ефект конвою і як його побачити тут?

Ефект конвою трапляється за FCFS, коли довгий процес, обмежений ЦП, прибуває першим, а кілька коротких процесів чекають за ним у черзі, роздуваючи їхній час очікування. Рандомізуйте, доки довге завдання не прибуде рано, запустіть FCFS, а потім перемкніться на SJF на тому самому наборі: середній час очікування зазвичай різко падає.

Чи моделює симуляція витіснення та простій ЦП?

Так. SRTF та Round Robin справді витісняючі в цій моделі, а коли жоден процес ще не прибув, часова шкала записує одиницю простою, показану блідим блоком. Ці проміжки простою все одно враховуються у totalTime, тож вони коректно затримують завершення й оборот пізніших процесів.

Як політика Priority вирішує, що виконується?

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

Чи є це точною моделлю справжнього планувальника операційної системи?

Алгоритми відповідають підручниковим визначенням, що викладаються на курсах операційних систем, з цілочисельними одиницями часу й відомими тривалостями. Реальні планувальники додають ускладнення, такі як невідомі майбутні тривалості, блокування вводу-виводу, кілька ядер, старіння пріоритету та накладні витрати на перемикання, тож це точна навчальна модель, а не достовірне відтворення виробничого ядра.

Схожі симуляції