Prozesse

5 Mai
Termin: 19 Mai (20 Mai)

Theorie | Beispiel |Aufgaben


Theoretische Zusammenfassung
über fork, exec, wait, waitpid, pipe:

C Language Tutorial (Englisch)

Beispiel

Aufgaben:

1. Sei eine Datei gegeben, die die Reihenfolge der ersten N natürlichen Zahlen enthaltet. Sei Pi der Prozess, der die Mehrfachen von i zwischen 2 und N aus der Datei löscht. Scheiben Sie ein Programm, das mit der Hilfe einer angemessenen Anzahl von Prozesse die Primzahlen kleiner als N bestimmt. (Sieb des Eratosthenes)

2. Eine natürliche Zahl wird vollkommene Zahl (auch perfekte Zahl oder ideale Zahl) genannt, wenn sie die Summe ihrer positiven echten Teiler (d.h. aller Teiler außer sich selbst) ist. Mit der Hilfe einer angemessenen Anzahl von Prozesse schreiben Sie ein Programm, das alle vollkommene Zahlen bestimmt, die kleiner als N sind.

3. Sei Pi ein Prozess, der bestimmt ob i der Teiler einer bestimmten Zahl N ist, und falls ja, wievielmal. Mit der Hilfe einer angemessenen Anzahl von Prozesse schreiben Sie ein Programm, das die Zahl N in Primfaktoren zerlegt.

4. Sei P ein Prozess, der den größten gemeinsamen Teiler von zwei natürlichen Zahlen bestimmt. Mit der Hilfe einer angemessenen Anzahl von Prozesse schreiben Sie ein Programm, das den größten gemeinsamen Teiler von N natürlichen Zahlen bestimmt.

5. Sei Pi ein Prozess der die Anzahl der Zeichen i in einem gegebenen Text bestimmt. Mit der Hilfe einer angemessenen Anzahl von Prozesse schreiben Sie ein Programm, das eine Statisik über die Erscheinung jeder Buchstaben ausliefert.

6. Sei eine Reihe von Zahlen gegeben. Schreiben Sie ein Programm, das die Summe der dritten Potenzen der Zahlen ausrechnet so, dass jede dritte Potenz von einem anderen Prozess ausgerechnet wird.

7. Seien vier Prozesse, die die vierfundamentalen arithmetischen Operationen ausführen. Schreiben Sie ein Programm, das den Ausdruck
            (a+b*c) / (a-b+d-c) + a*b*c*d
mit der Hilfe dieser vier Prozesse ausrechnet.

8. Sei eine Reihe von Zahlen x1, x2, ..., xn gegeben. Schreiben Sie ein Programm, das die Zwischensummen x1, x1+ x2, x1+ x2 +x3, ..., x1+ x2 +...+xn ausrechnet so, dass jede Summe von einem anderen Prozess ausgerechnet wird.

9. Sei eine Reihe von Zahlen gegeben. Rechnen Sie die Summe der Zahlen mit Hilfe der "divide et impera" Methode aus: das Programm wird die Reie in zwei Teilen zerlegen und sie an zwei Kindprozesse weitergeben, damit sie deren Summe ausrechnen, dann wird es die Rückgabewerte addieren. Die Kindprozesse werden das gleiche Ferfahren anwenden. (Weil nur eine beschränkte Anzahl von Prozessen gestartet werden kann, wird das Programm nur für wenige Zahlen funktionieren.)