Professor Dr. F. Schweiggert Abteilung Angewandte Informationsverarbeitung
Mario Jeckle und Ingo MelzerBlatt 2


Uni Logo



Systemnahe Software (SS 2000)


Abgabetermin 23. Mai 2000

Getrennt Marschieren... (10 Punkte)

Schreiben Sie, aufbauend auf der Übung 1, ein C-Programm, welches nacheinander mehrere Prozesse erzeugt, die dasselbe Programme ausführen. Dieses Programm soll als separat ausführbare Datei abgelegt sein.

Das Programm inkrementiert den Zähler in der Datei um eine feste Anzahl Schritte (siehe letzte Übung).

Die Anzahl der zu erzeugenden Programminstanzen (kleiner 5) wird als Kommandozeilenparameter übergeben.

Um das Auslesen des alten Zählerstandes in der Datei zu verhindern sollte jeder Prozess mit Schreibabsicht, die Datei vor dem Lesevorgang sperren und nach dem Schreiben des neuen Zählerstandes wieder freigeben. Kann ein Prozess die Datei dreimal nicht sperren, so soll er mit einem positiven Exit-Status terminieren.

Der Erzeuger soll auf die Beendigung aller von ihm erzeugten Kindprozesse warten und den zurückgelieferten Exit-Status ausgeben.

Hinweise

Es bieten sich die Systemfunktionen exec zur Ausführung der Einzelprogramme und lockf zum Sperren der Datei an. Lese- und Schreiboperationen sollten mit read bzw. write durchgeführt werden.



Mario Jeckle 2000-05-23