Гарантирано планиране
Време е да се появи в опашката
Избухване на процесораИзбухване на процесора
Как ще се държат процесите, когато използватнеизпреварващоприоритетно планиране? Първият процес, който се изпълнява в момент t = 0, е процесът p3, тъй като той има най-високприоритет. След приключването му, в момент t = 5, два процеса p0 и p1 ще бъдат в опашката от процеси, готови за изпълнение. По-високиятприоритетот тях се дава на процес p1 и той ще започне да се изпълнява (вижтеТаблица 3.9.). Тогава в момент t = 8 ще бъде избран за изпълнение процес p2 и едва след това - процес p0.
Разпределението на процесора към процесите ще бъде различно в случай наизпреварващоприоритетно планиране(вижтеТаблица 3.10.). Както и в предишния случай, процесът p3 ще започне да се изпълнява първо, а след като приключи, процесът p1 ще започне да се изпълнява. Но в момент t = 6 той ще бъде изтеглен от процес p2 и ще продължи изпълнението си едва в момент t = 13. Последният, който ще се изпълни, както и преди, ще бъде процесът p0.
В горния примерприоритетитена процесите не са се променили с времето. Такиваприоритетисе наричат статични. Механизмите за статиченприоритетса лесни за прилагане и включват сравнително малко разходи при избора на най-приоритетнияпроцес. Въпреки това, статичнитеприоритетине отговарят на промените в ситуацията в изчислителната система, което може да направи желателно да се коригира редът на изпълнение на процесите. По-гъвкави са динамичнитеприоритети на процесите, които променят своите стойности в хода на изпълнение на процеса. Първоначалната стойност на динамичнияприоритет, присвоен на процес, е валидна само за кратък период от време, след коетоприсвоява се нова, по-подходяща стойност. Промяната на динамичнияприоритет на процесе единствената операция върху процеси, която не сме обхванали досега. По правило промяната наприоритета на процеситесе извършва съвместно с изпълнението на всички други операции: когато се ражда нов процес, когато процесът е отключен или блокиран, след определенквант от времеили след края на процеса. Примери за алгоритми с динамичниприоритетиса алгоритъмътSJFи алгоритъмът за гарантирано планиране. Схемите с динамичен приоритет са много по-трудни за изпълнение и включват повече разходи от статичните схеми. Използването им обаче предполага, че тези разходи са оправдани от подобряването на производителността на системата.
Основният проблем сприоритетното планиранее, че ако механизмът за присвояване и промяна наприоритетитене е правилно избран, процесите с нисък приоритет може да не стартират за неопределено време. Обикновено се случва едно от двете неща. Или все още чакат своя ред за изпълнение (в девет сутринта в неделя, когато всички свестни програмисти си лягат). Или изчислителната система трябва да бъде изключена и те се губят (когато IBM 7094 беше спрян в MIT през 1973 г., бяха открити процеси, които са започнали през 1967 г. и никога не са били изпълнявани оттогава). Решението на този проблем може да бъде постигнато чрез увеличаване на стойносттаприоритет на процеса, който е в състояние на готовност, с течение на времето. Да предположим, че на процесите първоначално са присвоениприоритетиот 128 до 255. Всеки път след определен период от време стойностите наприоритетитена завършените процеси се намаляват с 1. Процесът,който е бил в състояние на изпълнение, се присвоява първоначалната стойностприоритет. Дори такава груба схема гарантира, че всеки процес ще получи правото да се изпълни в разумен срок.