Tudd Intuíció, előadás holtpontok
Abstract: Az előadás foglalkozik a holtpontok, stalemates és „lefagy” a rendszert
Egy korábbi fejezetben megnéztük módon szinkronizálni folyamatokat, amelyek lehetővé teszik folyamatok sikeres együttműködésre. Azonban előre nem látható nehézségek merülhetnek fel bizonyos esetekben. Tegyük fel, hogy több folyamat verseng a birtokában véges számú források. Ha a kért folyamat erőforrás nem áll rendelkezésre, az operációs rendszer veszi ezt a folyamatot várakozási állapotba. Abban az esetben, ha a kért erőforrás másik által tartott várakozó folyamat, az első művelet nem lesz képes megváltoztatni azok állapotát. Ezt a helyzetet nevezzük a holtpont (holtpont). Azt mondják, hogy egy többszörös programozásról rendszerben, a folyamat zsákutcába állapotban. ha ez vár olyan esemény, amely soha nem fog megtörténni. Rendszer holtpont. vagy „rendszer lefagy” az a következménye, hogy egy vagy több folyamat állapotban vannak a holtpont. Néha ezek a helyzetek nevezzük összekötése. Általában, a probléma a holtpontok hatékony megoldást nem.
Vegyünk egy példát. Tegyük fel, hogy két folyamat a kimenetre egy nyomtatóhoz szalagot. Egyikük sikerült kisajátítani a szalagot, és úgy, mintha egy nyomtatót, és fordítva. Ezt követően, mindkét folyamat blokkolva várakozás a második erőforrás (lásd. Ábra. 7.1).
Ábra. 7.1. példa holtponton
Definíció. Eljárások sorozata van a holtpont. ha minden a több folyamat vár egy eseményre, amely okozhat egy másik folyamat csak ezt meg. Mivel minden folyamat valami várható, egyikük nem lesz képes kezdeményezni olyan esemény, amely felébreszti a másik tag a készlet, és ezért az összes folyamat alszanak együtt.
Fent egy példa a holtpont. találkozás használata közben az úgynevezett dedikált eszközök. Holtpontok. Azonban akkor is előfordulhat, más helyzetekben. Haprimer adatbázisban bejegyzések lokalizálható folyamatirányító rendszerek, hogy elkerüljék a verseny állapota (lásd. Lecture 5 „szinkronizáló algoritmusai”). Ebben az esetben előfordulhat, hogy az egyik folyamat blokkolt hitelesítő szükséges egy másik folyamat, és fordítva. Így holtpontok is előfordulhat mind a hardver és szoftver erőforrások.
Holtpontok is okozott programozási hibák. Például, a folyamat hiába vár a nyitás a szemafor, mert helytelenül írt kérelmet, hogy ezt a műveletet elfelejteni. A másik oka a szüntelen várakozás lehet diszkriminatív politikát, amelyek bizonyos folyamatokat. Azonban a legtöbb esemény, mely várja a folyamat zsákutcába. - a kibocsátás a forrás. így a jövőben lesz szó módszerekkel foglalkozó holtpontok erőforrás típus.
Erőforrások lehetnek eszközt, és adatokat. Hekotorye források lehetővé teszik szétválasztását folyamatok, azaz közös erőforrás. Például, a memória. processzor. meghajtók együttesen használt folyamatok. Mások nem teszik lehetővé a szétválasztás, azaz ki vannak jelölve. A szalagos meghajtó például. A patthelyzet használatából eredő mind dedikált és megosztott erőforrásokat. Például, az olvasás a megosztott lemez végezhető egyszerre több folyamat, míg a felvétel kizárólagos hozzáférésre van szüksége az adatok a lemezen. Abból lehet kiindulni, hogy része a lemez, ahol a felvétel zajlik. kiosztott különleges eljárásra. Ezért feltételezzük, hogy a holtpont társított dedikált erőforrásokat. azaz holtpontok fordul elő, amikor a folyamat kizárólagos hozzáférést eszközök, fájlok és egyéb források.
A hagyományos események sorrendje, ha dolgozik az erőforrás áll egy lekérdezést, felhasználásának és kibocsátásának a forrást. a kérés fajtája természetétől függ a forrás és az operációs rendszer. A kérelem kifejezett érték is lehet, például egy különleges kihívást kérelmet, vagy burkoltan - nyitott, hogy nyissa meg a fájlt. Általában, ha az erőforrás foglalt, és a kérelem elutasításának a kérelmező folyamat várakozó állapotba áll be.
Később ebben a fejezetben kell tekinteni felderítésére, megelőzésére, megkerülni holtpontok holtpontok és a helyreállítást. Általános szabály, hogy a terrorizmus elleni zsákutcák - egy nagyon drága esemény. Mindazonáltal számos rendszerek, mint például a valós idejű rendszerek, nincs más alternatíva.
Feltételei előfordulása holtpontok
Feltételei az előfordulása holtpontok fogalmazódtak Koffmanom, Elphick és Shoshani 1970
- Feltételek mutex (kölcsönös kizárás). Ugyanakkor felhasználása a forrás csak egyetlen folyamat.
- Feltétel készenléti erőforrások (Hold és várjon). Folyamatok tartsa források. Már a számukra elkülönített és kérheti más források.
- Feltétel nepereraspredelyaemosti (No preemtion). Erőforrás. már rámutattunk, nem lehet erőszakkal elvették a folyamatot. Megjelent, hogy csak akkor tudnak olyan folyamat, amely tartja őket.
- Az az állapot, körkörös várakozások (körkörös várakozás). Van egy kör alakú lánc folyamatok, ahol minden egyes eljárás vár hozzáférést az erőforrás. által tartott másik lánc folyamat.
A formáció a zsákutcából szükséges és elégséges, hogy minden a négy feltételt.
Jellemzően a holtpont ciklusban modellezi egy grafikon, amely kétféle csomópont: téglalap - folyamatok és az ellipszis - források. mint például az ábrán látható. 7.1. A nyíl az erőforrás a folyamat, azt mutatják, hogy az erőforrást a folyamatot. A nyíl a folyamat az erőforráshoz. azt jelenti, hogy a folyamat a kérő forrás.
A fő irányok elleni harc zsákutcák
lunda probléma kezdeményezett sok érdekes kutatás területén a számítástechnika. Nyilvánvaló, hogy a szokásos ciklikus elvárások eltér a többitől. Az első három szempontból alkotják a szabályokat, amelyek léteznek a rendszerben, míg a negyedik feltétel egy olyan helyzetet, amely akkor keletkezik, ha egy bizonyos nemkívánatos esemény sorozat. Ezért módszer, hogy megakadályozzák a holtpont koncentrálunk megsértése az első három feltétel bevezetésével bizonyos korlátozásokat a viselkedése az eljárásokat és módszereket erőforrások elosztása. Módszerek felderítése és megszüntetése kevésbé konzervatív, és csökkenti a keresés, és megtörni a ciklus tétlen forrásokat.
Így a fő irányok elleni harc zsákutcák:
- Figyelmen kívül hagyva a probléma egészét
- megelőzése holtpontok
- felderítése holtpontok
- Felépülés holtpont
Figyelmen kívül hagyva a problémát a holtpontok
A legegyszerűbb - figyelmen kívül hagyja a probléma a holtpontok. Annak érdekében, hogy egy ilyen döntés, szükséges, hogy értékelje a valószínűsége patthelyzet, és hasonlítsa össze a valószínűsége kár más hibák hardver és szoftver. A tervezők általában nem hajlandó feláldozni a rendszer teljesítményét és a felhasználóbarát végrehajtására vonatkozó bonyolult és drága elleni küzdelem eszközeként a zsákutcából.
Bármely operációs rendszer, amely a mag számos tömbök rögzített méretét, esetleg szenvednek holtpontok. akkor is, ha nem található. Fájl megnyitása asztal, eljárás asztalra. sőt, minden asztalnál korlátozott források. Kitöltése az összes rekordot a folyamat táblázat vezethet az a tény, hogy a következő létrehozására irányuló kérelmet az eljárás lehet tagadni. Kedvezőtlen körülmények között több folyamat adhat ki ilyen kérelmet egyidejűleg lehet egy zsákutcába. Ha nem vagyunk hajlandók, hogy hívja CreateProcess megoldani ezt a problémát?
Megközelítés a legnépszerűbb operációs rendszerek (Unix, Windows, és mások.) Az, hogy figyelmen kívül hagyják a problémát az a feltételezés, hogy nem valószínű a véletlen holtpont helyett nevetséges szabályok kényszeríti a felhasználókat, hogy korlátozza az eljárások száma, a megnyitott fájlokat, és így tovább. N. szembesülve kellemetlen választás között szigor és a kényelem, nehéz megoldást találni, amely megfelel mindenkinek.