Алгоритъм за планиране на приоритети: превантивен, непревантивен
⚡ Умно обобщение
Приоритетното планиране е метод за планиране на процесора, който избира процеси въз основа на приоритет, като първо изпълнява задачи с по-висок приоритет. То може да бъде превантивно или непревантивно, а процесите с еднакъв приоритет се обработват на принципа „първи дошъл, първи обслужен“ или „роунд робин“.

Какво е приоритетно планиране?
Приоритетно планиране е метод за планиране на процеси, който се основава на приоритет. В този алгоритъм планировчикът избира задачите, които да работят според приоритета.
Първо трябва да се извършват процесите с по-висок приоритет, докато работните места с равни приоритети се извършват на кръгова система или на база 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
Предимства на приоритетното планиране
Ето предимствата/предимствата от използването на метода за приоритетно планиране:
- Лесен за използване метод за планиране.
- Процесите се изпълняват въз основа на приоритет, така че високият приоритет не е необходимо да чака дълго, което спестява време.
- Този метод предоставя добър механизъм, при който относителната важност на всеки процес може да бъде точно дефинирана.
- Подходящ за приложения с променливи изисквания за време и ресурси.
Недостатъци на приоритетното планиране
Ето недостатъците/недостатъците на приоритетното планиране:
- Ако системата в крайна сметка се срине, всички процеси с нисък приоритет се губят.
- Ако процесите с висок приоритет отнемат много процесорно време, тогава процесите с по-нисък приоритет може да изчезнат и ще бъдат отложени за неопределено време.
- Този алгоритъм за планиране може да остави някои процеси с нисък приоритет да чакат за неопределено време.
- Процесът ще бъде блокиран, когато е готов за изпълнение, но трябва да изчака процесора, защото в момента се изпълнява друг процес.
- Ако нов процес с по-висок приоритет продължава да идва в опашката за готовност, тогава процесът, който е в състояние на изчакване, може да трябва да изчака дълго време.


















