Wenn ein Prozeß andere Prozesse startet, bezeichnet man den ersteren
als Vaterprozeß und die neuen als seine Kindprozesse.
Solche Vaterprozesse haben unter dem verwendeten Betriebssystem UNIX
die Eigenschaft, daß ihnen die Beendigung eines ihrer Kindprozesse
signalisiert wird. Sie erhalten das Signal SIGCHLD. Wenn keine
besonderen Maßnahmen ergriffen werden, wird ein solches Signal von
jedem Programm ignoriert. Hier wird diese Information aber benötigt,
um z.B. den Experimentator über die Beendigung eines Gerätetreibers
zu informieren. Da ein solches Signal jederzeit während des
Programmablaufs eintreffen kann, wird dem Betriebssystem eine
selbstgeschriebene Funktion bekannt gemacht, die es beim Eintreffen
eines Signals aufrufen soll. In dieser Funktion kann dann
entsprechend auf das Signal reagiert werden. Der Service-Verwalter
installiert seine Signalroutine gleich am Anfang des Programms. Die
Funktionsweise wird in Abschnitt erklärt.
Der Prozeß-Manager wie auch der Service-Verwalter wurden mit Hilfe der Treiber-Klassenbibliothek implementiert, da sie wie andere Treiber auch per Messagesystem ansprechbar sein sollen und Services und Aktionen zur Verfügung stellen. Der Prozeß-Manager hat ein Feld namens PROCESS und dazugehörig zwei Aktionen START und STOP, die für das Starten und Stoppen von Prozessen zuständig sind.
Beim Start des Prozeß-Managers wird die Tabelle der Gerätenamen
(siehe Abb. ) aus der Datenbank eingelesen. Aus der
Konfigurationsdatei hw_conf der Datenbank
für diesen Service wird ein symbolischer
Rechnername
und der Servicename des Service-Verwalters
gelesen. Mit Hilfe des Rechnernamens werden alle Einträge aus der
Liste der Gerätenamen herausgesucht, die auf diesem Rechner laufen
sollen. Nur diese Prozesse werden berücksichtigt und sind damit
startbar.