28 - 10.2.4 Monitore: Monitorarchitektur [ID:24406]
50 von 153 angezeigt

Schauen wir uns jetzt mal die Architektur von solchen Monitoren an. Wir werden sehen, dass es mehr als eine

Architektur sozusagen gibt. Wir fangen mal an mit dem Monitor mit den sogenannten blockierenden

Bedingungsvariablen. Das sind denn die Monitore nach der Art von Hansen und Hor. Hansen und Hor

sind zwei Informatikpioniere, die im Wesentlichen dieses Monitorkonzept erfunden haben.

Nun hier haben wir mal den Grundriss eines Monitors. Und zwar ist hier konkret dargestellt,

insbesondere der Horst-Monitor, wie man sich den so vorstellen muss. Was sehen wir denn hier? Wir

sehen hier zum Beispiel so eine Art Eingangsbereich in die Wohnung. Und das ist sozusagen der

Wartebereich für die Prozesse, die jetzt hier eine Monitorprozedur aufgerufen haben und darauf

warten müssen, dass sie praktisch Zulasseingang in den Monitor bekommen. Wenn zum Beispiel ein

Monitor jetzt hier unten ein Prozess im Monitor bereits aktiv ist, wie ich schon vorher gesagt

habe, dann müssen Prozesse darauf warten, dass der Monitor dann wieder frei wird. Das wäre denn

dieser Eingangsbereich, den wir hier haben, verwirkt sich denn letztendlich auch eine Warteschlange.

Ein Prozess würde dann halt hier mal schön einer nach dem anderen aus diesem Eingangsbereich

dann halt eintreten können in den, wenn man so will, das Wohnzimmer des Monitors, wo hier die

eigentliche Berechnung dann durchgeführt wird von dem betreffenden Prozess. Also hier macht er die

Zustandsänderungen bezüglich der in dem Monitor gekapselten Datenstrukturen. Dieser Prozess kann

die Berechnung komplett durchführen. Er würde normalerweise den Monitor verlassen. In dem Moment,

wo er hier das lief, macht letztendlich, würde der nächste Prozess sozusagen nachrücken können und

in diesen Bereich hier eintreten können. Der Prozess kann aber eben auch Ereignisse signalisieren

mittels sonst einer Signalooperation. Wenn er das tut, dann wird er implizit den Monitor freigeben.

Er begibt sich sozusagen in eine Art Nebenzimmer. Das ist dann das Zimmer, wo denn all die

signalisierenden Prozesse darauf warten, dass sie dann nachrücken, nach wieder in diesen Monitor

eintreten können. Also nach der Signalooperation ihre Ausführung fortsetzen können. Diese

Signalooperation bezieht sich dann immer auf eine bestimmte Ereignis, eine Warteschlange. Das wäre

hier so in dem Beispiel so ein A oder ein B, wo man dann halt eine bestimmte Wartepedingung aufhebt

für einen Prozess. Und der Prozess, der dann möglicherweise eben auf Aufheben dieser Wartepedingung

wartet, würde dann praktisch signalisiert werden können und könnte dann diesen Monitor betreten,

wie hier dargestellt. Er ist hier reingekommen in den Bereich, in so einen Wartebereich, in dem er

eine Vade-Operation ausgeführt hat. Ein Prozess, der also im Monitor drin war, der darauf warten

muss, dass ein bestimmter Ereignis eintritt, wird eine Vade-Operation ausführen, wählt dafür eine

Ereignis-Warteschlange, wenn man so will, aus oder eine Bedingungsvariable, auf die dann diese

Vade-Operation ausgeführt wird und würde dann warten, bis dann praktisch das Signal dazu passend

geliefert wird. Nach der Signalisierung, wie hier angedeutet wird, wird der Prozess dann praktisch

aus der Warteschlange überführt werden. In den Monitoren kann dann praktisch innerhalb des

Monitors seine Ausführung weiter fortsetzen. Das wäre normalerweise die Programmstelle,

die dieser Vade-Operation folgen würde, weil der Prozess ja vorher schon in dem Monitor drin war

und mit Vade praktisch angezeigt hat, dass er auf ein Signal wartet. Das ist hier wie gesagt ein

horscher Monitor, auch diese Art und Weise wie das Vade und das Signal, denn halt hier zu lesen ist,

wir haben hier die Monitor-Warteschlangen, die sind in diesem Eingangsbereich hier oben zu sehen,

also für all die Prozesse, die erstmalig den Zutritt sozusagen zu diesem Monitor anfordern

und dann in diesem Nebenbereich, da sind dann alle die drin, die ein Signal abgesetzt haben. Das ist

aber schon ein Implementierungsdetail. Es ist durchaus möglich, dass dann praktisch diese

Warteschlange, diese S-Warteschlange, die man hier sieht, mit der Warteschlange der Zutrittsanforderer

praktisch verknüpft ist und letztendlich eine gemeinsame Monitor-Warteschlange bildet. Es könnte

auch so sein, dass wir hier eine Vorzugs-Warteschlange haben, wo man dann halt diese Prozesse,

die bereits im Monitor drin gewesen sind, aber durch ein Signal kurzzeitig aus diesem Monitor

rausmuss, also die Monitor freigeben mussten, dass sie dann halt bevorzugt vor den anderen,

die erstmalig eintreten wollen, in diesen Monitor bearbeitet werden. Dann haben wir für jede

Bedingungsvariable A und B hier in dem Beispiel Ereignis-Warteschlange, wo denn all die Prozesse

drin enthalten sind, die praktisch auf den Eintritt eines bestimmten Ereignisses verbunden mit dieser

Teil eines Kapitels:
10.2 Monitore

Zugänglich über

Offener Zugang

Dauer

00:17:20 Min

Aufnahmedatum

2020-11-19

Hochgeladen am

2020-11-19 22:18:15

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen