Lernziele
In dieser Aufgabe …
- wiederholen die Studierenden die Simulation von
fork-Aufrufen.
Level 1: Wissen
Der folgende C-Code wird auf einem Unix-System ausgeführt.
pid_t pid1, pid2;
pid1 = fork();
pid2 = fork();
if (pid1>0 && pid2==0) {
if (fork()) {
fork();
}
}
Gehen Sie davon aus, dass alle fork-Systemaufrufe erfolgreich sind. Geben Sie die Gesamtzahl der Prozesse (einschließlich des initial erstellten Prozesses) an, die bei der Ausführung dieses Codes entstehen.
Hinweis: Für die Aufgabenstellung irrelevante Codeteile wurden weggelassen und können als korrekt angenommen werden.
Diese Aufgabe war Teil der Klausur im Sommersemester 2024 (Probeklausur).
Es entstehen insgesamt 6 Prozesse.
Der nachfolgende Graph visualisiert das Starten neuer Prozesse. Die bunten Kreise über den Zeilenzahlen markieren den jeweiligen Programmzähler. Dieser stoppt bei fork-Aufrufen sowie am Ende des Programms. Programmzähler desselben Prozesses haben die selbe Farbe. Für die Beantwortung der Fragestellung sind die Blattknoten maßgeblich: PID 0 (blau), PID 2 (grün), PID 5 (hellrot), PID 4 (orange), PID 1 (lila) und PID 3 (dunkelrot).

In dieser Aufgabe …
fork-Aufrufen.