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.

  1. Bereitstellen einer Kommandozeile und Ausführen eines Programms mit Kommandozeilenparametern. Als Prompt soll das aktuelle Arbeitsverzeichnis angezeigt werden (relativ zum Einstiegspunkt).

    prompt> prog args
     
  2. Ausführen eines Programms im Hintergrund mit Rückgabe der Prozess-ID im Erfolgsfall.

    prompt> prog args &
    [pid]
     
  3. Wechseln des Arbeitsverzeichnisses.

    prompt> cd dir
     
  4. Warten auf Prozesse.
     
    1. 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
       
    2. Das "wait" soll mit Ctrl+C unterbrechbar sein.
       
    3. Wenn ein Prozess beendet wird soll möglichst viel Informationen über den Endzustand ausgegeben werden (Grund des Terminierens, Rückgabewert, etc.)
       
  5. 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.


Legal disclaimer.   © 2018 Humboldt-Universität zu Berlin, Computer Science Department, Systems Architecture Group.Contact: sar@informatik.hu-berlin.de .