Vzájemné zablokování

Vzájemné zablokování je stav, kdy program nemůže získat přístup ke zdroji, který potřebuje k pokračování. Když aktivní aplikace narazí na vzájemné zablokování, může se „zaseknout“ nebo přestat reagovat.

Zdroje, například uložená nebo uložená v mezipaměti data, mohou být při přístupu uzamčeny konkrétním procesem v rámci programu. Uzamčení dat brání ostatním procesům v předčasném přepsání dat. Pokud proces nebo dotaz potřebuje přistupovat k uzamčeným datům, ale proces, který data uzamkl, je neuvolní, může dojít ke vzájemnému zablokování.

Následující situace například způsobí vzájemné zablokování mezi dvěma procesy:

  • Proces 1 požádá proces 2 o zdroj B.
  • Zdroj B je během běhu procesu 2 uzamčen.
  • Proces 2 potřebuje ke svému dokončení zdroj A od procesu 1.
  • Zdroj A je během běhu procesu 1 uzamčen.

Výsledkem je, že proces 1 a proces 2 čekají na dokončení jeden na druhý. Protože žádný z procesů nemůže pokračovat, dokud druhý nedokončí svou činnost, vznikne vzájemné zablokování.

Jak předcházet vzájemnému zablokování

Vývojáři mohou vzájemnému zablokování předcházet tím, že se ve své programovací logice vyhnou podmínkám vedoucím k uzamčení. Namísto toho, aby dva procesy závisely jeden na druhém, lze například zdrojový kód napsat tak, aby každé vlákno dokončilo svou činnost dříve, než jiné vlákno potřebuje jeho zdroje. Zajištěním dostupnosti dat v okamžiku, kdy jsou potřeba, mohou programátoři chránit své aplikace před zaseknutím nebo pádem.

NOTE: Vzájemné zablokování může nastat také při spuštění dvou či více dotazů v databázi. Transakční databáze uzamykají aktivní záznamy, a brání tak ostatním dotazům v přístupu k nim. Pokud proces nemůže získat přístup k uzamčenému záznamu, může dojít ke vzájemnému zablokování databáze.

Aktualizováno January 18, 2020 od Per C.

quizOtestujte své znalosti

A compressed file that expands to thousands of times its size is called what?

A
Bloatware
0%
B
Zip bomb
0%
C
Secret archive
0%
D
Massfile
0%
Correct! Incorrect!     View the Zip Bomb definition.
More Quizzes →

Počítačový slovník Tech Terms

Definice Vzájemné zablokování na této stránce je originální definice napsaná autory TechTerms.com. Pokud chcete na tuto stránku odkazovat nebo tuto definici citovat, použijte prosím zelený citační pruh přímo pod definicí.

Naším cílem je vysvětlovat počítačovou terminologii srozumitelným způsobem. U každé zveřejněné definice usilujeme o přesnost a jednoduchost. Pokud máte zpětnou vazbu nebo chcete navrhnout nový technický pojem, kontaktujte nás.

Newsletter Tech Terms

Rozšiřte své technické znalosti s naším denním nebo týdenním newsletterem! Přihlaste se ještě dnes a dostávejte nové pojmy a kvízy přímo do schránky.

Přihlaste se k bezplatnému newsletteru TechTerms

Jak často chcete dostávat e-mail?

Odhlásit se nebo změnit frekvenci můžete kdykoli pomocí odkazů v každém e-mailu. Dotazy? Prosím kontaktujte nás.

Poznámka: Newsletter je zasílán v angličtině.