Lab
2 |
Operating Systems Principles
Command Shell |
Systems Architecture Group |
Ablieferungstermin und erreichbare Punktzahl für diese Aufgabe, sowie
Voraussetzungen für die Prüfungszulassung entnehmen Sie bitte
http://sar.informatik.hu-berlin.de.
Lab 2 – Command Shell
Implementieren Sie eine einfache Shell mit folgender Funktionalität.
- Bereitstellen einer Kommandozeile und Ausführen eines Programms mit
Kommandozeilenparametern. Als Prompt soll das aktuelle Arbeitsverzeichnis
angezeigt werden (relativ zum Einstiegspunkt).
prompt> prog args
- Ausführen eines Programms im Hintergrund mit Rückgabe der Prozess-ID im
Erfolgsfall.
prompt> prog args & [pid]
- Wechseln des Arbeitsverzeichnisses.
prompt> cd dir
- Warten auf Prozesse.
- Warten auf eine Teilmenge der aktuell ausgeführten Hintergrundprozesse
pid1 ... pidN. Für jeden im Hintergrund
ausgeführten Prozess soll es möglich sein, den Rückgabewert via wait
abzufragen (unabhängig davon, in welcher Reihenfolge sich die Prozesse
beenden).
prompt> wait pid1 ... pidN
- Das "wait" soll mit Ctrl+C unterbrechbar sein.
- Wenn ein Prozess beendet wird soll möglichst viel Informationen über
den Endzustand ausgegeben werden (Grund des Terminierens, Rückgabewert,
etc.)
- Umleitung der Ausgabe eines Programms in die Standard-Eingabe
eines anderen Programms.
prompt> prog1 args | prog2 args
Hinweise
- Zur Vereinfachung nehmen wir an, dass Programmname und Argumente
leerzeichen- und sonderzeichen-freie Zeichenketten sind, also keine
Maskierung oder Anführungsstriche erfordern.
- Bitte verwenden Sie C/C++ unter Linux.
- Legen Sie der Lösung ein Makefile bei, das die Quellen automatisiert
übersetzt.
- Die Praktikumsfolien sind hier zu finden.
Die Abgabe der Lösung erfolgt über GOYA. Für Besonderheiten, aufgetretene
Probleme und anderweitige Anmerkungen benutzen sie bitte eine Datei index.html.
|