Next: Die Datenbanktabellen Up: Die Prozeßkontrolle Previous: Anforderungen

Das Konzept

Grundsätzlich sind zwei verschiedene Modelle für die Implementierung der Prozeßkontrolle denkbar:

Modell 1
Auf allen beteiligten Rechnern laufen gleichberechtigte Kontrollprozesse, die Gerätetreiber auf diesen Rechnern starten und überwachen. Hier werden auch alle Informationen über Abhängigkeiten zwischen Prozessen berücksichtigt. Benötigt ein Treiber einen zweiten, wird der zweite zuerst gestartet. Soll dieser auf einem anderen Rechner gestartet werden, wird eine entsprechende Nachricht an den zuständigen Kontrollprozeß gesandt und die Bestätigung abgewartet.

Dieses Verfahren hat den Vorteil, daß mehrere unabhängige Anforderungen auf verschiedenen Rechnern ausgeführt werden können. Ein Nachteil ist es aber, daß es zu Verklemmungen kommen kann, wenn zwei Kontrollprozesse sich gegenseitig Startanforderungen schicken, dabei aber nicht bereit sind, eine Anforderung zu bearbeiten, während sie auf die Bestätigung warten. Man müßte bei einem Startauftrag auch wissen, auf welchem Rechner ein Prozeß laufen soll, um den richtigen Kontrollprozeß ansprechen zu können.

Modell 2
Ein zentraler Prozeß kontrolliert anhand der Abhängigkeitsinformationen das Starten und Stoppen der Gerätetreiber. Dazu schickt er entsprechende Befehle an Kontrollprozesse auf den beteiligten Rechnern. Diese benötigen nur die Informationen, wie ein Gerätetreiber zu starten ist.

Durch die zentrale Steuerung kann es hier nicht zu Verklemmungen kommen, es kann aber nur eine Anforderung gleichzeitig ausgeführt werden.

Da die Vorteile in Modell 2 überwiegen, wurde die Prozeßkontrolle nach diesem Modell implementiert. Sie besteht aus mehreren Komponenten (siehe Abb. ), die im folgenden näher beschrieben werden sollen.

Die lokalen Prozeß-Manager haben die Aufgabe, die einzelnen Gerätetreiber zu starten, den Status zu überwachen und sie auch wieder zu stoppen. Auf jedem der beteiligten Rechner gibt es einen Prozeß-Manager. Die nötigen Informationen dazu erhalten sie aus der Datenbank.

Der globale Service-Verwalter soll die Arbeit der Prozeß-Manager koordinieren. Dieser Prozeß wird im ganzen System nur einmal benötigt. Er erhält aus der Datenbank Informationen über die Abhängigkeiten der einzelnen Services untereinander. Anhand dieser Informationen können alle für einen bestimmten Service oder für eine bestimmte Servicegruppe notwendigen Treiber ermittelt werden und entsprechende Start- bzw. Stopp-Befehle an den zuständigen Prozeß-Manager übermittelt werden. Hierbei wird auch überprüft, ob ein zu stoppender Treiber noch von einem anderen benötigt wird und deshalb doch noch nicht gestoppt werden kann.

Der Service-Verwalter und alle Prozeß-Manager protokollieren ihre Aktivitäten mit Datum und Uhrzeit in zugeordneten Dateien, um dem Experimentator jederzeit die Möglichkeit zu geben, den aktuellen Status und den Ablauf der Aktionen nachzuvollziehen.

Zwei einfache Dienstprogramme stehen dem Benutzer zur Verfügung, um die ganze Funktionalität des Service-Verwalters und der Prozeß-Manager zu bedienen. start_device verschickt die Auf''|forderung, einen Service zu starten, an den Service-Verwalter. stop_device veranlaßt das Stoppen eines Services. Beide informieren den Benutzer über eventuelle Fehlermeldungen. Da auch hier das Messagesystem eingesetzt wird, können diese Programme von jedem berechtigten Benutzer auf allen Rechnern im Institut eingesetzt werden.



Next: Die Datenbanktabellen Up: Die Prozeßkontrolle Previous: Anforderungen


martin@daisy.zdv.Uni-Mainz.DE
Fri Apr 21 10:02:42 MESZ 1995