Professional Documents
Culture Documents
A holtpont (deadlock) az az állapot, amely akkor következhet be, amikor két (vagy több)
folyamat egyidejűleg verseng erőforrásokért, és egymást kölcsönösen blokkolják. Ha 2
folyamat közül egyik sem tud továbblépni, mert mindkettőnek éppen arra az erőforrásra lenne
szüksége, amit a másik foglal: ez a holtpont helyzet.
Példa:
Tételezzük fel, hogy egy taszk lefoglalni akarja a nyomtatót, majd utána igényli a CD-írót.
Közben egy másik taszk lefoglalni akarja a CD-írót, majd utána lefoglalni szeretné a
nyomtatót. Tegyük fel, hogy az első taszk sikeresen lefoglalta a nyomtatót, miközben ezzel
egy időben a második taszk szintén sikeresen lefoglalta a CD-írót. Most, az első taszk
megpróbálja lefoglalni a CD-írót, a második taszk pedig a nyomtatót. Egyik taszk sem fog
sikerrel járni, mert a másik taszk már tartja a zárat. Mindkét taszk a végtelenségig fog várni
arra, hogy a másik elengedje az erőforrást, de ez nem fog bekövetkezni.
Másik példa:
Adva van valahány filozófus, akik egy kerek asztal körül ülnek. Mindegyikük előtt van egy
tányér, a tányérok közt félúton pedig egy-egy villa. Mindegyik filozófus vacsora közben
elmélkedik, majd időnként megéhezik. Az étel kiszedésére azonban mindkét keze ügyébe eső
villát használnia kell, ha tehát valamelyik nem áll rendelkezésre, akkor várnia kell rá. A
kérdés nyilván, hogy milyen stratégiát kövessenek a filozófusok, hogy a véletlen
időközönként rájuk törő megéhezést minél kevesebb várakozással mindannyian sikeresen le
tudják küzdeni, vagyis senki ne maradjon éhen.
A klasszikus vesztes stratégia: aki megéhezik és vár a sorára, sosem ereszti el a már
megkaparintott villát, csak vár, amíg a szomszédja le nem teszi a neki kellő másik villát is. Ha
ugyanis minden filozófus egyidőben, mondjuk, a jobb villát veszi kézbe, akkor mivel soha
senki nem mond le önként az egyetlen haszontalan villájáról, soha senki nem fog tudni
továbblépni -- és mindenki éhen hal.
A holtpont (deadlock) az az állapot, amely akkor következhet be, amikor két (vagy több)
folyamat egyidejűleg verseng erőforrásokért, és egymást kölcsönösen blokkolják. Tegyük fel,
hogy P folyamat kizárólagos használatra kéri az X és Y erőforrásokat, és azokat ebben a sor-
rendben kívánja használni. Ugyanakkor Q folyamat kéri az Y és X erőforrásokat, ebben a
sorrendben. Ha P folyamat megszerezte az X erőforrást, Q folyamat pedig az Y-t, akkor egyi
sem tud továbblépni. hiszen mindkettőnek éppen arra volna szüksége, amit a másik foglal: ez
a holtpont helyzet.
1. kölcsönös kizárás (mutex): legalább egy – többek által igényelt – erőforrás nem
megosztható, azaz egyszerre csak egy processzus használhatja;
2. foglalva várakozás (hold & wait): valamelyik processzus már lefoglalt egy erőforrást,
és arra vár, hogy továbbiakat lefoglaljon;
3. nem elvehető erőforrások (nonpreemptive): az erőforrást a foglalótól nem lehet
kívülről – operációs rendszer beavatkozással – elvenni;
4. körkörös várakozás (circular waiting): a körben állók folyamatok mindegyike a
következő által foglalt erőforrásra vár.
– előre meg kell adnia minden processznek, hogy milyen erőforrásokat akar használni:
con: rossz erőforrás kihasználás! a processzek nem tudják előre, hogy mennyi erőforrásra lesz
szüksége...
– minden újabb lock-olásnál, el kell engedni az összes erőforrást és csak, akkor kapja vissza,
ha az igény kielégíthető
Coffman 3 (megszakíthatatlanság)
– no chance
Coffman 4 (ciklikus erőforrás birtoklás) egy proc. egyszerre csak 1 erőforrást birtokolhat.
Lényege: Ha jelen pillanatban ki tudjuk elégíteni valamely processz maximális igényét, akkor
biztonságos állapotban vagyunk.Ha nem, akkor bizonytalan
– Feladat: