Universität Ulm - Abteilung Angewandte Informationsverarbeitung
Aufgabe 1: Einfacher Primzahltest (4 Punkte)
Schreiben Sie ein C-Programm, das testet, ob eine
Zahl , die über die Kommandozeile eingegeben wird,
eine Primzahl ist oder nicht.
Dabei soll geprüft werden, ob von einer Zahl
im Intervall von bis geteilt wird.
Teilen Sie dieses Intervall in weitere Bereiche auf
und erzeugen sie für jeden dieser Bereiche einen neuen
Prozeß. Findet ein Prozeß einen Teiler, so ist
keine Primzahl.
Achten Sie darauf, daß die Bereiche nicht allzu
groß werden, d.h. Ihr Programm sollte nicht mehr
als 20 neue Prozesse erzeugen.
Aufgabe 2: Matrizen (6 Punkte)
Schrieben Sie ein Programm, das als Eingabe zwei quadratische -Matrizen erhält und diese in Kindprozessen miteinander multipliziert (). Jeder Kindprozess berechnet ein Element der Ergebnismatrix und liefert den Wert als Exit-Status an den Erzeugerprozess, welcher die Teilergebnisse zusammenfügt und die Ergebnismatrix ausgibt. Es kann davon ausgegangen werden, dass alle Teilergebnisse (d.h. Elemente der Ergebnismatrix) im Bereich enthalten sind.
Tipp: Damit Sie wissen, wohin welches Ergebnis gehört,
müssen Sie sich merken, welcher Kindprozess (PID!) welches Matrixelement
berechnet. Dann können Sie aus der PID, die wait() liefert,
darauf schließen, wohin das Teilergebnis (in der Ergebnismatrix)
gehört.
Viel Erfolg!