Алгоритъм за приоритетно планиране: изпреварващ, неизпреварващ ПРИМЕР

Какво е приоритетно планиране?

Приоритетно планиране е метод за планиране на процеси, който се основава на приоритет. В този алгоритъм планировчикът избира задачите, които да работят според приоритета.

Първо трябва да се извършват процесите с по-висок приоритет, докато работните места с равни приоритети се извършват на кръгова система или на база 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 P5 е завършил изпълнението и не е останал процес.

Приоритетно планиране

Стъпка 18) Нека изчислим средното време на изчакване за горния пример.

Време на изчакване = начален час – време на пристигане + време на изчакване за следващия пакет

P1 = o - o = o
P2 =4 - o + 7 =11	
P3= 6-6=0
P4= 16-11=5
Average Waiting time = (0+11+0+5+2)/5 = 18/5= 3.6

Предимства на приоритетното планиране

Ето ползите/плюсовете от използването на метода за приоритетно планиране:

  • Лесен за използване метод за планиране
  • Процесите се изпълняват на базата на приоритет, така че високият приоритет не трябва да чака дълго, което спестява време
  • Този метод осигурява добър механизъм, при който относителната важност на всеки процес може да бъде точно дефинирана.
  • Подходящ за приложения с променливи изисквания за време и ресурси.

Недостатъци на приоритетното планиране

Тук са минусите/недостатъците на приоритетното планиране

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

Oбобщение

  • Приоритетното планиране е метод за планиране на процеси, който се основава на приоритет. В този алгоритъм планировчикът избира задачите, които да работят според приоритета.
  • При приоритетно изпреварващо планиране задачите се присвояват предимно с техните приоритети.
  • В метода на планиране с приоритет без изпреварване процесорът е разпределен за конкретен процес.
  • Процесите се изпълняват на базата на приоритет, така че високият приоритет не трябва да чака дълго, което спестява време
  • Ако процесите с висок приоритет отнемат много процесорно време, тогава процесите с по-нисък приоритет може да изчезнат и ще бъдат отложени за неопределено време.