Dr. M. Grabert Abteilung Angewandte Informationsverarbeitung 30. April 2001
Johannes Mayer Blatt 1


[c]



Systemnahe Software (SS 2001)


Abgabetermin: 7. Mai 2001

Was muss ich tun, um an den Übungen teilnehmen zu können?

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 ...

1 Winzige Pseudo-Shell (8 Punkte)

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.

2 ps -l (2 Punkte)

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!


Johannes Mayer, 2001-04-30