some corrections for q01

This commit is contained in:
Christoph J. Scherr 2024-04-11 13:17:45 +02:00
parent f34d25321c
commit eecf2f96f7
1 changed files with 23 additions and 11 deletions

View File

@ -19,21 +19,27 @@ moderne Rechner haben mehrere Levels von Caches. Dadurch entsteht ein
Einheitliches Zugriffsmuster und die Komplexität des Computersystems wird Einheitliches Zugriffsmuster und die Komplexität des Computersystems wird
reduziert. reduziert.
-> Die Speicher haben nur verschiedene Zugriffszeiten, logisch betrachtet ist es
also egal in welchem Speicher die Daten sind.
**4. Inwiefern unterscheidet sich unser Rechnermodell von der von-Neumann-Architektur?** **4. Inwiefern unterscheidet sich unser Rechnermodell von der von-Neumann-Architektur?**
Moderne Rechner haben einen Memory Controller und Caches. Moderne Rechner haben einen Memory Controller und Caches. Die CPU hat außerdem
Register, Program Counter, und vieles mehr.
**5. Welche Schritte werden durchlaufen, damit ein Java-Programm ausgeführt werden kann?** **5. Welche Schritte werden durchlaufen, damit ein Java-Programm ausgeführt werden kann?**
Das Java-Programm vorkompiliert. Das Betriebssystem führt eine JVM Instanz auf, Das Java-Programm vorkompiliert. Das Betriebssystem führt eine JVM Instanz aus,
welche dann das vorkompilierte Java Programm ausführt. Die JVM Instanz generiert welche dann das vorkompilierte Java Programm ausführt. Die JVM Instanz generiert
dabei anhand des Java Programms die Instruktionen für die CPU daraus generiert dabei anhand des Java Programms die Instruktionen für die CPU daraus generiert
und diese dann ausführen lässt. und diese dann ausführen lässt.
Das eigentliche Programm ist die JVM die den Java Bytecode interpretiert.
**6. Welche Schritte werden durchlaufen, um einen einzelnen Maschinenbefehl auszuführen?** **6. Welche Schritte werden durchlaufen, um einen einzelnen Maschinenbefehl auszuführen?**
* Fetch -- Die Instruktion wird aus dem Speicher geladen * Fetch -- die Instruktion wird aus dem Speicher geladen.
* Inkrementiere den IP/PC -- Dammit die nächste Instruktion geladen werden kann * Inkrementiere den IP/PC -- damit die nächste Instruktion geladen werden kann.
* Decode -- Interpretiere die Instruktion und Argumente * Decode -- Interpretiere die Instruktion und Argumente
* Execute -- Führe die Instruktion aus * Execute -- Führe die Instruktion aus
* Memory Access -- Falls notwendig greife auf den Speicher zu * Memory Access -- Falls notwendig greife auf den Speicher zu
@ -41,9 +47,14 @@ und diese dann ausführen lässt.
**7. Wie viele Takte dauert die Ausführung eines einzelnen Maschinenbefehls?** **7. Wie viele Takte dauert die Ausführung eines einzelnen Maschinenbefehls?**
In der Regel dauert die Ausführung von Instruktionen einen Takt lang. Komplexere In der Regel dauert die Ausführung von einer Instruktion fünf (5) Takte lang. Komplexere
Instruktionen können länger dauern. Instruktionen können länger dauern.
(Die Pipeline sorgt dafür, dass Instruktionen schneller ausgeführt werden)
-> Wie kann die Pipeline Instruktionen die 5 Takte braucht dazu bringen, dass
eine Instruktion pro Takt ausgeführt wird?
**8. Suchen Sie 3 Befehle der x86-Architektur heraus** **8. Suchen Sie 3 Befehle der x86-Architektur heraus**
* `mov` -- Daten zu oder aus Registern verschieben * `mov` -- Daten zu oder aus Registern verschieben
@ -64,13 +75,14 @@ Instruktionen können länger dauern.
**10. Welche Probleme kann es geben, wenn auf einem System mehrere Programme gleichzeitig laufen sollen?** **10. Welche Probleme kann es geben, wenn auf einem System mehrere Programme gleichzeitig laufen sollen?**
* Programme "streiten" sich um Ressourcen * Programme "streiten" sich um Ressourcen.
* Programme greifen auf den Speicher eines anderen Programmes zu und verändern dort Daten * Programme greifen auf den Speicher eines anderen Programmes zu und verändern dort Daten.
* Programme müssen aufeinander warten, weil eine Ressource nur begrenzt verfügbar ist * Programme müssen aufeinander warten, weil eine Ressource nur begrenzt verfügbar ist.
* Ein Programm muss zu lange auf Ressourcen warten, der Programmkontext ist dann * Programme müssen zu lange auf Ressourcen warten, der Programmkontext ist dann veraltet.
veraltet
* … * …
-> Race Condition
**11. Was ist die Aufgabe von Betriebssystemen?** **11. Was ist die Aufgabe von Betriebssystemen?**
Das Betriebssystem hat die Aufgabe, die Ressourcen (seien diese Software oder Das Betriebssystem hat die Aufgabe, die Ressourcen (seien diese Software oder
@ -110,7 +122,7 @@ zugreifen und so undefiniertes Verhalten erzeugen.
**18. Warum werden die Befehle aus Frage 8 im User- bzw. Kernelmodus ausgeführt?** **18. Warum werden die Befehle aus Frage 8 im User- bzw. Kernelmodus ausgeführt?**
* `mov` -- Daten zu oder aus Registern verschieben -- Jedes Programm braucht Daten im Register, um Aktionen ausführen zu können * `mov` -- Daten zu oder aus Registern verschieben -- jedes Programm braucht Daten im Register, um Aktionen ausführen zu können
* `add` -- Daten addieren -- Addition ist eine grundlegende Rechenoperation * `add` -- Daten addieren -- Addition ist eine grundlegende Rechenoperation
* `sub` -- Daten subtrahieren -- Subtraktion ist eine grundlegende Rechenoperation * `sub` -- Daten subtrahieren -- Subtraktion ist eine grundlegende Rechenoperation