Livelock: Какво е, Пример, Разлика с Deadlock

Съдържание:

Anonim

Какво е Livelock?

А Livelock е ситуация, при искане за изключително заключване се отрече многократно, тъй като много припокриващи се споделя носачи държат по намесва един с друг. Процесите продължават да променят статуса си, което допълнително им пречи да изпълнят задачата. Това допълнително им пречи да изпълнят задачата.

В този урок за операционна система ще научите:

  • Какво е Livelock?
  • Примери за Livelock
  • Какво води до Livelock?
  • Какво е Deadlock?
  • Пример за задънена улица
  • Какво е глад?
  • Разлика между задънена улица, глад и блокиране на живота

Примери за Livelock

Пример 1:

Най-лесният пример за Livelock биха били двама души, които се срещат лице в лице в коридор и двамата се отдалечават, за да пуснат другия да мине. В крайна сметка те се движат от една страна на друга, без да постигат никакъв напредък, тъй като се движат по същия начин по това време. Тук те никога не се кръстосват.

Пример 2:

Можете да видите на горното изображение, всеки от двата дадени процеса се нуждае от два ресурса и те използват примитивния регистър за въвеждане на анкети, за да се опитат да получат ключалките, необходими за тях. Ако опитът се провали, методът работи отново.

  1. Обработвайте ресурс Y hold
  2. Процес Б съдържа ресурс X
  3. Процес A изисква X ресурс
  4. Процес Б изисква Y ресурс

Ако приемем, че процес A се изпълнява първо и придобива ресурс за данни X, а след това процес B се изпълнява и придобива ресурс Y, без значение кой процес се изпълнява първи, нито един от тях не напредва.

Нито един от двата процеса обаче не е блокиран. Те използват ресурсите на процесора многократно, без да е постигнат напредък, но също така спират всеки блок за обработка.

Следователно, тази ситуация не е тази на задънена улица, защото няма нито един процес, който да бъде блокиран, но ние се сблъскваме със ситуацията, еквивалентна на задънена улица, която е LIVELOCK.

Какво води до Livelock?

Livelock се случва, когато общият брой разрешени процеси в конкретна система трябва да се дефинира от общия брой записи в таблицата на процесите. Следователно слотовете на таблицата на процесите трябва да се наричат ​​Крайни ресурси.

Какво е Deadlock?

Блокирането е ситуация, която възниква в операционната система, когато който и да е процес влезе в състояние на изчакване, защото друг процес на изчакване задържа търсения ресурс. Блокирането е често срещан проблем при многообработването, при което няколко процеса споделят специфичен тип взаимно изключващ се ресурс, известен като меко заключване или софтуер.

Пример за задънена улица

  • Пример от реалния свят би бил трафикът, който се движи само в една посока.
  • Тук мост се счита за ресурс.
  • Така че, когато се случи Deadlock, той може лесно да бъде разрешен, ако една кола направи резервно копие (Изтеглете ресурси и върнете обратно).
  • Може да се наложи да се архивират няколко автомобила, ако възникне ситуация на задънена улица.
  • Така че гладуването е възможно.
Пример за задънена улица

Какво е глад?

Гладуването е ситуация, при която всички процеси с нисък приоритет са блокирани и процесите с висок приоритет продължават. Във всяка система заявките за ресурси с висок / нисък приоритет продължават да се случват динамично. Поради това се изискват някои политики, за да се реши кой кога ще получи подкрепа.

Използвайки някои алгоритми, някои процеси може да не получат желаното обслужване, въпреки че не са в задънена улица. Гладът настъпва, когато някои нишки правят споделените ресурси недостъпни за дълъг период от време.

Пример за глад:

Например обектът предлага синхронизиран метод, който вероятно ще отнеме много време, за да се върне. Ако една нишка използва този метод често, други нишки, които също се нуждаят от чест синхронизиран достъп до същия обект, често ще бъдат блокирани.

Разлика между задънена улица, глад и блокиране на живота

  • Блокирането е ситуация, която възниква в ОС, когато всеки процес влезе в състояние на изчакване, тъй като исканият ресурс се задържа от друг процес на изчакване.
  • От друга страна, едно чучело е почти подобно на задънена улица, с изключение на това, че състоянията на процесите, които участват в един ливелк, непрекъснато се променят един към друг, като никой не прогресира.
  • И така, Livelock е уникален случай на гладен ресурс.

Резюме:

  • Определение: Livelock е ситуация, при която заявка за ексклузивно заключване се отказва многократно, тъй като много припокриващи се споделени ключалки продължават да си пречат.
  • Livelock се случва, когато общият брой разрешени процеси в конкретна система трябва да се дефинира от общия брой записи в таблицата на процесите
  • Блокирането е ситуация, която възниква в операционната система, когато който и да е процес влезе в състояние на изчакване, защото друг процес на изчакване задържа търсения ресурс.
  • Пример от реалния свят би бил трафикът, който се движи само в една посока.
  • Пример за Livelock биха били двама души, които се срещат лице в лице в коридор и двамата се отдръпват настрани, за да пропуснат другия.
  • Гладуването е ситуация, при която всички процеси с нисък приоритет са блокирани и процесите с висок приоритет продължават.