|
|
@@ -1,17 +1,11 @@
|
|
1
|
|
-### Antworten zu Simulation 1
|
|
2
|
|
-#### Aufgabe 1
|
|
3
|
|
-Die CPU sollte 100% der Zeit in Nutzung sein, da wir beim Aufruf
|
|
4
|
|
-> ./process-run.py -l 5:100,5:100.
|
|
5
|
|
-angeben, dass 100% der ausgeführten Befehle CPU-Befehle sein sollen.
|
|
|
1
|
+# hw1 - Simulation 1 - Antworten
|
|
6
|
2
|
|
|
7
|
|
-#### Aufgabe 2
|
|
8
|
|
-Zuerst werden vier CPU-Befehle in Prozess 0 ausgeführt. Danach ist Prozess 0 beendet, Prozess 1 bereitet sich auf I/O vor und braucht dafür eine CPU-Instruktion. Prozess 1 muss dann auf die Abwicklung des I/Os warten und tut deswegen vier Instruktionen lang nichts. Anschließend läuft eine leere Instruktion, in der weder I/O noch CPU arbeiten, weil die I/O-Instruktion beendet wurde. Wir gehen daher davon aus, dass die Ausführung der beiden Prozesse 10 Instruktionen braucht.
|
|
|
3
|
+1. Die CPU sollte 100% der Zeit in Nutzung sein, da wir beim Aufruf `./process-run.py -l 5:100,5:100` angeben, dass 100% der ausgeführten Befehle CPU-Befehle sein sollen.
|
|
9
|
4
|
|
|
10
|
|
-#### Aufgabe 3
|
|
11
|
|
-Die Änderung der Reihenfolge der auszuführenden Prozesse hat zur Folge, dass die CPU auch rechnen kann, solange sie auf I/O wartet. Daher wird nur eine Instruktion zum Einleiten des I/Os benötigt, dann laufen vier Instruktionen, in denen sowohl CPU (für Prozess 1) und I/O (für Prozess 0) arbeiten, und abschließend vergeht noch eine leere Instruktion aufgrund des I/Os. Daher braucht die Ausführung in dieser Reihenfolge nur 6 Instruktionen.
|
|
|
5
|
+2. Zuerst werden vier CPU-Befehle in Prozess 0 ausgeführt. Danach ist Prozess 0 beendet, Prozess 1 bereitet sich auf I/O vor und braucht dafür eine CPU-Instruktion. Prozess 1 muss dann auf die Abwicklung des I/Os warten und tut deswegen vier Instruktionen lang nichts. Anschließend läuft eine leere Instruktion, in der weder I/O noch CPU arbeiten, weil die I/O-Instruktion beendet wurde. Wir gehen daher davon aus, dass die Ausführung der beiden Prozesse 10 Instruktionen braucht.
|
|
12
|
6
|
|
|
13
|
|
-#### Aufgabe 4
|
|
14
|
|
-Mit dieser Flag wird die CPU nicht parallel zum I/O arbeiten können. Deswegen wird die Ausführung wie bei Aufgabe 2 ablaufen, jedoch werden die Prozesse vertauscht abgearbeitet, also ein Takt Einleitung des I/Os, vier Takte I/O und dann 4 Takte CPU.
|
|
|
7
|
+3. Die Änderung der Reihenfolge der auszuführenden Prozesse hat zur Folge, dass die CPU auch rechnen kann, solange sie auf I/O wartet. Daher wird nur eine Instruktion zum Einleiten des I/Os benötigt, dann laufen vier Instruktionen, in denen sowohl CPU (für Prozess 1) und I/O (für Prozess 0) arbeiten, und abschließend vergeht noch eine leere Instruktion aufgrund des I/Os. Daher braucht die Ausführung in dieser Reihenfolge nur 6 Instruktionen.
|
|
15
|
8
|
|
|
16
|
|
-#### Aufgabe 5
|
|
17
|
|
-Der Ablauf wird genau der gleiche wie bei Aufgabe 3 sein, da per Standard beim Warten auf I/O zum anderen Prozess gewechselt wird.
|
|
|
9
|
+4. Mit dieser Flag wird die CPU nicht parallel zum I/O arbeiten können. Deswegen wird die Ausführung wie bei Aufgabe 2 ablaufen, jedoch werden die Prozesse vertauscht abgearbeitet, also ein Takt Einleitung des I/Os, vier Takte I/O und dann 4 Takte CPU.
|
|
|
10
|
+
|
|
|
11
|
+5. Der Ablauf wird genau der gleiche wie bei Aufgabe 3 sein, da per Standard beim Warten auf I/O zum anderen Prozess gewechselt wird.
|