Планування процесора (або Планування процесора) визначає, яким процесам призначено та вилучається з процесора, на основі моделей планування, таких як Переважна і Непередбачене планування (також відомий як Планування кооперативу).
Старіші системи можуть працювати в простих автономних режимах, але зі зростаючою потребою у чуйних, гнучких системах, а також у віртуалізації, управління багатообробними процесами ефективно забезпечує швидке реагування на всі запити обробки завдань.
Одиниці планування часто називають a завдання і завдання Планувальника - виконувати та керувати цими завданнями, коли це потрібно; Планувальник вибирає завдання, яке потрібно видалити та призначити процесору для обробки, відповідно до використовуваної моделі планування.
Планувальнику потрібно запустити справедливий та ефективний процес вибору, враховуючи змінні, динамічні запити обробки та максимально використовуючи цикли процесора.
Завдання можуть бути в двох станах під час обробки:
Коли процесор працює в режимі очікування, Планувальник зчитує Готова черга, і вибирає наступне завдання, яке потрібно виконати. Тоді, саме Диспетчер що дає вибране завдання управління процесором, тому це потрібно швидко! Будь-який час, зайнятий диспетчером, відомий як Затримка відправки.
Існують різні структури та спеціальні параметри для визначення Готова черга, а також декілька методів, які можна використовувати для управління складністю процесу планування.
Як правило, йдеться про оптимізацію та максимальне використання процесора, пропускну здатність тощо.
Планувальник повинен прийняти рішення протягом одного з наступних етапів:
Нове завдання повинно бути обране, якщо стадія 1 або 4 трапляється для забезпечення повного використання центрального процесора, а в обох етапах 2 та 3 завдання може продовжуватись виконуватись або обрано нове.
Після розуміння того, як обробляється завдання, розглянемо дві моделі планування, які стосуються переривань процесора.
Вони мають схожі функції із завданнями, станами завдань, чергами та пріоритетами (статичними чи динамічними):
Завдання в системі, що не передбачає попередження, виконуватимуться до завершення.
Потім планувальник перевіряє стан усіх завдань і планує наступне завдання з найвищим пріоритетом за допомогою a Готовий держава.
Що стосується непередбачуваного планування, після того, як завдання присвоєно процесору, його не можна буде зняти, навіть якщо для коротких завдань доводиться чекати довших завдань, щоб виконати.
Управління плануванням для всіх завдань є "справедливим", а часи відповіді передбачувані, оскільки завдання з високим пріоритетом не можуть збивати завдання очікування далі вниз по черзі.
Планувальник забезпечує, що кожне завдання отримує свою частку CPU, уникаючи затримок із будь-яким завданням. "Час часу", відведений CPU, не обов'язково може бути рівним, оскільки це залежить від часу, який потрібно виконати.
Ця модель планування дозволяє переривати завдання - на відміну від Непередбачуваного планування, що має підхід "до завершення"..
Переривання, які можуть бути ініційовані із зовнішніх викликів, викликають Планувальника, щоб призупинити запущене завдання, щоб керувати ще одним завданням більш високого пріоритету - таким чином, управління процесором може бути попереджено.
Завдання з найвищим пріоритетом в а Готовий стан виконується, що дозволяє швидко реагувати на події в режимі реального часу.
Деякі з мінусів програми Preemptive Scheduling передбачають збільшення накладних витрат на ресурси при використанні переривань, а проблеми можуть виникати з двома завданнями спільного використання даних, оскільки одна може бути перервана під час оновлення спільних структур даних і може негативно вплинути на цілісність даних.
З іншого боку, практичним є можливість призупинити завдання, щоб керувати ще одним, яке може бути критичним.
Можна визначити безліч варіацій та залежностей у різних політиках, наприклад використання a "Політика навколо круглого Робіна [i]" де кожне завдання (з рівним пріоритетом) виконується один раз, а потім розміщується в кінці черги для наступного циклу.
Інші політики включають Перший-Перший-Вихідний, Найкоротша робота-перша, Найкоротший - робота далі, Найкоротший залишковий час, тощо.
Аналіз історичних даних може надати інформацію про такі аспекти, як швидкість, з якою надходять нові завдання, процесори та введення / вибухи тощо, тому розподіл ймовірностей може обчислювати характеристики часу очікування завдань, тим самим озброюючи адміністраторів відповідними даними для визначення моделей планування..