Ugrás a tartalomhoz

Operációs rendszerek

Dr. Fazekas Gábor (2011)

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

5. fejezet - Folyamat szinkronizáció

5. fejezet - Folyamat szinkronizáció

Konkurencia: versenyhelyzetek

  • Versenyhelyzetek és az ezzel kapcsolatos problémák:

    • Globális erőforrások (változók) megosztása processzusok között: – ha két processzus megosztott változót használ, a végeredmény a hozzáférés sorrendjétől függővé válik

    • Erőforráslefoglalás (I/O csatornák lefoglalása) processzusok által: – holtponthoz, éhezéshez vezethet

    • A konkurenciahelyzetből származó programozási hibákat nehéz lokalizálni!

      Tanulság: a megosztott globális változókat védeni kell!

Az operációs rendszer feladatai:

  • Aktív processzusok nyomonkövetése

  • erőforrások lefoglalása és felszabadítása

    • – processzoridő

    • – memória

    • – fájlok

    • – I/O eszközök

  • adatok és erőforrások védelme

  • a processzus eredménye független kell legyen más, konkurens processzusok végrehajtásának sebességétől

  • Megoldás: kölcsönös kizárás szükséges

    • – kritikus szakasz bevezetése (a program azon része, amelyik nem megosztható erőforrást illetve globális változót használ)

      • egyszerre csak egy processzus léphet be a kritikus szakaszába

      • példa: egy adott időben csak egy processzus számára engedélyezett, hogy a nyomtatónak utasításokat küldjön •

  • Kölcsönös kizárás miatt előfordulható problémák:

    • – holtpont (deadlock): processzusok egymásra befejeződésére várnak, hogy a várt erőforrás felszabaduljon

    • – éhezés (starvation): egy processzusnak határozatlan ideig várnia kell egy erőforrás használatára