Dr. Matthias Grabert Abteilung Angewandte Informationsverarbeitung 24. Mai 2002
Christian Ehrhardt Blatt 5


Uni Logo



Systemnahe Software (SS 2002)


Abgabetermin 4.6. 2002

Aschenputtel (10 Punkte)

Aschenputtel muß im gleichnamigen Märchen Erbsen sortieren, die Guten ins Töpfchen, die Schlechten ins Kröpfchen. Da dies eine sehr zeitaufwendige Arbeit ist, soll in diesem Blatt ein kleines Programm geschrieben werden, das dir Arbeit von Aschenputtel erleichtert. Aschenputtel wird dabei genauso wie das Töpfchen für die guten Erbsen und das Kröpfchen für die schlechten Erbsen durch Prozesse simuliert. Die Erbsen sind bestimmte Buchstaben. Die Kommunikation zwischen den Prozessen (also zwischen Aschenputtel und den dem Töpfchen bzw. Kröpfchen) erfolgt über pipes.

Aschenputtel

Der Aschenputtel-Prozeß stellt sicher, daß sich im aktuellen Verzeichnis eine named pipe mit dem Namen ``pipe'' befindet und liest anschließend von dieser pipe bis zum Dateiende Buchstaben (Erbsen) ein. Der Aschenputtel-Prozeß sollte darauf warten, daß sich seine Kinder beenden bevor er sich selbst beendet.

Der Töpfchen-Prozeß

Der Töpfchen-Prozeß wird vom Aschenputtel-Prozeß erzeugt und bekommt die guten Erbsen über eine pipe. Der Prozeß selbst soll eine kurze Meldung ausgeben, und dann das Kommando ``sort'' so ausführen, daß es von der Pipe für gute Erbsen liest. Die Ausgabe von sort soll (natürlich ebenfalls mit Hilfe einer pipe) an das Kommando ``uniq -c'' gehen. Die beiden Kommandos ``sort und ``uniq -c'' in dieser Kombination tun nichts anderes, als zu zählen, wie oft jede Zeile in der Standardeingabe vorkommt. Man erhält also eine Art Statistik, wieviele der guten Erbsen ``g''-Erbsen, ``u''-Erbsen bzw. ``t''-Erbsen waren.

Der Kröpfchen-Prozeß

Der Kröpfchen-Prozeß soll lediglich zählen, wieviele schlechte Erbsen bei ihm ankommen und das Ergebnis ausgeben.

Die Stiefmutter

Die Stiefmutter ist diejenige, die Aschenputtel die Erbsen zum sortieren gibt, d.h. diejenige, die Buchstaben in die named pipe schreibt. Diese ehrenvolle Aufgabe bleibt Euch überlassen und kann zum Beispiel mit dem Kommando echo oder cat erledigt werden.

Hinweise und Einschränkungen



Christian Ehrhardt 2002-05-24