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