|
|
Lab 2: HAL Scheduler & ShellAbgabeverfahrenIhre Lösung für die zweite Praktikumsaufgabe (Lab 2) sollte wieder eine GZip-Datei bestehend aus dem Quellcode und dessen ausführliche Beschreibung in Form eines Reports (index.html) sein. Die Abgabe erfolgt über das GOYA-System. Assignment 4Der Zugriff auf den HAL-Interpreter sollte nicht direkt erfolgen. Stattdessen erfolgt dieser über eine weitere Abstraktionsschicht, die sogenannte Process-Execution-Engine-Schicht (kurz PEE), die im Folgenden (in C/C++) zu implementieren ist. Aufgabe dieser Schicht ist neben der Prozessverwaltung (Erzeugung und Vernichtung) die Ausführung von Prozessen. Die HAL-PEE-Schicht sollte nach außen folgende Schnittstelle zur Verfügung stellen: <<interface>> PEE { HALProcess createProcess(FileName); void deleteProcess(HALProcess); void executeProcess(HALProcess) } Assignment 5Schreiben Sie eine Shell (C/C++) zur Ansteuerung Ihres HAL-Interpreters über die PEE. Diese Shell hat die Aufgabe, Kommandos zum Start eines Programms in Ihre HAL entgegen zu nehmen und dort auszuführen, z.B. übergibt der Befehl: $ max das HAL-Programm „max“ an die PEE. Hinweise Für die Lösung dieser Aufgabe benötigen Sie NICHT die Unix-Systemaufrufe der Fork, Wait, und Execute-Familie. Eine Lösung könnte wie folgt aussehen:
Assignment 6Im Folgenden soll die Arbeitsweise eines CPU-Schedulers betrachtet werden. Hierbei seien die folgende vier Prozesse gegeben:
In welcher Ausführungsreihenfolge werden die Prozesse unter Verwendung von:
ausgeführt? Assignment 7Die HAL-PEE sollte in der Lage sein, mehrere HAL-Programme nebenläufig auszuführen (multi-tasking). Hierzu ist eine Anpassung an der HAL-PEE-Schnittstelle vorzunehmen, sowie das Round-Robin Scheduling (RR) zu implementieren. Des Weiteren ist die HAL-Shell anzupassen: z.B. übergibt der Befehl: $ foo bar die HAL-Programme „foo“ und „bar“ an die PEE, welche sie dann nebenläufig ausführt. Hinweise Der Interpreter kann als eine abstrakte Maschine angesehen werden. Es ist daher zu jedem Zeitpunkt maximal eine Interpreter-Instanz vorhanden. Sollen mehrere HAL-Programme nebenläufig ausgeführt werden, so ist die einzige Interpreter-Instanz von den Programmen gemeinsam zu nutzen. Die Scheduling-Policy der PEE entscheidet dabei, welches Programm zu einem bestimmten Zeitpunkt vom Interpreter ausgeführt wird. Assignment 8Testen Sie Ihr Programm ausgiebig (Unittest). |
|