Сравнителна таблица
Основа за Comparsion | застой | глад |
---|---|---|
Основен | Deadlock е мястото, където процесът не продължава и се блокира. | Гладуването е там, където процесите с нисък приоритет се блокират и процесът с висок приоритет продължава. |
Възникващо състояние | Появата на взаимно изключване, задържане и изчакване, без прекъсване и циркулярно изчакване едновременно. | Прилагане на приоритети, неконтролирано управление на ресурсите. |
Друго име | Циркулярно изчакване. | Lifelock. |
ресурси | В задънена улица, поисканите ресурси се блокират от другите процеси. | В гладуването исканите ресурси непрекъснато се използват от процеси с висок приоритет. |
Предотвратяване | Избягване на взаимно изключване, задържане и изчакване, кръгово чакане и позволяване на превенция. | Стареене. |
Определение на Deadlock
Deadlock е ситуация, при която няколко процеси в CPU се конкурират за ограничения брой налични ресурси в CPU. Тук всеки процес притежава ресурс и изчаква да придобие ресурс, който се държи от друг процес. Всички процеси изчакват ресурсите по кръгова форма. На изображението по-долу може да видите, че процес Р1 е придобил ресурс R2, който се изисква от процес Р2 и процес Р1 изисква ресурс R1, който отново се държи от R2. Така процес Р1 и Р2 образуват задънена улица.
- Взаимно изключване: Само един процес в даден момент може да използва ресурс, ако друг процес изисква същия ресурс, той трябва да изчака процеса да го използва.
- Задържане и изчакване: Процесът трябва да държи ресурс и да чака да придобие друг ресурс, който се държи от друг процес.
- Без предимство: Процесът с ресурсите не може да бъде изхвърлен. Процесът, притежаващ ресурса, трябва да освободи ресурса доброволно, когато е изпълнил задачата си.
- Циркулярно изчакване: Процесът трябва да изчака ресурсите по кръгове. Да предположим, че имаме три процеса {P0, P1, P2}. P0 трябва да изчака ресурса, притежаван от P1; P1 трябва да изчака, за да придобие ресурса, държан от процес P2, и P2 трябва да изчака, за да придобие процеса, държан от P0.
Въпреки че има някои приложения, които могат да открият програмите, които могат да се блокират. Но операционната система никога не е отговорна за предотвратяване на блокирането. Отговорност на програмистите е да създават безплатни програми без блокировка. Това може да бъде направено чрез избягване на горните условия, които са необходими за възникване на задънена улица
Определение за глад
Гладуването може да се дефинира, когато заявката за процес за ресурс и този ресурс се използват непрекъснато от другите процеси, тогава процесът на заявяване е изправен пред глад. В гладуване процес, готов за изпълнение, изчаква CPU да разпредели ресурса. Но процесът трябва да чака неопределено време, тъй като другите процеси непрекъснато блокират исканите ресурси.
Проблемът с гладуването обикновено възниква в алгоритъма за планиране на приоритети . В алгоритъма за планиране на приоритет, процесът с по-висок приоритет винаги се разпределя на ресурса, като се предотвратява процесът от по-нисък приоритет да получи искания ресурс.
Стареенето може да разреши проблема с глада. Стареенето постепенно увеличава приоритета на процеса, който дълго чакаше ресурсите. Стареенето предотвратява процес с нисък приоритет да чака неопределено време за ресурс.
Ключови разлики между Deadlock и глад в OS
- В задънена улица, нито един от процесите не се изпълнява, всеки процес се блокира в очакване на ресурсите, придобити от друг процес. От друга страна, гладуването е състояние, при което процесите, които имат по-висок приоритет, могат да придобиват ресурсите непрекъснато, като възпрепятстват процесите с нисък приоритет да придобиват ресурси, което води до неопределено блокиране на процеси с нисък приоритет.
- Deadlock възниква, когато четири условия взаимно изключване, задържане и изчакване, без превантивност, и кръгова чакам се случва едновременно. Въпреки това, гладуването възниква, когато при разпределянето на ресурси са приложени приоритети на процеса или в системата има неконтролирано управление на ресурсите.
- Deadlock често се нарича с името кръгова чакам, докато гладуването се нарича Lived lock .
- В Deadlock ресурсите се блокират от процеса, докато при глад процесите непрекъснато се използват от процесите с високи приоритети.
- Бездействието може да бъде предотвратено чрез избягване на условията като взаимно изключване, задържане и изчакване и циркулярно изчакване и чрез допускане на превенция на процесите, които държат ресурси за дълго време. От друга страна, гладуването може да бъде предотвратено чрез стареене .
Заключение:
Както Deadlock, така и гладуването забавя изпълнението на процеса, като го блокира. От една страна, когато задънената улица може да предизвика процеси да гладуват, а от друга страна гладът може да извади процесите от задънената улица.