A holtpont egy rendszernek egy olyan állapota, ahonnan külső beavatkozás nélkül nem tud elmozdulni. Holtpont akkor fordulhat elő, amikor a folyamatok egy adott halmazában minden egyes elem leköt néhány erőforrást, és ugyanakkor várakozik is másokra. Ha ilyen esetben a folyamatok egy része olyan erőforrásra várakozik, amelyek mások elfoglaltak, akkor a tevékenységek "megmerevedhetnek". Amennyiben a rendszert nem éri külső beavatkozás vagy a folyamatok nem tudják megváltoztatni saját állapotukat, akkor a rendszer nem tud elmozdulni a holtpontról.

A holtpont kialakulása: a P1 folyamat az R1 erőforrást használja, amelyre a P2 folyamat vár. Ugyanakkor P2 használja az R2 erőforrást, amire P1-nek is szüksége lenne. Külső beavatkozás nélkül ilyenkor a rendszer általában nem tud elmozdulni a holtpont állapotából.

A holtpont fogalmát elterjedten használják a következő tudományokban:

A számítástechnikában a holtpont az elosztott rendszerek, a párhuzamos feldolgozás és a multiprocesszing (több szál együttes futtatása) esetén fordulhat elő. Ezért ezekben az esetekben szoftveres és hardveres erőforrásmenedzsmentet használnak a holtponti szituációk kialakulásának megelőzésére.

Ugyancsak holtpont keletkezik a kommunikációban, ha folyamatok egymás információira várnak, miközben nem tudnak előrehaladni a saját feldolgozásukban.

A holtpont kialakulásának feltételei szerkesztés

  • 1. Kölcsönös kizárás: legalább egy erőforrásnak nem megosztható módban kell lennie (egyszerre csak egy folyamat használhatja).
  • 2. Erőforrások lefoglalása (várakozás közben lekötés történik): azaz a folyamatoknak erőforrásokat kell foglalkoztatni (pl. nyomtató), miközben mások igénylik ezeket.
  • 3. Megszakítás nem megengedett (rablás nincs): ami azt jelenti, hogy a rendszer nem függesztheti fel egy erőforrás hozzárendelését egy folyamatokhoz azért, hogy egy másik számára hozzáférhetővé tegye az erőforrást.
  • 4. Visszatérő igények (ciklikus várakozás): egy folyamat igényel egy erőforrást, és később újra ugyanazt az erőforrást igényli a folyamat.

Holtpont csak akkor alakul ki, ha a fenti feltételek egyszerre teljesülnek!

Holtpont megelőzése szerkesztés

A holtpont megelőzés célja az, hogy a fenti feltételekből legalább egy ne teljesüljön.

  • 1. A kölcsönös kizárás néhány esetben (pl. CPU) elkerülhetetlen, de másoknál könnyen elkerülhető. Az egyik leggyakrabban használt technika a spooling-olás. Ilyenkor egy átmeneti pufferbe helyezzük el a nyomtatandó anyagot, és ezek egy batch folyamat segítségével használják fel az erőforrást.
  • 2. Az erőforrások lefoglalása úgy kerülhető el, hogy egy időben csak egy erőforrást foglaljon le a folyamat.
  • 3. A megszakíthatóságról néhány erőforrás esetében azonnal eldönthetjük, hogy nem köthető ki. A T.H.E. operációs rendszerekben megengedik a megszakíthatóságot. Ezt úgy érik el, hogy lapokra bontják az output-ot, és az operációs rendszer feladatának tekintik a kinyomtatott anyag rendezését.
  • 4. A visszatérő igények elkerülésére hierarchikus rendszert használunk. A forrásokat kategóriákba osztjuk, és ezekhez prioritásokat rendelünk.

Források szerkesztés

Fordítás szerkesztés

Ez a szócikk részben vagy egészben a Deadlock című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.