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

Основни разлики между превантивно и непредварително планиране

  • При изпреварващото планиране CPU се разпределя на процесите за определен период от време, а CPU без изпреварващо планиране се разпределя на процеса, докато той приключи.
  • При предварителното планиране задачите се превключват въз основа на приоритета, докато при непредварителното планиране не се извършва превключване.
  • Превантивният алгоритъм има допълнителни разходи за превключване на процеса от състояние на готовност към работещо състояние, докато Non-preemptive Scheduling няма такива допълнителни разходи за превключване.
  • Превантивното планиране е гъвкаво, докато непревантивното планиране е твърдо.
Превантивно срещу неизпреварващо планиране
Превантивно срещу неизпреварващо планиране

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

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

По това време задачата с по-нисък приоритет се задържа известно време и се възобновява, когато задачата с по-висок приоритет приключи изпълнението си.

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

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

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

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

Превантивно срещу непредварително планиране: Сравнителна таблица

Ето прякото сравнение на изпреварващо и неизпреварващо планиране. Основните разлики между превантивното и непредварителното планиране в OS са следните:

Превантивно планиране Планиране без изпреварване
Процесорът може да бъде изпреварен да изпълнява различните процеси в средата на всяко текущо изпълнение на процес. След като процесорът започне своето изпълнение, той трябва да го завърши, преди да изпълни другия. Не може да се спре по средата.
Използването на процесора е по-ефективно в сравнение с непревантивното планиране. Използването на процесора е по-малко ефективно в сравнение с превантивното планиране.
Времето за изчакване и отговор на превантивното планиране е по-малко. Времето за изчакване и отговор на метода за планиране без изпреварване е по-високо.
Предварителното планиране е с приоритет. Процесът с най-висок приоритет е процес, който се използва в момента. Когато някой процес влезе в състояние на изпълнение, състоянието на този процес никога не се изтрива от планировчика, докато не завърши работата си.
Превантивното планиране е гъвкаво. Непредварителното планиране е твърдо.
Примери: – Първо най-краткото оставащо време, Round Robin и т.н. Примери: Първи дойде, първи обслужи, Първо най-кратката работа, Приоритетно планиране и др.
Алгоритъмът за изпреварващо планиране може да бъде изпреварван, което означава, че процесът може да бъде планиран При планиране без изпреварване процесът не може да бъде планиран
В този процес процесорът се разпределя за процесите за определен период от време. В този процес CPU се разпределя за процеса, докато той прекрати или премине в състояние на изчакване.
Превантивният алгоритъм има допълнителни разходи за превключване на процеса от състояние на готовност в състояние на работа и обратно. Непредварителното планиране няма такива допълнителни разходи за превключване на процеса от изпълнение в състояние на готовност.

Предимства на изпреварващия график

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

  • Методът за превантивно планиране е по-стабилен, подход, така че един процес да не може да монополизира процесора
  • Изборът на изпълнявана задача се преразглежда след всяко прекъсване.
  • Всяко събитие води до прекъсване на изпълняваните задачи
  • ОС гарантира, че използването на процесора е еднакво от всички работещи процеси.
  • При това използването на CPU е същото, т.е. всички работещи процеси ще използват CPU еднакво.
  • Този метод на планиране също импровизира средното време за реакция.
  • Превантивното планиране е полезно, когато го използваме за среда за многопрограмиране.

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

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

  • Предлага ниски разходи за планиране
  • Има тенденция да предлага висока производителност
  • Концептуално това е много прост метод
  • Less необходимост от изчислителни ресурси за планиране

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

Следват недостатъците на изпреварващия график:

  • Необходими са ограничени изчислителни ресурси за планиране
  • Отнема повече време от планировчика, за да спре изпълняваната задача, да превключи контекста и да изпрати новата входяща задача.
  • Процесът с нисък приоритет трябва да изчака по-дълго време, ако някои процеси с висок приоритет пристигат непрекъснато.

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

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

  • Това може да доведе до глад, особено за тези задачи в реално време
  • Грешките могат да доведат до замръзване на машината
  • Може да прави в реално време и приоритетно планиране труден
  • Лошо време за реакция на процесите

