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
|
||||
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?**
|
||||
|
||||
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?**
|
||||
|
||||
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
|
||||
dabei anhand des Java Programms die Instruktionen für die CPU daraus generiert
|
||||
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?**
|
||||
|
||||
* Fetch -- Die Instruktion wird aus dem Speicher geladen
|
||||
* Inkrementiere den IP/PC -- Dammit die nächste Instruktion geladen werden kann
|
||||
* Fetch -- die Instruktion wird aus dem Speicher geladen.
|
||||
* Inkrementiere den IP/PC -- damit die nächste Instruktion geladen werden kann.
|
||||
* Decode -- Interpretiere die Instruktion und Argumente
|
||||
* Execute -- Führe die Instruktion aus
|
||||
* 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?**
|
||||
|
||||
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.
|
||||
|
||||
(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**
|
||||
|
||||
* `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?**
|
||||
|
||||
* Programme "streiten" sich um Ressourcen
|
||||
* 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
|
||||
* Ein Programm muss zu lange auf Ressourcen warten, der Programmkontext ist dann
|
||||
veraltet
|
||||
* Programme "streiten" sich um Ressourcen.
|
||||
* 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 zu lange auf Ressourcen warten, der Programmkontext ist dann veraltet.
|
||||
* …
|
||||
|
||||
-> Race Condition
|
||||
|
||||
**11. Was ist die Aufgabe von Betriebssystemen?**
|
||||
|
||||
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?**
|
||||
|
||||
* `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
|
||||
* `sub` -- Daten subtrahieren -- Subtraktion ist eine grundlegende Rechenoperation
|
||||
|
||||
|
|
Loading…
Reference in New Issue