Різниця між тупиком і голодом в ОС

Автор: Laura McKinney
Дата Створення: 3 Квітень 2021
Дата Оновлення: 23 Квітень 2024
Anonim
Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.
Відеоролик: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.

Зміст


І тупик, і голодування - це умови, коли процеси, що запитують ресурс, затягуються надовго. Хоча тупик і голодування в багатьох аспектах відрізняються один від одного. Тупик це умова, коли жоден процес не йде на виконання, і кожен чекає ресурсів, які були придбані іншими процесами. З іншого боку, в Голодування, процес з високими пріоритетами постійно використовує ресурси, запобігаючи процесу низького пріоритету для придбання ресурсів. Обговоримо ще кілька відмінностей між тупиком та голодом за допомогою порівняльної таблиці, показаної нижче.

  1. Порівняльна діаграма
  2. Визначення
  3. Ключові відмінності
  4. Висновок

Порівняльна діаграма

Основи для порівнянняТупикГолодування
ОсновніТупик - це те, де не протікає жоден процес, і його блокують.Голодування - це те, коли процеси з низьким пріоритетом блокуються, а процес з високим пріоритетом триває.
Стан, що виникаєВиникнення взаємного виключення, утримуйте і чекайте, без попередження та кругового очікування одночасно.Виконання пріоритетів, неконтрольоване управління ресурсами.
Інша назваЦиркулярне очікування.Lifelock.
РесурсиУ тупиковій ситуації запитувані ресурси блокуються іншими процесами.У голодуванні запитувані ресурси постійно використовуються в процесах з високим пріоритетом.
ПрофілактикаУникайте взаємного виключення, утримуйте і чекайте, а також кругового очікування та дозволення викупу. Старіння.


Визначення тупикової ситуації

Тупик - це ситуація, коли кілька процесів в процесорі змагаються за обмежену кількість ресурсів, доступних в процесорі. Тут кожен процес утримує ресурс і чекає придбання ресурсу, який зберігається в якомусь іншому процесі. Усі процеси чекають ресурсів циркулярно. На зображенні нижче ви бачите, що Процес P1 придбав ресурс R2, який запитується процесом P2, а Процес P1 запитує ресурс R1, який знову утримується R2. Тому процес P1 і P2 утворюють тупик.

Тупик є поширеною проблемою в багатопроцесорних операційних системах, розподілених системах, а також в паралельних обчислювальних системах. Існують чотири умови, які повинні виникнути одночасно для підвищення стану тупикової ситуації, а це взаємне виключення, затримка та очікування, відсутність попередження та кругове очікування.

  • Взаємне виключення: Лише один процес одночасно може використовувати ресурс, якщо інший процес вимагає того самого ресурсу, він повинен зачекати, поки процес, що використовує ресурс, звільнить його.
  • Затримайте і почекайте: Процес повинен містити ресурс і чекати, щоб придбати інший ресурс, який утримується деяким іншим процесом.
  • Немає попередження: Процес, що містить ресурси, не може бути попереджений. Процес, що містить ресурс, повинен звільнити ресурс добровільно, коли він виконав своє завдання.
  • Циркулярне очікування: Процес повинен чекати ресурсів циркулярно. Припустимо, у нас є три процеси {P0, P1, P2}. P0 повинен чекати ресурсу, що міститься у P1; P1 повинен зачекати, щоб придбати ресурс, що знаходиться в процесі P2, а P2 повинен дочекатися, щоб отримати процес, який утримується P0.

Хоча є деякі програми, які можуть виявити програми, які можуть потрапити в глухий кут. Але операційна система ніколи не несе відповідальності за запобігання тупиків. Відповідальність програмістів є розробити безкоштовні програми. Це можна зробити, уникаючи перерахованих вище умов, необхідних для виникнення тупикової ситуації


Визначення голоду

Голодування може бути визначене як тоді, коли запит процесу на ресурс, і цей ресурс постійно використовується іншими процесами, тоді процес запиту стикається з голодом. У голодуванні процес, готовий виконати, чекає, коли процесор виділить ресурс. Але процес повинен чекати нескінченно, оскільки інші процеси постійно блокують запитувані ресурси.

Проблема голодування, як правило, виникає в Росії алгоритм планування пріоритетів. В алгоритмі планування пріоритетів процес, що має більш високий пріоритет, завжди виділяє ресурс, не даючи процесу з нижчим пріоритетом отримувати запитуваний ресурс.

Старіння може вирішити проблему голодування. Старіння поступово збільшує пріоритетність процесу, який довго чекав ресурсів. Старіння заважає процесу з низьким пріоритетом нескінченно чекати ресурс.

  1. У тупику жоден з процесів не переходить до виконання, кожен процес блокується в очікуванні ресурсів, придбаних іншим процесом. З іншого боку, голодування - це умова, коли процесам, які мають більш високий пріоритет, дозволяється безперервно здобувати ресурси шляхом запобігання процесам низького пріоритету набувати ресурсів, що призводить до безстрокового блокування процесів з низьким пріоритетом.
  2. Тупик виникає при чотирьох умовах Взаємне виключення, Утримуйте і чекайте, Без попередження та Циркулярного очікування відбувається одночасно. Однак голодування виникає під час процесу пріоритети виконуються при розподілі ресурсів або в системі відбувається неконтрольоване управління ресурсами.
  3. Тупик часто називають іменем кругові очікування тоді як голод викликається Жив замок.
  4. У тупиковій ситуації ресурси блокуються процесом, тоді як при голодуванні процеси постійно використовують процеси з високими пріоритетами.
  5. Тупик можна запобігти, уникаючи таких умов, як взаємне виключення, затримка і чекання та кругове очікування, а також дозволяючи викупувати процеси, які тривалий час утримують ресурси. З іншого боку, голодування можна запобігти шляхом старіння.

Висновок:

І тупик, і голод затримують виконання процесу, блокуючи його. З одного боку, де тупик може спричинити голодні процеси, а з іншого - голодування може вивести процеси з глухого кута.