generated from PlexSheep/baserepo
some corrections for q01
This commit is contained in:
parent
f34d25321c
commit
eecf2f96f7
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue