Suchen Sie sich eine Arbeitsgruppe mit 3 weiteren Mitstreitern und einen
Tutor, falls noch nicht geschehen! Machen Sie einen Termin mit dem Tutor
aus, mit dem Sie sich regelmässig einmal die Woche treffen. Melden Sie
sich für die Vorlesung via
https://slc.mathematik.uni-ulm.de
an und lösen Sie dieses leichte Übungsblatt. Das Programm sollte bis
nexten Montag, 16h s.t., im Briefkasten Ihres Tutors sein. Das Testat kann
auch nach den Übungen stattfinden.
Achtung: Sie brauchen für die Teilnahme an den Übungen ein Login auf
unseren Maschinen (Theseus, Thales, ...). Johannes Mayer ist Ihnen da
gerne behilflich ...
Sie haben die Aufgabe, eine winzige Shell zu entwickeln. Diese gibt
in einer Schleife immer wieder den Prompt aus und wartet dann auf die
Eingabe einer Kommandozeile von der Standardeingabe solange, bis das
Kommando ,,exit`` eingegeben wird. Wurde ein Kommando eingegeben, so
führt die Shell ein fork()
aus. Im Kindprozess wird dann
das eingegebene Kommando via system(...)
ausgeführt. Der Elternprozess,
d.h. die Shell selbst, wartet bis der Kindprozess terminiert ist und
gibt dann den nächsten Prompt aus. Das Warten soll via
Synchronisation der beiden Prozesse erfolgen. In Teil 2 des AI3-Skriptes
finden Sie im Kapitel 25.17 geeignete Mechanismen.
thales$ ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 8 S 509 16507 1370 0 51 20 ? 312 ? pts/63 0:06 bash
Sie sollten Ihrem Tutor die folgenden Ausgaben des ps -l
Befehls
erklären können: S, UID, PID, PPID, PRI, NI, TTY, TIME, CMD
Viel Erfolg!