Prof. Dr. Franz Schweiggert Abteilung Angewandte Informationsverarbeitung 10. Mai 2005
Ralph Guderlei Blatt 5


Uni Logo



Systemnahe Software / Systemnahe Software II (SS 2005)


Abgabetermin: 24. Mai 2005

1 Kill, aber mit Menü! (10 Punkte)

Finden Sie es nicht auch etwas mühsam, bevor Sie mit kill einen Prozeß beenden können erst dessen PID mittels ps herausfinden zu müssen? Um in Zukunft leichter Prozesse beenden zu können sollen Sie ein Programm schreiben, dass

Beispiel-Menü:

Nummer  Programmname
1       bash
2       /usr/local/bin/../Adobe/Acrobat7.0/Reader/intellin
3       scite hb-master2.c hb-slave.c
4       ./a.out
Nummer bzw. "0" zum beenden:

Folgende Vereinfachungen können als gegeben angenommen werden:

2 Lebt er noch? (10 Punkte)

Manchmal ist es interessant zu wissen, ob ein Prozess noch ''lebt'' oder nicht. Diese Überprüfung soll mittels Signalen implementiert werden. Die Implementierung soll aus zwei separaten Programmen bestehen, eines dient als Ziel der Untersuchung (''slave'') und eines führt die Überprüfung durch (''master''). Die Überprüfung läuft folgendermaßen ab: Der master sendet an den slave das Signal SIGUSR1, und der slave antwortet mit SIGUSR2.

Der master erhält die PID des slave-Prozesses beim Programmstart, der slave muß die PID des master-Prozesses bei der Signalverarbeitung den vom Betriebssystem bereitgestellten Daten entnehmen.

Wichtige man-Pages:

Tipp: Der struct siginfo_t enthält zusätzliche Informationen über das empfangene Signal.

Viel Erfolg!



Ralph Guderlei 2005-05-10