Різниця між попереднім і непередбачуваним плануванням в операційних системах

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

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

Одиниці планування часто називають a завдання і завдання Планувальника - виконувати та керувати цими завданнями, коли це потрібно; Планувальник вибирає завдання, яке потрібно видалити та призначити процесору для обробки, відповідно до використовуваної моделі планування.

Як планувальник знає, які завдання є пріоритетними?

Планувальнику потрібно запустити справедливий та ефективний процес вибору, враховуючи змінні, динамічні запити обробки та максимально використовуючи цикли процесора.

Завдання можуть бути в двох станах під час обробки:

  1. В CPU Burst де процесор виконує обчислення для обробки завдання (період для CPU Burst варіюється від завдання до завдання, а програма до програми).
  2. В ан Порушення вводу / виводу (вводу / виводу) чекаючи отримання даних або надсилання даних із системи.

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

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

Як правило, йдеться про оптимізацію та максимальне використання процесора, пропускну здатність тощо.

Планувальник повинен прийняти рішення протягом одного з наступних етапів:

  1. Коли Завдання змінюється на a Біг до а Держава, що чекає (наприклад, очікування під час запиту вводу / виводу).
  2. Коли Завдання змінюється на Біг до Готовий (наприклад, відповідь на перерву).
  3. Коли Завдання змінюється на Очікування до Готовий (наприклад, запит вводу / виводу завершено).
  4. Коли Завдання

Нове завдання повинно бути обране, якщо стадія 1 або 4 трапляється для забезпечення повного використання центрального процесора, а в обох етапах 2 та 3 завдання може продовжуватись виконуватись або обрано нове.

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

Вони мають схожі функції із завданнями, станами завдань, чергами та пріоритетами (статичними чи динамічними):

  • Непередбачене планування це коли завдання виконується, поки воно не припиняється (добровільно) або закінчується. Windows® мав непередбачуване планування до Windows 3.x, після чого він змінився на Preemptive з Windows 95.
  • Переважне планування там, де завдання може бути примусово призупинено перериванням процесора, на відміну від Non-Prepptive, коли завдання працює, поки не звільнить керування процесором..

Непередбачене планування

Завдання в системі, що не передбачає попередження, виконуватимуться до завершення.

Потім планувальник перевіряє стан усіх завдань і планує наступне завдання з найвищим пріоритетом за допомогою a Готовий держава.

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

Управління плануванням для всіх завдань є "справедливим", а часи відповіді передбачувані, оскільки завдання з високим пріоритетом не можуть збивати завдання очікування далі вниз по черзі.

Планувальник забезпечує, що кожне завдання отримує свою частку CPU, уникаючи затримок із будь-яким завданням. "Час часу", відведений CPU, не обов'язково може бути рівним, оскільки це залежить від часу, який потрібно виконати.

Переважне планування

Ця модель планування дозволяє переривати завдання - на відміну від Непередбачуваного планування, що має підхід "до завершення"..

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

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

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

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

Підсумки

Можна визначити безліч варіацій та залежностей у різних політиках, наприклад використання a "Політика навколо круглого Робіна [i]" де кожне завдання (з рівним пріоритетом) виконується один раз, а потім розміщується в кінці черги для наступного циклу.

Інші політики включають Перший-Перший-Вихідний, Найкоротша робота-перша, Найкоротший - робота далі, Найкоротший залишковий час, тощо.

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