Betriebssystemtheorie/ Prozesskoordination


Einführung

Es gibt verschiedene Arten von parallel oder auch sequentiell ablaufenden Prozessen. Während viele Prozesse völlig unabhängig voneinander ablaufen können, benötigen solche die identische Ressourcen verwenden eine granulare Form der Koordination. Im folgenden werden die verschiedenen Szenarien parallel zueinander ablaufender Prozesse und deren Steuerung (Prozesssynchronisation) betrachtet. Prozesse mit gleichen Ressourcen müssen eng synchronisiert werden. Prozesse die verschiedene Ressourcen nutzen, können zwar unabhängig voneinander ablaufen. Trotzdem ist in vielen Fällen eine Prozesskommunikation erwünscht bzw. sinnvoll.

Mechanismen der Prozesssynchronisation und -kommunikation

Bei parallel laufenden Prozessen ist vom Betriebssystem insbesondere sicherzustellen, dass mehrere Prozesse auf die gleichen Daten zugreifen können. Dies ist besonders dann der Fall, wenn die Prozesse das gleiche Programm benutzen , aber nicht nur dann. Während ein parallel lesender Zugriff noch relativ leicht hergestellt werden kann, zum Beispiel durch nacheinander bereit gestellte Zeitscheiben (time sharing) , ist dies beim schreibenden Zugriff auf beispielsweise die gleiche Datei aufwändiger und erfordert eine Prozesssynchronisation.

Bei einem gemeinsamen Zugriff auf die gleichen Daten muss also verhindert werden, dass Inkonsistenzen in den Daten entstehen. Dies wäre zum Beispiel bei gleichzeitigem Schreiben der Daten der Fall. Dies ist durch entsprechende exklusive Schreibsperren zu verhindern. Aber auch in Situationen, bei den ein Prozeß schreibt und einer liest, muss der schreibende Prozeß in der Regel die Änderung der Daten erst beenden, bevor wieder lesend zugegriffen werden kann.

Die Synchronisation der Prozesse besteht nun darin, dass ein Prozess auf ein Ereignis warten muss, das von einem anderen ausgelöst wird. Es ist Aufgabe des Betriebssystems, die sich daraus ergebenden Abhängigkeiten so umzusetzen, dass ein Prozess immer nur dann auf die Daten zugreifen darf, wenn der konkurrierende Prozeß diese frei gegeben hat. Erreicht wird dies meist durch Kontrollmechanismen wie Locks, Semaphore und Monitore.

Eine weitergehende detaillierte Beschreibung der Prozesssynchronisation findet sich in der Wikipedia [1]

  1. [[1]]