| Zeile 110: | Zeile 110: | ||
Im Fall des Druckers ist die Einrichtung eines Spooler-Prozesses am häufigsten verbreitet. Nur der Spooler allein darf überhaupt auf den Drucker zugreifen. Alle Druckaufträge werden an den Spooler geschickt und dann von diesem speziellen Prozess nacheinander an den Drucker geschickt. So kommt es natürlich nicht zu Race Conditions. Jedoch wird es nicht bei jeder Ressource möglich sein, einem Prozess den exklusiven Zugriff zu verleihen. | Im Fall des Druckers ist die Einrichtung eines Spooler-Prozesses am häufigsten verbreitet. Nur der Spooler allein darf überhaupt auf den Drucker zugreifen. Alle Druckaufträge werden an den Spooler geschickt und dann von diesem speziellen Prozess nacheinander an den Drucker geschickt. So kommt es natürlich nicht zu Race Conditions. Jedoch wird es nicht bei jeder Ressource möglich sein, einem Prozess den exklusiven Zugriff zu verleihen. | ||
| − | In anderen Fällen wird man versuchen, das Sperren der Ressource | + | In anderen Fällen wird man versuchen, das Sperren der Ressource „atomar“ zu gestalten, das heißt, nach einer Anweisung, die nicht unterbrochen werden kann, ist die Ressource gesperrt. Wenn die Ressource blockiert ist, wird der Prozess ebenfalls blockiert, und bei Freigabe der Ressource wieder aufgeweckt. Dies wird zum Beispiel durch Semaphoren umgesetzt, die eine atomare Funktion zum Sperren und Freigeben bereitstellen. Diese sind vom Betriebssystem privilegiert (z. B. indem sie als Syscall implementiert werden) und werden daher garantiert nicht vom Scheduler unterbrochen. |
[[Kategorie:Glossar]] | [[Kategorie:Glossar]] | ||