Алгоритъм за планиране на приоритети: превантивен, непревантивен

⚡ Умно обобщение

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

  • 🎯 Определение: Процесите се планират по приоритет, като задачите с по-висок приоритет се изпълняват преди тези с по-нисък приоритет.
  • 🔢 Приоритетен номер: По-ниското число обикновено означава по-висок приоритет.
  • ⏸️ Превантивно: Пристигане с по-висок приоритет може да прекъсне текущо изпълняващ се процес с по-нисък приоритет.
  • ▶ ️ Непревантивно: Изпълняващият се процес задържа процесора, докато не приключи или не превключи контекста.
  • Предимство: Важните процеси се изпълняват бързо, като относителната им важност съответства на времето на процесора.
  • ⚠️ Недостатък: Процесите с нисък приоритет могат да „гладят“ и да чакат неопределено време.

Алгоритъм за приоритетно планиране

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

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

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

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

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

Да. Изкуственият интелект може да следи времената за чакане и автоматично да повишава приоритета на процесите с дълго чакане, действайки като интелигентно стареене. Чрез предвиждане на задръстванията, той балансира справедливостта и производителността по-добре от фиксираните правила, така че задачите с нисък приоритет не се забавят завинаги.

Обобщете тази публикация с: