Ugrás a tartalomhoz

Operációs rendszerek

Dr. Fazekas Gábor (2011)

Kempelen Farkas Hallgatói Információs Központ

A holtpont detektálása

A holtpont detektálása

Holtpont detektálási algoritmus:

  • allokációs mátrix (A), erőforrás vektor, elérhetőségi vektor

  • kérelem mátrix Q bevezetése, ahol qIj jelenti az I processzus által igényelt j típusú erőforrások mennyiségét

  • kezdetben minden processzus jelöletlen

  • Az algoritmus:

    1. jelöljünk meg minden processzust, melynek allokációs mátrixbeli sora csupa 0

    2. legyen W egy vektor, mely megegyezik az elérhetőségi vektorral

    3. keressünk olyan processzust (i), mely jelöletlen, és Qik≤Wk, ahol 1≤k≤m. Ha ilyen nincs, szakítsuk meg az algoritmust!

    4. ha van, jelöljük meg a processzust és állítsuk be az új W-t: Wk=Wk+Aik, ahol 1≤k≤m, majd lépjünk vissza a 3. lépésre

  • holtpont létezik, ha az algoritmus végén jelöletlen processzusok maradnak

Helyreállítási stratégia:

  • az összes holtpontot okozó processzus felfüggesztése (ez a leggyakoribb)

  • az összes holtpontban levő processzus visszaállítása egy előzetesen definiált ellenőrzési pontra és az összes processzus újraindítása

    • – az eredeti holtpont újból bekövetkezhet....

  • a processzusok egymás után való leállítása, amíg a holtpont megszűnik, minden egyes processzus leállítása után a holtpontdetektáló algoritmus újraindítása szükséges

  • az erőforrások egymás után való felszabadítása, amíg a holtpont szituáció meg nem szűnik (detektáló algoritmus újraindítása minden erőforrás felszabadítás után)

  • a processzusok kiválasztása bizonyos megfontolások alapján történik (leghosszabb hátralevő futási idő, legkevesebb lefoglalt erőforrással rendelkező, kisebb prioritású processzusok, stb.) Holtpont észlelése