Алгоритм планування пріоритетів: превентивний, непревентивний
⚡ Розумний підсумок
Планування пріоритетів – це метод планування процесора, який вибирає процеси на основі пріоритету, запускаючи завдання з вищим пріоритетом першими. Він може бути випереджаючим або невипереджуючим, а процеси з однаковим пріоритетом обробляються в порядку живої черги або за циклічним принципом.

Що таке пріоритетне планування?
Пріоритетне планування це метод планування процесів, який базується на пріоритеті. У цьому алгоритмі планувальник вибирає завдання для роботи відповідно до пріоритету.
Першими слід виконувати процеси з вищим пріоритетом, тоді як роботи з рівними пріоритетами виконуються на основі циклу або FCFS. Пріоритет залежить від вимог до пам'яті, вимог часу тощо.
Типи пріоритетного планування
Пріоритетне планування поділяється на два основні типи:
Випереджувальне планування
У випереджальному плануванні завдання здебільшого призначаються з їхніми пріоритетами. Іноді важливо запустити завдання з вищим пріоритетом перед іншим завданням з нижчим пріоритетом, навіть якщо завдання з нижчим пріоритетом все ще виконується. Завдання з нижчим пріоритетом зберігається деякий час і відновлюється, коли завдання з вищим пріоритетом завершує своє виконання.
Невипереджувальне планування
У цьому типі методу планування процесор виділяється певному процесу. Процес, який займає процесор, звільняє його шляхом перемикання контексту або завершення. Це єдиний метод, який можна використовувати для різних апаратних платформ. Це пояснюється тим, що він не потребує спеціального обладнання (наприклад, таймера), як превентивне планування.
Характеристики пріоритетного планування
- Алгоритм ЦП, який планує процеси на основі пріоритету.
- Він використовується в Росії Operaсистеми для виконання пакетних процесів.
- Якщо два завдання з однаковим пріоритетом ГОТОВІ, воно працює на a ПЕРШИЙ ПРИЙШОВ - ПЕРШИЙ ОТРИМАВ основою.
- У плануванні пріоритетів кожному процесу присвоюється номер, який вказує на його рівень пріоритету.
- Чим менше число, тим вищий пріоритет.
- У цьому типі алгоритму планування, якщо надходить новіший процес, який має вищий пріоритет, ніж поточний запущений процес, то поточний запущений процес витісняється.
Приклад пріоритетного планування
Розглянемо наступні п'ять процесів від P1 до P5. Кожен процес має свій унікальний пріоритет, час пакетної обробки та час надходження.
| Процес | Пріоритет | Час вибуху | Час прибуття |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 3 | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Крок 0) У момент часу = 0 надходять процеси P1 та P2. P1 має вищий пріоритет, ніж P2. Виконання починається з процесу P1, час пакетної обробки якого становить 4.
Крок 1) У момент часу = 1 новий процес не надходить. Виконання продовжується з P1.
Крок 2) У момент часу 2 новий процес не надходить, тому ви можете продовжити з P1. P2 стоїть у черзі.
Крок 3) У момент часу 3 новий процес не надходить, тому можна продовжити з P1. Процес P2 все ще перебуває в черзі очікування.
Крок 4) У момент часу 4 P1 завершив своє виконання. P2 починає виконання.
Крок 5) У момент часу = 5 новий процес не надходить, тому ми продовжуємо з P2.
Крок 6) У момент часу = 6 надходить P3. P3 має вищий пріоритет (1) порівняно з P2, який має пріоритет (2). P2 витісняється, і P3 починає своє виконання.
| Процес | Пріоритет | Час вибуху | Час прибуття |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 із 3 очікує на розгляд | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Крок 7) У момент часу 7 новий процес не надходить, тому ми продовжуємо з P3. P2 знаходиться в черзі очікування.
Крок 8) У момент часу = 8 новий процес не надходить, тому ми можемо продовжити з P3.
Крок 9) У момент часу = 9 новий процес не виникає, тому ми можемо продовжити з P3.
Крок 10) На інтервалі часу 10 не виникає жодного нового процесу, тому ми продовжуємо з P3.
Крок 11) У момент часу = 11, P4 надходить з пріоритетом 4. P3 має вищий пріоритет, тому він продовжує своє виконання.
| Процес | Пріоритет | Час вибуху | Час прибуття |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 із 3 очікує на розгляд | 0 |
| P3 | 1 | 2 із 7 очікує на розгляд | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Крок 12) У момент часу = 12 надходить P5. P3 має вищий пріоритет, тому його виконання продовжується.
Крок 13) О моменті часу = 13, P3 завершує виконання. У черзі готовності є P2, P4, P5. P2 та P5 мають однаковий пріоритет. Час прибуття P2 передує P5, тому P2 починає виконання.
| Процес | Пріоритет | Час вибуху | Час прибуття |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 із 3 очікує на розгляд | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Крок 14) У момент часу = 14 процес P2 завершив своє виконання. P4 та P5 перебувають у стані очікування. P5 має найвищий пріоритет і починає виконання.
Крок 15) У момент часу = 15 виконання P5 продовжується.
Крок 16) У момент часу = 16 виконання P5 завершується. Залишається лише P4. Він починає виконуватися.
Крок 17) У момент часу = 20, P4 завершив виконання і більше не залишилося жодного процесу.
Крок 18) Давайте розрахуємо середній час очікування для наведеного вище прикладу.
Час очікування = час початку – час прибуття + час очікування наступного пакету
P1 = 0 - 0 = 0 P2 = 4 - 0 + 7 = 11 P3 = 6 - 6 = 0 P4 = 16 - 11 = 5 Average Waiting time = (0 + 11 + 0 + 5 + 2)/5 = 18/5 = 3.6
Переваги пріоритетного планування
Ось переваги/плюси використання методу пріоритетного планування:
- Простий у використанні метод планування.
- Процеси виконуються на основі пріоритету, тому високий пріоритет не потребує тривалого очікування, що економить час.
- Цей метод забезпечує хороший механізм, за допомогою якого можна точно визначити відносну важливість кожного процесу.
- Підходить для програм із змінними вимогами до часу та ресурсів.
Недоліки пріоритетного планування
Ось недоліки/недоліки пріоритетного планування:
- Якщо врешті-решт система виходить з ладу, усі процеси з низьким пріоритетом втрачаються.
- Якщо процеси з високим пріоритетом займають багато процесорного часу, то процеси з нижчим пріоритетом можуть не працювати, і їх буде відкладено на невизначений час.
- Цей алгоритм планування може залишити деякі процеси з низьким пріоритетом у очікуванні невизначений час.
- Процес буде заблоковано, коли він буде готовий до запуску, але повинен чекати на ЦП, оскільки зараз виконується якийсь інший процес.
- Якщо новий процес з вищим пріоритетом продовжує надходити в чергу готових, то процесу, який перебуває в стані очікування, можливо, доведеться чекати тривалий час.


















