holtpontok
Ha a kért erőforrás nem áll rendelkezésre a folyamat, a folyamat várakozó állapotba áll be. 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. Azt mondják, hogy egy többszörös programozásról rendszerben, a folyamat zsákutcába állapotban, ha vár egy esemény, amely soha nem fog megtörténni. Rendszer holtpont vagy a rendszer lefagy annak köszönhető, hogy az a tény, hogy egy vagy több folyamat állapotban patthelyzet. 1971-ben, Coffman, Elphick és Shoshani megfogalmazott az alábbi négy feltétel az előfordulása holtpontok:
1. Állapot kölcsönös kizárás. Minden erőforrást pontosan egy folyamat vagy elérhető. Folyamatok előírják az exkluzív részükre juttatott forrásokat.
2. Az a feltétel, készenléti források. Folyamatok megtartja a források már a nekik juttatott, arra számítva, ugyanakkor további forrásokra (ami ebben az esetben általában tartanak más folyamatok).
3. Állapot nepereraspredelyaemosti. Resource, a fent megadott nem lehet erőszakkal elvették a folyamatot. Megjelent, hogy csak akkor tudnak olyan folyamat, amely tartja őket.
4. A feltétel kör elvárásainak. Van egy kör alakú lánc folyamatok, ahol minden egyes folyamat megtartja egy vagy több szükséges erőforrások egy másik áramkör folyamatok.
A patthelyzet kielégítéséhez szükséges négy feltételt.
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: 1) megelőzése holtpontok. 2) Bypass holtpontok. 3) kimutatása holtpontok. 4), hogy helyreállítsa a holtpont
I) megelőzése holtpontok megsértése miatt fellépésének körülményeit holtpontok. Ha a rendszerben nincs dedikált erőforrásokat, holtpont nem. Mindazonáltal meg kell állapítani, hogy a szocializáció, mint például nyomtató, hogy van, a felbontás a két folyamat, hogy írjon egy nyomtatót egyszerre káoszhoz vezet. A szervezeten keresztül az egyidejű nyomtatás pufferezést összetett folyamatok lehetővé válik. Ebben a modellben az egyetlen folyamat ténylegesen együttműködik a nyomtató - nyomtató démon. Így a holtpont megszűnik a nyomtatóhoz. Sajnos, megtel (folyamat táblázat rosszul sorvezérlő) lehet elhelyezni az összes eszköz. Egy kellemetlen mellékhatása lehet a lehetséges patthelyzet verseny miatt a tér egy orsó-puffer. Azonban az egyik vagy másik formája ez a gondolat gyakran használják.
Harushenie körülmények várnak további forrásokat. Havender 1968 javasolta a következő stratégiát: 1) Minden egyes folyamatnak kell kérnie minden szükséges forrást meg egyszerre, és nem tud működni, amíg nem lesznek biztosítani neki. 2) Ha ugyanaz a folyamat tart Bizonyos források és mivel nem, hogy neki további forrásokat, meg kell bocsátani, hogy az eredeti forrásokat, és ha szükséges, felkéri őket újra együtt tovább.
Így az egyik módja -, hogy mindazokat a folyamatokat, hogy kérje az összes erőforrás, mielőtt végrehajtaná (mindent vagy semmit). Ha a rendszer képes azonosítani az összes szükséges folyamatot, ez működhet a befejezésig. Ha legalább egy erőforrás foglalt, a folyamat meg kell várni. Ez a megközelítés nem túl vonzó, és csökkenti a hatékonyságot a számítógép. Ritkán fordul elő, hogy az összes kért eszközök szükségesek a program ugyanabban az időben. Akkor, persze, ossza fel a programot több lépésben és erőforrásokat az egyes lépéseket a program, de a fő probléma éppen az, hogy sok a folyamatok nem tudják, mennyi erőforrást kell kezdeni számítástechnika. Ha ez az információ rendelkezésre áll, akkor lehet használni az algoritmus a bankár. Mindazonáltal néhány mainframe tétel a felhasználóknak, hogy felsorolni az összes szükséges program forrásait.
Elvének megsértését nepereraspredelyaemosti. Egy második elv Havendera források közül lehet kiválasztani megtartják folyamatok befejezéséig ezeket a folyamatokat. Ha ez mindig lehetséges, akkor lehet elérni, nem teljesíti a harmadik feltétel bekövetkeztének holtpontok. Ha a folyamat egy ideig a bizonyos erőforrásokat, majd kibocsátja ezeket a forrásokat, akkor elveszti az összes eddig elvégzett munkát. A kérdés az ár ezt a döntést, amely lehet túl magas, ha ilyen helyzet áll elő gyakran. Másik hátránya, ez a rendszer az egyéni megkülönböztetés folyamatokat, amelyekben visszavont folyamatosan forrásokat.
Megsértése feltételeinek kör elvárásainak. Körkörös várakozás lehet kerülni több szempontból is. Egyikük - a megfelelően jár el a szabályt, hogy minden folyamat csak egyetlen forrás egy időben. Ha szeretne egy második forrás - INGYENES először. Nyilvánvaló, hogy sok nem elfogadható feldolgozni, például azok számára, akik ki kell nyomtatni a nagy fájlokat a kazettáról a nyomtatóra. Egy másik módja - hozzárendelni az összes erőforrás és egyedi szobák megkövetelik, hogy a folyamatok kérheti források számsorrendben. Ezután körkörös elvárás nem merül fel.
Egy kis változás az algoritmus kerül számozás szerinti sorrendben a források, és a folyamat lekérdezések. Miután az utolsó kérés, és a kibocsátás az összes erőforrás, akkor lehetővé teszi a folyamat újra fog az első kérésre. Nyilvánvaló, hogy lehetetlen olyan eljárást találni, amely megfelel mindenkinek.
II) Bypass holtpontok. Miközben megakadályozza holtpontok cél annak biztosítása, hogy a feltételek zárja ki annak lehetőségét holtpontok. A rendszer által nyújtott források feldolgozásához érdekében, hogy a döntést, hogy biztonságos-e vagy sem. Felmerül a kérdés, hogy van-e olyan algoritmus, amely mindig segít elkerülni a zsákutcák, és a helyes döntéseket. A válasz - igen, el tudjuk kerülni a holtpont, de csak akkor, ha bizonyos információkat előre ismert. Ebben a részben megnézzük módon, hogy megakadályozzák holtpont óvatos források elosztására. Az egyik az algoritmusok megakadályozzák a holtpont épül a koncepció biztonságos államok.
bankár algoritmus. Elkerülheti holtpont, ha az erőforrások ésszerű felhasználására, azért, hogy bizonyos szabályokat. A leghíresebb ilyen algoritmusok - bankár algoritmus által javasolt Dijkstra. Ő szimulálni az intézkedések a bankár, aki, miután egy adott forrás a tőke, a kölcsönt és kérdések kifizetéseket. Tegyük fel, hogy a rendszer jelenlétében N eszközök, mint például a szalagok. A lényege az algoritmus a következő: 1) Az operációs rendszer egy kérést kap egy felhasználói folyamat, ha nem a legnagyobb a kereslet, mint n. 2) A felhasználó biztosítja, hogy amennyiben az operációs rendszer képes arra, hogy megfeleljen az ő kérésére, az összes eszköz visszakerül a rendszer véges idő alatt. 3) A jelenlegi rendszer állapotát nevezzük megbízhatóbb, ha az operációs rendszer biztosíthatja, hogy mindazok a folyamatok, hogy a teljesítmény, mint egy véges ideig. 4) Összhangban a bankár algoritmus kiválasztó készülékek csak akkor lehetséges, ha az állam a rendszer megbízható.
III) A kimutatási holtpontok. Holtpont felismerés az a megállapítás, hogy volt egy zsákutcába, és a meghatározást a folyamatokat és erőforrásokat vesz részt ebben a helyzetben. Jellemzően az észlelési algoritmusokat alkalmaznak, ha a következő első három szükséges feltételeket előfordulása patthelyzet. Ezután ellenőrzi, hogy a mód kör elvárásainak. Ebben a körben használják a már említett erőforrás grafikonok. Ha a gráf lehet csökkenteni a folyamatok, akkor nincs holtpont. Ellenkező esetben minden redukálható folyamatok folyamatokat a zsákutcából.
IV) felépülés holtpont. Tegyük fel, hogy az algoritmus nem a feladatát, és találtam egy zsákutca. Mi a következő lépés. Az egyik módja - a gyógyulni és hogy a rendszer működik. Ebben a részben azt vizsgáljuk, különböző módokon, hogy felépüljön a holtpont. A rendszer volt egy zsákutca, lehet belőle származik, megsértve az egyik feltétele annak létezését. Ebben az esetben több lehetséges eljárások részben vagy teljesen elveszti az eredményeket a munka.
A komplexitás behajtás miatt több tényező: 1) a legtöbb rendszer nem rendelkezik elegendő hatékony eszköz, hogy szüneteltesse a folyamat, a kimenetet a rendszer, és ezt követően újra; 2) ha ilyen eszköz, hogy ezek használata költséges és az üzemeltető figyelmét; 3) felépülés egy súlyos zsákutcába is igényel sok munkát.
Visszaállítása a források átcsoportosítására. Az egyik módja annak hasznosítása - kénytelen megkötésére vonatkozó eljárás a rendszer további rendelkezésre álló források felhasználásának. Azt, hogy milyen eljárással eltávolítják a rendszerből gyakran igényelnek üzemeltető erőfeszítést. Egyes esetekben lehetséges lehet, hogy ideiglenesen, hogy egy erőforrás a jelenlegi tulajdonos, és adja meg, hogy egy másik folyamat. Például válassza ki a lézernyomtató egy olyan folyamatban, kimenetek, akkor az üzemeltető lehet gyűjteni a már kinyomtatott papírt, és tegye őket egy halom. Ezután, a folyamat lehet függeszteni és át egy másik nyomtató folyamatot. Miután vége a munkája is vissza kell juttatni a papírt a nyomtatóba, és az első folyamat újraindul. Képes felvenni egy erőforrás a folyamat, hogy ez egy másik folyamatra, majd vissza vissza károsodás nélkül erősen függ a természet a forrás. Az ilyen felépülés gyakran nehéz, ha nem lehetetlen.
Recovery keresztül rollback. Ez valószínűleg a leghatékonyabb módja annak, hogy függessze fel és folytassa. Egyes rendszerekben végrehajtott eszközök újraindítása ellenőrzőpont (megtakarítás a rendszer állapotáról bizonyos időpontban). Amennyiben ezek a források nem állnak rendelkezésre, akkor kell szervezni alkalmazás fejlesztők. Ha a rendszer a tervezők tudják, hogy a holtpont valószínű, tudják megszervezni időszakosan folyamatirányító pontokat. Amikor egy holtpont észlel, akkor világos, hogy milyen forrásokat vesznek részt egy kör alakú hurok vár. Elvégezni a helyreállítás, ez a folyamat, amely egy ilyen forrásokat kell dobni az időt megelőző kérésére az erőforráshoz.
Visszaállítása megszüntetése révén az egyik folyamat. Durva, de a legegyszerűbb módja annak, hogy megoldja a holtpont - ölni egy vagy több folyamat. Például, megöl folyamat, amely a ciklusban. Ezt követően, a szerencse a többi folyamatok végezhetők. Ha ez nem működik, akkor megszünteti még egy folyamatot.
Ha lehetséges, inkább megölik a folyamat, hogy vissza lehet anélkül, hogy kárt a felső (pl folyamatokat nevezik idempotens), például az összeállítás. Másrészt, ez a folyamat, amely megváltoztatja a az adatbázis tartalma nem mindig megfelelő módon újraindul.