Какво е приоритетно планиране?
Приоритетно планиране е метод за планиране на процеси, който се основава на приоритет. В този алгоритъм планировчикът избира задачите, които да работят според приоритета.
Първо трябва да се извършват процесите с по-висок приоритет, докато работните места с еднакви приоритети се извършват на кръг или FCFS. Приоритетът зависи от изискванията за памет, изисквания за време и т.н.
В този урок за операционна система ще научите:
- Какво е приоритетното планиране?
- Видове приоритетно планиране
- Характеристики на приоритетното планиране
- Пример за приоритетно планиране
- Предимства на приоритетното планиране
- Недостатъци на приоритетното планиране
Видове приоритетно планиране
Приоритетно планиране, разделено на два основни типа:
Предварително планиране
При превантивно планиране задачите се разпределят най-вече с техните приоритети. Понякога е важно да изпълните задача с по-висок приоритет преди друга задача с по-нисък приоритет, дори ако задачата с по-нисък приоритет все още се изпълнява. Задачата с по-нисък приоритет се задържа известно време и се възобновява, когато задачата с по-висок приоритет приключи изпълнението си.
Непревентивно планиране
При този тип метод за планиране, процесорът е разпределен за определен процес. Процесът, който задържа процесора зает, ще го освободи или чрез превключване на контекста, или чрез прекратяване. Това е единственият метод, който може да се използва за различни хардуерни платформи. Това е така, защото не се нуждае от специален хардуер (например таймер) като превантивно планиране.
Характеристики на приоритетното планиране
- Процесорен алгоритъм, който планира процеси въз основа на приоритет.
- Използва се в операционни системи за извършване на групови процеси.
- Ако две работни места с един и същ приоритет са ГОТОВИ, тя работи на база ПЪРВО ИДВАНЕ, ПЪРВО ОБСЛУЖЕНО.
- При приоритетно планиране на всеки процес се присвоява номер, който показва неговото ниво на приоритет.
- По-нисък брой, по-висок е приоритетът.
- При този тип алгоритъм за планиране, ако пристигне по-нов процес, който има по-висок приоритет от текущия процес, тогава текущият процес се изпреварва.
Пример за приоритетно планиране
Помислете за следването на пет процеса от P1 до P5. Всеки процес има своя уникален приоритет, време за избухване и време на пристигане.
Процес | Приоритет | Време за спукване | Час на пристигане |
---|---|---|---|
P1 | 1 | 4 | 0 |
Р2 | 2 | 3 | 0 |
P3 | 1 | 7 | 6 |
Р4 | 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 |
Р2 | 2 | 1 от 3 в очакване | 0 |
P3 | 1 | 7 | 6 |
Р4 | 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 |
Р2 | 2 | 1 от 3 в очакване | 0 |
P3 | 1 | 2 от 7 в очакване | 6 |
Р4 | 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 |
Р2 | 2 | 1 от 3 в очакване | 0 |
P3 | 1 | 7 | 6 |
Р4 | 3 | 4 | 11. |
P5 | 2 | 2 | 12 |
Стъпка 14) По време = 14, процесът P2 завърши изпълнението си. P4 и P5 са в състояние на изчакване. P5 има най-висок приоритет и започва изпълнение.
Стъпка 15) По време = 15, P5 продължава изпълнението.
Стъпка 16) По време = 16, P5 завършва с изпълнението си. P4 е единственият останал процес. Започва изпълнение.
Стъпка 17) По време = 20, P5 е завършил изпълнението и не е останал процес.
Стъпка 18) Нека изчислим средното време за изчакване за горния пример.
Време за изчакване = начален час - час на пристигане + време за изчакване за следващия пакет
P1 = o - o = oP2 =4 - o + 7 =11P3= 6-6=0P4= 16-11=5Average Waiting time = (0+11+0+5+2)/5 = 18/5= 3.6
Предимства на приоритетното планиране
Тук има предимства / плюсове от използването на метод за приоритетно планиране:
- Лесен за използване метод за планиране
- Процесите се изпълняват въз основа на приоритет, така че високият приоритет не трябва да чака дълго, което спестява време
- Този метод осигурява добър механизъм, при който относително важното за всеки процес може да бъде точно определено.
- Подходящ за приложения с променливи изисквания за време и ресурси.
Недостатъци на приоритетното планиране
Тук има минуси / недостатъци на приоритетното планиране
- Ако системата в крайна сметка се срине, всички процеси с нисък приоритет се губят.
- Ако процесите с висок приоритет отнемат много време на процесора, тогава процесите с по-нисък приоритет могат да умрат от глад и да бъдат отложени за неопределено време.
- Този алгоритъм за планиране може да остави някои процеси с нисък приоритет да чакат безкрайно.
- Процесът ще бъде блокиран, когато е готов за изпълнение, но трябва да изчака процесора, защото в момента се изпълнява някакъв друг процес.
- Ако нов процес с по-висок приоритет продължава да идва в опашката за готовност, тогава процесът, който е в състояние на изчакване, може да се наложи да изчака дълго време.
Резюме:
- Приоритетното планиране е метод за планиране на процеси, който се основава на приоритет. В този алгоритъм планировчикът избира задачите, които да работят според приоритета.
- При приоритетно планиране на приоритетите задачите се разпределят предимно с техните приоритети.
- В метода за приоритетно непредварително планиране CPU е разпределен за определен процес.
- Процесите се изпълняват въз основа на приоритет, така че високият приоритет не трябва да чака дълго, което спестява време
- Ако процесите с висок приоритет отнемат много време на процесора, тогава процесите с по-нисък приоритет могат да умрат от глад и да бъдат отложени за неопределено време.