Next: Zusammenfassung Up: Die Prozeßkontrolle Previous: Markieren fehlerhaft beendeter

Tests und Erweiterungsmöglichkeiten

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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


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