Пример за планиране без изпреварване

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

Помислете за следните пет процеса, всеки от които има свое собствено уникално време на избухване и време на пристигане.

Опашка за обработка Време на избухване Час на пристигане
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Стъпка 0) Във време = 0, P4 пристига и започва изпълнението.

Пример за планиране без изпреварване

Стъпка 1) В момент = 1 пристига процес P3. Но P4 все още се нуждае от 2 изпълнителни единици, за да завърши. Ще продължи изпълнението.

Пример за планиране без изпреварване

Стъпка 2) В момент =2 пристига процес P1 и се добавя към чакащата опашка. P4 ще продължи изпълнението.

Пример за планиране без изпреварване

Стъпка 3) В момент = 3 процесът P4 ще завърши своето изпълнение. Сравнява се времето на разпръскване на P3 и P1. Процес P1 се изпълнява, тъй като времето му за пакет е по-малко в сравнение с P3.

Пример за планиране без изпреварване

Стъпка 4) В момент = 4 пристига процес P5 и се добавя към чакащата опашка. P1 ще продължи изпълнението.

Пример за планиране без изпреварване

Стъпка 5) В момент = 5 пристига процес P2 и се добавя към чакащата опашка. P1 ще продължи изпълнението.

Пример за планиране без изпреварване

Стъпка 6) В момент = 9 процесът P1 ще завърши своето изпълнение. Сравнява се времето на разпръскване на P3, P5 и P2. Процес P2 се изпълнява, тъй като неговото време на пакет е най-ниското.

Пример за планиране без изпреварване

Стъпка 7) В момент = 10, P2 се изпълнява, а P3 и P5 са в чакащата опашка.

Пример за планиране без изпреварване

Стъпка 8) В момент = 11, процес P2 ще завърши своето изпълнение. Сравнява се времето на разпръскване на P3 и P5. Процесът P5 се изпълнява, тъй като времето за импулс е по-малко.

Пример за планиране без изпреварване

Стъпка 9) В момент = 15 процесът P5 ще завърши своето изпълнение.

Пример за планиране без изпреварване

Стъпка 10) В момент = 23 процесът P3 ще завърши своето изпълнение.

Пример за планиране без изпреварване

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

Wait time 
P4= 0-0=0
P1=  3-2=1
P2= 9-5=4
P5= 11-4=7
P3= 15-1=14
Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2

Пример за изпреварващо планиране

Разгледайте това след три процеса в Кръгла система

Опашка за обработка Време на избухване
P1 4
P2 3
P3 5

Пример за изпреварващо планиране

Стъпка 1) Изпълнението започва с процес P1, който има време на избухване 4. Тук всеки процес се изпълнява за 2 секунди. P2 и P3 все още са в опашката за чакане.

Пример за изпреварващо планиране

Стъпка ) В момент =2, P1 се добавя към края на опашката и P2 започва да се изпълнява

Пример за изпреварващо планиране

Стъпка 3) Във време = 4, P2 се изтегля и се добавя в края на опашката. P3 започва да се изпълнява.

Пример за изпреварващо планиране

Стъпка 4) Във време = 6, P3 се изтегля и се добавя в края на опашката. P1 започва да се изпълнява.

Пример за изпреварващо планиране

Стъпка 5) Във време = 8, P1 има време на пакет от 4. Той е завършил изпълнението. P2 започва изпълнението

Пример за изпреварващо планиране

Стъпка 6) P2 има време за избухване 3. Той вече е изпълнен за 2 интервала. В момент = 9 P2 завършва изпълнението. След това P3 започва изпълнението, докато не завърши.

Пример за изпреварващо планиране

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

Wait time 
P1= 0+ 4= 4
P2= 2+4= 6
P3= 4+3= 7

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