Next: Zusammenfassung
Up: Die Prozeßkontrolle
Previous: Markieren fehlerhaft beendeter
Nach umfangreichen Tests wurde die Prozeßkontrolle erstmals in der
Strahlzeit zum Test von Spektrometer B vom 9. bis zum 11. Juli 1993
während eines Experimentes eingesetzt. Dabei zeigte sich, daß das
Starten und Stoppen der Gerätetreiber wesentlich schneller vor sich
ging als vorher mit den Kommandoprozeduren. Auch die Flexibität,
jeden Servicenamen zum Start angeben zu können, machte sich positiv
bemerkbar. Im folgenden werden einige aufgetretene Probleme und
Erweiterungsmöglichkeiten geschildert:
- Manchmal war es notwendig, alle Prozesse auf einem Rechner zu
stoppen und später wieder zu starten, um z.B. den Rechner neu
starten zu können. Dabei ist folgendes Problem aufgetreten. Das
Stoppen aller Prozesse geschieht durch das Stoppen des
entsprechenden Prozeß-Managers. Bevor dieser terminiert,
beendet er nämlich alle seine Kindprozesse. Dadurch geht aber
das Wissen verloren, welche Prozesse gestartet waren. Der
Service-Verwalter trägt die beendeten Prozesse aus der Liste der
gestarteten aus. Um die Prozesse wieder zu starten, müssen alle
start_device-Befehle wiederholt werden, mit denen sie
vorher gestartet wurden. Diese sind aber unter Umständen nicht
mehr bekannt, da der Zeitpunkt schon weiter zurück liegt oder der
Experimentator gewechselt hat. Die Prozeßkontrolle sollte also
die Möglichkeit erhalten, sich die Informationen zu allen auf
einem Rechner gestarteten Kindprozessen zu merken. Anhand dieser
Informationen könnten nach dem Neustart eines Prozeß-Managers
dessen Kindprozesse neu gestartet werden.
- Die Prozeßkontrolle überwacht zwar mit Hilfe der
Prozeß-Manager die Zustände der Kindprozesse. Wenn aber einer
der Prozeß-Manager wegen eines Fehlers beendet wird, kann er
dies dem Service-Verwalter normalerweise nicht mehr mitteilen.
Erst bei der nächsten Anfrage des Service-Verwalters macht sich
das Fehlen des Prozeß-Managers bemerkbar. Es müßte darum
regelmäßig überprüft werden, ob die Prozeß-Manager und der
Service-Verwalter noch erreichbar sind, und im Fehlerfalle eine
Meldung ausgegeben bzw. geeignete Maßnahmen eingeleitet werden.
- Bei Änderungen in der Konfiguration der Steuerungsprozesse
und damit Änderungen in der Datenbank müssen der
Service-Verwalter und die Prozeß-Manager gestoppt und neu
gestartet werden, damit sie die neuen Informationen übernehmen.
Eine Möglichkeit, Service-Namen und -Informationen während der
Laufzeit einzufügen und zu entfernen, würde das Neustarten
überflüssig machen und damit die Benutzerfreundlichkeit
fördern.
- Erweiterungsmöglichkeiten bestehen auch in zusätzlichen
Hilfsprogrammen für das Management der Prozeßkontrolle. Ein
Hilfsprogramm könnte z.B. die Ausgabe einer Liste aller
gestarteten Services bzw. Prozesse bewirken. Hierbei könnten
auch zusätzliche Statusinformationen wie z.B. der Zeitpunkt des
Startes ausgegeben werden. Dies ist als Ergänzung zu den
Protokolldateien sinnvoll, da diese zwar alle Änderungen
wiedergeben, der aktuelle Stand nach vielen Aktionen aber nur noch
schwer nachvollziehbar ist.
- Wie in Abschnitt
beschrieben verhindert das
Prozeßkontrollsystem, daß ein Prozeß, der noch von einem
anderen Prozeß benötigt wird, gestoppt wird. Dies ist aber in
einigen Fällen doch notwendig, um z.B. einen einzelnen
Gerätetreiber neu zu starten. Möglich ist dies mit dem Programm
terminate [Kun92a], das dem Treiber eine Nachricht mit
der Flagge MSG_STOP schickt
. Dieses Programm kann aber jeder
Benutzer aufrufen und damit durch Fehlbedienung Schaden anrichten.
Es ist also vorzuziehen, diese Funktionalität in den
Service-Verwalter zu integrieren und sie damit zu kontrollieren.
- In der aktuellen Implementation wird bei Nachrichten an die
Gerätetreiber von diesen keine Empfangsbestätigung verlangt, da
die Treiber einiger langsamer Geräte die Möglichkeit des
ECS-Protokolls ausnutzen, dem Absender zu signalisieren, daß sie
noch beschäftigt sind. Die Sendefunktion verschickt daraufhin die
Nachricht nach einigen Sekunden noch einmal und wiederholt dies,
bis die Nachricht angenommen wurde. Das kann aber zu sehr langen
Wartezeiten führen. Die Lösung muß von zwei Seiten angegangen
werden. Auf der einen Seite sollte auf der Senderseite die
Möglichkeit gegeben werden, selbst zu entscheiden, ob die Sendung
wiederholt werden soll. Auf der anderen Seite müssen in den
erwähnten Gerätetreibern die Aktionen so aufgeteilt werden, daß
sie in Wartezeiten auf andere Nachrichten reagieren
können
. Wenn diese Vorraussetzungen gegeben sind,
kann bei der Prozeßkontrolle eine Empfangsbestätigung verlangt
werden, wodurch sich die Sicherheit des Systems erhöhen würde.
Next: Zusammenfassung
Up: Die Prozeßkontrolle
Previous: Markieren fehlerhaft beendeter