Ugrás a tartalomhoz

Operációs rendszerek

Dr. Fazekas Gábor (2011)

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

6. fejezet - Holtpont és éhezés

6. fejezet - Holtpont és éhezés

A holtpont fogalma

  • Holtpont fogalma: a rendszererőforrásokért versengő vagy egymással kommunikáló processzusok állandósult blokkoltsága.

  • Nincs általános megoldás!!

  • Két vagy több processzus erőforrásszükségletek miatt állnak egymással konfliktusban.

Példa: két processzus (P, Q), két erőforrás (A, B), mindkét processzus igényt tart mindkét erőforrásra. Az alábbi ábra a hat lehetséges végrehajtási útvonalat mutatja (egyprocesszoros rendszerben egyszerre egy processzus végrehajtása lehetséges!)

A 3. és 4. útvonalnál a holtpont elkerülhetetlen!

Példa: két processzus (P, Q), két erőforrás (A, B), csak az egyik processzus (Q) tart igényt egyszerre mindkét erőforrásra. A P processzus az erőforrásokat egymás után használja.

Újrahasználható erőforrások:

  • egyszerre egy processzus használja de a használat során nem „merül” ki

  • processzusok elnyerik az erőforrást, melyet később felszabadítanak, hogy egy másik processzus használni tudja

  • például: processzorok, I/O csatornák, fő és másodlagos memóriák, fájlok, adatbázisok és szemaforok

  • holtpont következik be, ha mindkét processzus fenntart egy-egy erőforrást és a másikért folyamodik

  • a következő ábrán – a végrehajtási sorrend: p0p1q0q1p2q2...... holtpont!

Fel/el-használható erőforrások

  • processzus által létrehozott és megsemmisített erőforrások

  • például: megszakítások, szignálok, üzenetek és I/O pufferekben lévő információk

  • két processzus (P1, P2) egymástól vár üzenetet, majd annak megkapása után üzenetet küld a másiknak. Így holtpont állhat elő, hiszen a Receive blokkolttá válik (lásd a következő ábrát)

Holtpont kialakulásához vezető (de egyébként szükséges) stratégiák:

  • kölcsönös kizárás: egyszerre csak egy processzus használhat egy erőforrást

  • tartani és várni (Hold-and-wait)

    • – egy processzus lefoglalva tart erőforrásokat, míg más erőforrások megszerzésére vár

  • nincs beavatkozás:

    • – erőforrást nem lehet erőszakosan elvenni egy processzustól, mely éppen használja

  • körkörös várakozás

    • – processzusok zárt lánca keletkezik, ahol minden processzus lefoglalva tart egy erőforrást, melyre a következő processzusnak szüksége van