Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenDienstag, 22. Oktober 2019 

Monitor (Informatik)


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
Ein Monitor ist ein Konzept in der Informatik das Zugriffsüberschneidungen bei nebenläufigen Prozessen vermeidet. In einigen Programmiersprachen wie z.B. Java und Concurrent Pascal werden Monitore durch Konstrukte unterstützt.

Monitore lassen für die Benutzung einer etwa eines Speicherinhaltes jeweils nur einen Prozess andere müssen sich in Warteschlangen einreihen und auf ihre Ausführung warten. Möglichkeiten zur Synchronisation von Zugriffen bestehen in Anwendung von Semaphoren oder Spin-Locks. Monitore Locks und Semaphore sich nicht gegenseitig aus.

Inhaltsverzeichnis

Aufbau

Ein Monitor besteht aus einer geschlossenen von Daten und Prozeduren (oder Methoden). Jeder besitzt ein implizites Lock und eine Warteschlange Monitor-Warteschlange) sowie eine beliebige Anzahl von Bedingungsvariablen . Jeder Bedingungsvariable ist eine weitere Warteschlange Variablen-Warteschlange) zugeordnet.

Aufbau eines Monitors

Ein Prozess betritt den Monitor indem eine dem Monitor zugeordnete Prozedur aufruft. Das des Monitors wird dann gesetzt. Weitere Prozesse den Monitor betreten wollen werden in die eingetragen. Wenn ein Prozess den Monitor wieder wird ein Prozess aus der Warteschlange entnommen fortgesetzt. Das Lock wird freigegeben wenn keine mehr fortgesetzt werden können.

Ein Prozess kann den Montior auch indem er auf eine Bedingungsvariable wartet ( wait ). Er wird angehalten und in die eingereiht. Ein Prozess wird daraufhin aus der entnommen und fortgesetzt oder das Lock wird

Mittels signal auf eine Bedingungsvariable wird ein Prozess der Variablen-Warteschlange entnommen und kann fortgesetzt werden.

wait und signal dürfen nur innerhalb von Prozeduren des verwendet werden.

Hoare-Typ

Das Monitor-Konzept geht ursprünglich auf eine von C. A. R Hoare im Jahre 1974 zurück. Beim signal -Aufruf wird geprüft ob die Variablen-Warteschlange Prozesse Falls diese nicht leer ist wird der Prozess angehalten und ein Prozess aus der entnommen und fortgesetzt.

Der signalisierende Prozess wird in die eingetragen. Er wird normalerweise also fortgesetzt nachdem vormals wartende Prozess den Monitor verlässt.

Mesa-Typ

Neben dem Hoare-Typ gibt es noch Mesa-Monitor-Typ der Ende der 1970er Jahre von einer Gruppe bei Xerox entwickelt wurde. Im Gegensatz zum Hoare-Typ signal den signalisierenden Prozess nicht an. Dieser stets fortgesetzt. signal fügt statt dessen einen Prozess aus Variablen-Warteschlange in die Monitor-Warteschlange ein.

Mesa-Typ Monitore werden auch Signal-and-Continue (etwa: signalisiere und fahre fort)-Monitore genannt.

signal und wait in Monitoren und Semaphoren

Bedingungsvariable (Monitor) Semaphor
Nur innerhalb eines Monitors möglich Kann überall auftreten
keine Zählvariable enthält einen Zähler
wait hält den aufrufenden Prozess immer an wait hält den aufrufenden Prozess an falls Zähler Null ist. Sonst wird nur der erniedrigt.
Bei signal wird nur ein Prozess fortgesetzt. Falls kein Prozess auf Bedingungsvariable wartet wird der signalisierende Prozess fortgesetzt.
Hoare-Typ:
Einer der wartenden Prozesse wird fortgesetzt signalisierende Prozess wird angehalten. Dieser wird fortgesetzt der wartende Prozess den Monitor verlässt.
Mesa-Typ:
Der signalisierende Prozess wird fortgesetzt. Einer wartenden Prozesse wird fortgesetzt wenn der signalisierende den Monitor verläßt.
signal erhöht nur den Zähler falls kein wartet. Ansonsten werden einer der wartenden Prozesse und der signalisierende Prozess fortgesetzt.




Bücher zum Thema Monitor (Informatik)

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/Monitor_(Informatik).html">Monitor (Informatik) </a>