Lernziele
In dieser Aufgabe …
- vergegenwärtigen sich die Studierenden, welche prozessbezogenen Metadaten beim Kontextwechsel beachtet werden müssen.
- berechnen und interpretieren die Studierenden die Kosten von Rechenoperationen.
In der Vorlesung wurde das Konzept des Kontextwechsels (en. Context Switch) vorgestellt. Um die Auswirkungen von Kontextwechseln zu verdeutlichen, sollen Sie eine vereinfachte Simulation durchführen. Wir nehmen folgende Eigenschaften des Prozessors an:
Level 1: Wissen
Bei einem Kontextwechsel muss der Prozessor alle für den Prozess relevanten Eigenschaften zwischenspeichern. Welche Informationen müssen gespeichert werden und wo werden diese in der Regel gespeichert?
x0 ist immer Null, muss also nicht gesichert werden)typedef struct {
// Register:
uint32_t pc; // Program Counter
uint32_t sp; // Stack Pointer
// …
// Metainformationen:
enum pstate state; // Prozesszustand
// …
} PCB;
Level 3: Anwenden
Berechnen Sie unter Annahme der oben genannten Systemeigenschaften, welche Zeit ein Kontextwechsel in Anspruch nimmt, also die Zeit zwischen dem Anstoß des Kontextwechsels und dem Beginn der Ausführung des nächsten Prozesses. Gehen Sie für diese Aufgabe davon aus, dass ein Speicherzugriff keine Verzögerungen verursacht.
Berechnung der benötigten Taktzyklen für einen Kontextwechsel:
sw): 32 Register · 5 Taktzyklen pro Instruktion = 150 Taktzyklenlw): 32 Register · 5 Taktzyklen pro Instruktion = 150 TaktzyklenEin Taktzyklus dauert $\frac{1}{2 \times 10^9} = 0.5$ ns.
Ein Kontextwechsel dauert also $325 \times 0.5$ ns = 162.5 ns.
Hinweis: Wir nehmen in dieser Lösung vereinfachend an, dass die Ausführung des Privilegienwechsels (mret-Instruktion) nur 5 Taktzyklen benötigt. In der Realität umfasst dies mehrere Instruktionen und dauert somit länger.
Level 2: Verstehen
Wie schnell wäre der Kontextwechsel bei einem 100-MHz-System (z. B. bei einem eingebetteten System)?
Der Kontextwechsel dauert 20-mal so lange wie mit 2 GHz, also 3.250 ns = 3,25 µs.
In dieser Aufgabe …