Next: Starten eines Services Up: Die Prozeßkontrolle Previous: Die Signalroutine

Der Service-Verwalter

Die Aufgabe des Service-Verwalters ist es, die Arbeit der Prozeß-Manager zu koordinieren. Dazu braucht er die Informationen aus den Tabellen aus Abschnitt . Zum einfachen Wiederauf''|finden der Services werden diese anhand der Namen in einer Baumstruktur angeordnet (siehe Abb. ). Dabei wird ein sog. n-dimensionaler Baum verwendet.

Als erstes wird beim Start des Service-Verwalters dieser Baum angelegt. Danach werden die Verweise auf die Abhängigkeiten eingetragen. Dabei müssen nur die beiden Services aus jedem Tabelleneintrag im Baum gesucht werden, und es muß eine entsprechende Verbindung hergestellt werden. Über diese Verbindung kann dann später jederzeit die Abhängigkeit zu einem Service herausgefunden werden. Die Abhängigkeiten aus der Typen-Tabelle (Tab. ) einzutragen, bedeutet schon etwas mehr Aufwand. Hier muß zuerst der ganze Baum nach Services mit dem in dem Tabelleneintrag stehenden Typ durchsucht werden. Zum Typen COLLI würde man also speca/colli finden. Dann muß der Servicename mit dem relativen Namen verknüpft werden - im Beispiel wird aus dem Namen speca/colli und ./multi der neue Name speca/colli/multi - und dieser Service gesucht werden. Im Anschluß können die Verbindungen für die Abhängigkeiten erzeugt werden.

Zuletzt wird die Liste der Gerätenamen eingelesen. Zu jedem der Gerätenamen wird der Baum der Services nach Einträgen durchsucht, die zu diesem Gerätenamen gehören, um auch hier einen Verweis zu erstellen. Damit sind die Datenstrukturen vollständig, mit denen das Programm im weiteren Verlauf arbeitet.

Nach dieser Initialisierung stehen drei verschiedene Aktionen für das Feld DEVICE zur Verfügung. Die Aktionen START und STOP werden von den Dienstprogrammen (siehe Abschnitt ) zum Starten und zum Stoppen von Gerätetreibern benutzt. Die Aktion STOPPED ruft der Prozeß-Manager auf, wenn er dem Service-Verwalter die Nachricht schickt, daß eines seiner Kinder wegen eines Fehlers beendet wurde (siehe Abschnitt ).



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