Какво е превантивно планиране?
Предварителното планиране е метод за планиране, при който задачите се разпределят предимно с техните приоритети. Понякога е важно да изпълните задача с по-висок приоритет преди друга задача с по-нисък приоритет, дори ако задачата с по-нисък приоритет все още се изпълнява.
По това време задачата с по-нисък приоритет се задържа известно време и се възобновява, когато задачата с по-висок приоритет приключи изпълнението си.
В този урок за операционна система ще научите:
- Какво е превантивно планиране?
- Какво е непревантивно планиране?
- Разлика между изпреварващо и непревентивно планиране в ОС
- Предимства на превантивното планиране
- Предимства на непредупредителното планиране
- Недостатъци на превантивното планиране
- Недостатъци на непредупредителното планиране
- Пример за непредварително планиране
- Пример за превантивно планиране
Какво е непревантивно планиране?
При този тип метод за планиране, процесорът е разпределен за определен процес. Процесът, който задържа процесора зает, ще го освободи или чрез превключване на контекста, или чрез прекратяване.
Това е единственият метод, който може да се използва за различни хардуерни платформи. Това е така, защото не се нуждае от специализиран хардуер (например таймер) като превантивно планиране.
Непредупредителното планиране възниква, когато процес доброволно влезе в състояние на изчакване или прекрати.
Разлика между изпреварващо и непревентивно планиране в ОС
Тук са превантивно и непредпазливо планиране в OS
Предварително планиране | Непредупредително планиране |
Процесорът може да бъде изпреварен да изпълнява различните процеси в средата на текущото изпълнение на процеса. | След като процесорът започне изпълнението си, той трябва да го завърши, преди да изпълни другия. Не може да бъде поставен на пауза в средата. |
Използването на процесора е по-ефективно в сравнение с непредварителното планиране. | Използването на процесора е по-малко ефективно в сравнение с предварителното планиране. |
Времето за изчакване и отговор на превантивното планиране е по-малко. | Времето за изчакване и реакция на метода за непредупредително планиране е по-голямо. |
Предварителното планиране е с приоритет. Процесът с най-висок приоритет е процес, който се използва в момента. | Когато който и да е процес влезе в състояние на изпълнение, състоянието на този процес никога не се изтрива от планиращото устройство, докато не завърши работата си. |
Предварителното планиране е гъвкаво. | Непредупредителното планиране е твърдо. |
Примери: - Първо най-краткото оставащо време, Round Robin и др. | Примери: Първо дойде първото обслужване, Най-кратката работа първо, Приоритетно планиране и т.н. |
Предварителният алгоритъм за планиране може да бъде изпреварен, т.е. процесът може да бъде планиран | При непредупредителен процес на планиране не може да бъде планиран |
В този процес CPU се разпределя между процесите за определен период от време. | В този процес CPU се разпределя към процеса, докато той прекрати или превключи в състояние на изчакване. |
Превантивният алгоритъм има режийни разходи за превключване на процеса от готовност в работещо състояние и обратно. | Непредупредителното планиране няма такива режийни разходи за превключване на процеса от стартиране в състояние на готовност. |
Предимства на превантивното планиране
Ето плюсовете / предимствата на метода за превантивно планиране:
- Методът за изпреварващо планиране е по-стабилен, подход, така че един процес не може да монополизира процесора
- Изборът на изпълняваща се задача се преразглежда след всяко прекъсване.
- Всяко събитие причинява прекъсване на изпълняваните задачи
- ОС гарантира, че използването на процесора е еднакво при всички изпълняващи се процеси.
- При това използването на CPU е еднакво, т.е. всички работещи процеси ще използват CPU еднакво.
- Този метод на планиране също импровизира средното време за реакция.
- Предварителното планиране е полезно, когато го използваме за мултипрограмна среда.
Предимства на непредупредителното планиране
Ето плюсовете / предимствата на метода за непредварително планиране:
- Предлага режийни с нисък график
- Има тенденция да предлага висока производителност
- Това е концептуално много прост метод
- Необходими са по-малко изчислителни ресурси за планиране
Недостатъци на превантивното планиране
Тук има минуси / недостатъци на метода на превантивно планиране:
- Нуждаете се от ограничени изчислителни ресурси за планиране
- Отнема по-голямо време на планиращия за спиране на изпълняващата се задача, превключване на контекста и изпращане на новата входяща задача.
- Процесът, който има нисък приоритет, трябва да изчака по-дълго време, ако някои процеси с висок приоритет пристигат непрекъснато.
Недостатъци на непредупредителното планиране
Тук има минуси / недостатъци на метода за непредварително планиране:
- Това може да доведе до глад, особено за тези задачи в реално време
- Грешките могат да доведат до замръзване на машината
- Това може да затрудни планирането в реално време и приоритетите
- Лошо време за реакция на процеси
Пример за непредварително планиране
При непредпазливо планиране на SJF, след като цикълът на процесора е разпределен за процес, процесът го задържа, докато достигне състояние на изчакване или прекрати.
Помислете за следните пет процеса, всеки от които има свое уникално време за избухване и време на пристигане.
Опашка за обработка | Време за спукване | Час на пристигане |
P1 | 6 | 2 |
Р2 | 2 | 5 |
P3 | 8 | 1 |
Р4 | 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 timeP4= 0-0=0P1= 3-2=1P2= 9-5=4P5= 11-4=7P3= 15-1=14Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2
Пример за превантивно планиране
Помислете за следните три процеса в Round-robin
Опашка за обработка | Време за спукване |
P1 | 4 |
Р2 | 3 |
P3 | 5 |
Стъпка 1) Изпълнението започва с процес P1, който е избухнал време 4. Тук всеки процес се изпълнява за 2 секунди. P2 и P3 все още са на опашката за изчакване.
Стъпка 2 ) По време = 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 timeP1= 0+ 4= 4P2= 2+4= 6P3= 4+3= 7
КЛЮЧОВИ РАЗЛИКИ
- В предварителното планиране, CPU се разпределя за процесите за определен период от време, а CPU без предварително планиране се разпределя за процеса, докато той приключи.
- В Предварителното планиране задачите се превключват въз основа на приоритет, докато не се изпреварва Schedulign не се извършва превключване.
- Превантивният алгоритъм има режийни разходи за превключване на процеса от готовност в работещо състояние, докато Непредупредителното планиране няма такива режийни разходи за превключване.
- Предварителното планиране е гъвкаво, докато Непредупредителното планиране е твърдо.