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