Алгоритм планування пріоритетів: превентивний, непревентивний

⚡ Розумний підсумок

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

  • 🎯 Визначення: Процеси плануються за пріоритетом, причому завдання з вищим пріоритетом виконуються раніше за завдання з нижчим пріоритетом.
  • 🔢 Номер пріоритету: Менше число зазвичай означає вищий пріоритет.
  • ⏸️ Превентивний: Надходження з вищим пріоритетом може перервати поточний запущений процес з нижчим пріоритетом.
  • ▶ ゚ Непревентивні: Запущений процес утримує процесор завантаженим, доки не завершить свою роботу або не переключить контекст.
  • Перевага: Важливі процеси виконуються швидко, що відповідає відносної важливості часу процесора.
  • ⚠️ Недолік: Низькопріоритетні процеси можуть «голодувати» та чекати нескінченно довго.

Алгоритм пріоритетного планування

Що таке пріоритетне планування?

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

Першими слід виконувати процеси з вищим пріоритетом, тоді як роботи з рівними пріоритетами виконуються на основі циклу або 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

Переваги пріоритетного планування

Ось переваги/плюси використання методу пріоритетного планування:

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

Недоліки пріоритетного планування

Ось недоліки/недоліки пріоритетного планування:

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

Поширені запитання

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

У більшості операційних систем нижчий пріоритет означає вищий пріоритет. Наприклад, процес із пріоритетом 1 виконується перед процесом із пріоритетом 3. Однак деякі системи виконуються навпаки, тому завжди перевіряйте використану домовленість.

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

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

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

Підсумуйте цей пост за допомогою: