Нека обсъдим накратко различията между предсрочното и непревентивното планиране с помощта на таблицата за сравнение, показана по-долу.
Сравнителна таблица
Основа за сравнение | Предварително планиране | Непревантивно планиране |
---|---|---|
Основен | Ресурсите се разпределят за процес за ограничен период от време. | След като ресурсите се разпределят на процеса, процесът го задържа, докато не завърши своето време на изчакване или се превключи в състояние на изчакване. |
Прекъсване | Процесът може да бъде прекъснат между тях. | Процесът не може да бъде прекъснат, докато не се прекрати или превключи в състояние на изчакване. |
глад | Ако процес с висок приоритет често пристига в опашката за готовност, процесът с нисък приоритет може да гладува. | Ако процес с продължително време на пускане работи CPU, тогава друг процес с по-малко време на пулса на процесора може да гладува. |
Отгоре | Предварителното планиране има допълнителни разходи за планиране на процесите. | Непредставителното планиране няма общи разходи. |
гъвкавост | Предварителното планиране е гъвкаво. | Непредставителното планиране е твърдо. |
цена | Предварителното планиране е свързано с разходите. | Непредставителното планиране не е свързано с разходите. |
Дефиниция на предварителното планиране
Предварителното планиране е такова, което може да се извърши при обстоятелства, когато процесът превключи от състояние на работа в състояние на готовност или от състояние на изчакване в състояние на готовност . Тук ресурсите (процесорни цикли) се разпределят за процеса за ограничен период от време и след това се отнемат и процесът се връща обратно в готовата опашка отново, ако все още има оставащо време на процесорно изтриване. Процесът остава в готова опашка, докато получи следващия шанс за изпълнение.
Ако процес с висок приоритет пристигне в опашката за готовност, той не трябва да изчаква текущия процес да завърши своето време на изчакване. Вместо това, текущият процес се прекъсва в средата на изпълнение и се поставя в опашката за готовност, докато процесът с висок приоритет използва процесорните цикли. По този начин всеки процес в готовата опашка получава известно време за изпълнение на CPU. Това прави гъвкавото пределно планиране гъвкаво, но увеличава натоварването при превключване на процеса от текущо състояние в състояние на готовност и менгеме.
Алгоритми, които работят по изпреварващо планиране, са Round Robin. Най-краткото първоначално задание (SJF) и графикът за приоритет могат или не могат да бъдат включени в предварителното планиране.
Нека вземем пример за предварителното планиране, погледнете изображението по-долу. Имаме четири процеса P0, P1, P2, P3. От което P2 пристига в момент 0. Така CPU се разпределя за процеса P2, тъй като няма друг процес в опашката. В същото време Р2 се изпълнява, Р3 пристига в момент 1, сега оставащото време за процес Р2 (5 милисекунди), което е по-голямо от времето, необходимо на РЗ (4 милисекунди). Така CPU се разпределя за процесор P3.
Дефиниране на планиране с непредставляващ ефект
Планирането без предимство е такова, което може да се приложи при обстоятелства, когато процесът се прекратява, или процесът се превключва от работещ към състояние на изчакване . В Планирането без избягване, след като ресурсите (CPU) са разпределени за процес, процесът задържа CPU, докато не бъде прекратен или достигне състояние на изчакване.
За разлика от предварителното планиране, непредставящото планиране не прекъсва процес, изпълняващ CPU в средата на изпълнението. Вместо това той изчаква процесът да завърши времето на пулса на процесора и след това може да разпредели CPU към друг процес.
При непредставляващо планиране, ако се изпълнява процес с дълго време на процесорно зареждане, другият процес ще трябва да чака дълго време, което увеличава средното време на чакане на процесите в опашката за готовност. Обаче, непредставящото планиране няма никакви режийни разходи за превключване на процесите от готова опашка към CPU, но прави графикът твърд, тъй като процесът в изпълнение дори не е изключен за процес с по-висок приоритет.
Ключови разлики между предварително изпреварващо планиране и график, който не е принудително
- Основната разлика между предварително и непредставляващо планиране е, че при изпреварващо планиране CPU се разпределя за процесите за ограниченото време. Докато е в непредставляващо планиране, процесорът се разпределя към процеса, докато се прекрати или превключи в състояние на изчакване .
- Процесът на изпълнение в предварителен график се прекъсва в средата на изпълнение, докато процесът на изпълнение в непредпазващо планиране не се прекъсва в средата на изпълнение.
- Превантивното планиране има натоварване при превключване на процеса от готовност в състояние на работа, vise-стих и поддържане на готовата опашка. От друга страна, непредставящото планиране няма натоварване при превключване на процеса от състояние на готовност в състояние на готовност.
- В предварителен график, ако процес с висок приоритет често пристига в опашката за готовност, процесът с нисък приоритет трябва да чака дълго и може да се наложи да гладува. От друга страна, при непредставителното планиране, ако CPU е разпределено за процеса с по-голямо време на разрушаване, тогава процесите с малко време на изригване може да трябва да гладуват.
- Предварителното планиране е доста гъвкаво, тъй като на критичните процеси е разрешен достъп до CPU, когато пристигнат в готовата опашка, без значение какъв процес се изпълнява в момента. Непредставителното планиране е твърдо, тъй като дори ако критичен процес влезе в готовата опашка, процесът, работещ с CPU, не се нарушава.
- Превантивното планиране е асоциативно за разходите, тъй като трябва да поддържа целостта на споделените данни, което не е така при непредназначеното планиране.
Заключение:
Не е, че превантивното планиране е по-добро от непредставляващото планиране или менгемето. Всичко зависи от това как даден график минимизира средното време на изчакване на процесите и максимизира използването на процесора.