Що таке Livelock?
Динамічний тупик ситуація , коли запит на монопольну блокування відмовлено повторно, так як багато перекриваються загальні замки продовжують заважати один одному. Процеси постійно змінюють свій статус, що ще більше заважає їм виконати завдання. Це ще більше заважає їм виконати завдання.
У цьому посібнику з операційної системи ви дізнаєтесь:
- Що таке Livelock?
- Приклади Livelock
- Що веде до Livelock?
- Що таке глухий кут?
- Приклад тупикової ситуації
- Що таке голод?
- Різниця між тупиковою ситуацією, голодуванням та блокуванням життя
Приклади Livelock
Приклад 1:
Найпростішим прикладом Livelock є двоє людей, які зустрічаються віч-на-віч у коридорі, і обидва вони відходять убік, щоб пропустити іншого. Вони в кінцевому підсумку рухаються з боку в бік, не роблячи жодного прогресу, оскільки рухаються однаково в той час. Тут вони ніколи не перетинаються.
Приклад 2:
Ви можете бачити на наведеному вище зображенні, кожному з двох заданих процесів потрібні два ресурси, і вони використовують примітивний реєстр опитування enter, щоб спробувати отримати необхідні для них блокування. Якщо спроба не вдається, метод працює знову.
- Обробка ресурсу Y hold
- Процес B містить ресурс X
- Процес A вимагає X-ресурсу
- Процес B вимагає ресурсу Y.
Припускаючи, що процес A запускається спочатку і отримує ресурс даних X, а потім процес B запускається і отримує ресурс Y, незалежно від того, який процес запускається першим, жоден з них не прогресує далі.
Однак жоден із двох процесів не блокується. Вони неодноразово витрачають ресурси центрального процесора, не роблячи жодного прогресу, а також зупиняють будь-який блок обробки.
Отже, ця ситуація не пов’язана з тупиковою ситуацією, оскільки не існує жодного процесу, який був би заблокований, але ми стикаємось із ситуацією, яка еквівалентна тупиковій ситуації, а саме LIVELOCK.
Що веде до Livelock?
Livelock відбувається, коли загальна кількість дозволених процесів у конкретній системі повинна визначатися загальною кількістю записів у таблиці процесів. Тому слоти таблиці процесів слід називати Кінцевими ресурсами.
Що таке глухий кут?
Тупик - це ситуація, яка виникає в ОС, коли будь-який процес переходить у стан очікування, оскільки інший процес очікування утримує потрібний ресурс. Тупик - загальна проблема мульти-обробки, коли декілька процесів мають спільний специфічний тип взаємовиключних ресурсів, відомий як програмне забезпечення.
Приклад тупикової ситуації
- Реальним прикладом може бути транспорт, який рухається лише в одному напрямку.
- Тут міст вважається ресурсом.
- Отже, коли трапляється «тупик», його легко вирішити, якщо один автомобіль зробить резервну копію (попередження ресурсів та відкат).
- Можливо, доведеться створити резервну копію кількох автомобілів, якщо трапиться тупикова ситуація.
- Тож голодування можливо.
Що таке голод?
Голод - це ситуація, коли всі процеси з низьким пріоритетом були заблоковані, а процеси з пріоритетом продовжуються. У будь-якій системі запити на ресурси з високим / низьким пріоритетом продовжують відбуватися динамічно. Таким чином, потрібно визначити певну політику, щоб вирішити, хто коли отримує підтримку.
Використовуючи деякі алгоритми, деякі процеси можуть не отримати необхідне обслуговування, навіть якщо вони не зайшли у глухий кут. Голод виникає, коли деякі потоки роблять спільні ресурси недоступними протягом тривалого періоду часу.
Приклад голодування:
Наприклад, об'єкт пропонує синхронізований метод, повернення якого, ймовірно, займе багато часу. Якщо один потік часто використовує цей метод, інші потоки, які також потребують частого синхронізованого доступу до того самого об’єкта, часто будуть заблоковані.
Різниця між тупиковою ситуацією, голодуванням та блокуванням життя
- Тупик - це ситуація, яка виникає в ОС, коли будь-який процес переходить у стан очікування, оскільки потрібний ресурс утримується іншим процесом очікування.
- З іншого боку, сумочка майже схожа на глухий кут, за винятком того, що стани процесів, що беруть участь у мозку, постійно змінюються один до одного, жоден з них не прогресує.
- Отже, Livelock - це унікальний випадок голодування ресурсів.
Короткий зміст:
- Визначення: Livelock - це ситуація, коли запит на ексклюзивне блокування неодноразово відхиляється, оскільки багато спільних блокувань, що перекриваються, продовжують заважати один одному.
- Livelock відбувається, коли загальна кількість дозволених процесів у конкретній системі повинна визначатися загальною кількістю записів у таблиці процесів
- Тупик - це ситуація, яка виникає в ОС, коли будь-який процес переходить у стан очікування, оскільки інший процес очікування утримує потрібний ресурс.
- Реальним прикладом може бути транспорт, який рухається лише в одному напрямку.
- Прикладом Livelock можуть бути двоє людей, які зустрічаються віч-на-віч у коридорі, і обидва вони відходять убік, щоб пропустити іншого.
- Голод - це ситуація, коли всі процеси з низьким пріоритетом були заблоковані, а процеси з пріоритетом продовжуються.