From f34d25321c032c02f20621aefeb170cdd789570d Mon Sep 17 00:00:00 2001 From: PlexSheep Date: Thu, 4 Apr 2024 20:00:11 +0200 Subject: [PATCH] questions 01 --- questions/01.md | 122 ++++++++++++++++++++++++++++++++++++++++++++ questions/README.md | 2 + 2 files changed, 124 insertions(+) create mode 100644 questions/01.md create mode 100644 questions/README.md diff --git a/questions/01.md b/questions/01.md new file mode 100644 index 0000000..6672b67 --- /dev/null +++ b/questions/01.md @@ -0,0 +1,122 @@ +# Fragen zum 1. Kapitel + +**1. Was sind die Komponenten der von-Neumann-Architektur?** + +Die von-Neumann-Architektur besteht aus einer CPU mit Steuer- und Rechenwerk, +einem einzelnen Speicher für Programmcode und Daten, und verschiedenen IO +Geräten wie Massenspeicher und Peripheriegeräte. Die Systeme werden mit einem +Bus-System verbunden. + +**2. Was unterscheidet die von-Neumann-Architektur von der Harvard-Architektur?** + +Die Harvard-Architektur hat im Gegensatz zur von-Neumann-Architektur getrennten +Speicher für Programmcode und Daten. + +**3. Wieso ist es gerechtfertigt, komplexe moderne Speicherstrukturen als einen Speicher zu behandeln?** + +Streng genommen gibt es in der von-Neumann-Architektur nur einen Speicher, aber +moderne Rechner haben mehrere Levels von Caches. Dadurch entsteht ein +Einheitliches Zugriffsmuster und die Komplexität des Computersystems wird +reduziert. + +**4. Inwiefern unterscheidet sich unser Rechnermodell von der von-Neumann-Architektur?** + +Moderne Rechner haben einen Memory Controller und Caches. + +**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, +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. + +**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 +* Decode -- Interpretiere die Instruktion und Argumente +* Execute -- Führe die Instruktion aus +* Memory Access -- Falls notwendig greife auf den Speicher zu +* Write Back -- Schreibe ggf. das Ergebnis in ein Register + +**7. Wie viele Takte dauert die Ausführung eines einzelnen Maschinenbefehls?** + +In der Regel dauert die Ausführung von Instruktionen einen Takt lang. Komplexere +Instruktionen können länger dauern. + +**8. Suchen Sie 3 Befehle der x86-Architektur heraus** + +* `mov` -- Daten zu oder aus Registern verschieben +* `add` -- Daten addieren +* `sub` -- Daten subtrahieren + +**9. Führen Sie folgendes Programm mit dem Adventskalender-Beispiel aus der Vorlesung durch:** + +```pseudocode +01 LOAD <<17>> → [R1] ; lade Tür 17 zu Register 1 +02 LOAD <13> → [R2] ; lade Tür 13 zu Register 2 +03 ADD [R1], [R2] → [O1] ; addiere Register 1 und 2 und schreibe zu O1 +04 WRITE [O1] → I/O ; schreibe O1 in irgendein IO Gerät +05 MUL [R1], [R2] → [O1] ; multipliziere Register 1 und 2 und schreibe zu O1 +06 WRITE [O1] → I/O ; schreibe O1 in irgendein IO Gerät +``` +(siehe Kommentare, das ist Pseudocode und damit nicht ausführbar) + +**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 +* … + +**11. Was ist die Aufgabe von Betriebssystemen?** + +Das Betriebssystem hat die Aufgabe, die Ressourcen (seien diese Software oder +Hardware Ressourcen) des Systems zu verwalten und an die unprivilegierten +Prozesse zu verteilen. Moderne Betriebssysteme haben oft noch deutlich mehr +Aufgaben. + +**12. Was besagt das Highlander-Prinzip?** + +"There can only be one." + +**13. Warum muss für Betriebssysteme das Highlander-Prinzip gelten?** + +Es kann pro System nur ein Betriebssystem geben. + +**14. Geben Sie drei Beispiele für Software-Betriebsmittel** + +Dateien, Netzwerkssockets und Threads + +**15. Warum ist die CPU ein entziehbares und exklusives Betriebsmittel?** + +Prozesse schreiten genau dann voran, wenn die CPU ihre Instruktionen +bearbeitet. Wenn nicht, wartet das Programm darauf, dass es wieder CPU Zeit +bekommt. + +**16. Warum muss das Betriebssystem vor Anwendungssoftware abgeschottet werden?** + +Das Betriebssystem hat besondere Rechte die Hardware zu manipulieren, z.B. das +Gerät auszuschalten. Außerdem kann das Betriebssystem jede Datei, jeden Prozess +auf dem Gerät einsehen. Anwendersoftware sollte diese Möglichkeit nicht haben, +damit keine unnötigen Risiken eingegangen werden. + +**17. Warum müssen Anwendungen untereinander abgeschottet werden?** + +Ansonsten könnten Programme versehentlich auf den Speicher anderer Programme +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 +* `add` -- Daten addieren -- Addition ist eine grundlegende Rechenoperation +* `sub` -- Daten subtrahieren -- Subtraktion ist eine grundlegende Rechenoperation + +**19. Warum ist eine Trennung zwischen User- und Kernelmodus ohne Hilfe der Hardware nicht möglich?** + +Jedes Programm kann Instruktionen an die CPU geben, welche dort ausgeführt +werden. Instruktionen an sich haben keine Daten darüber, ob sie privilegiert +sind oder nicht, daher muss die Hardware zur unterscheidung der Rechte irgendwo +speichern, ob Instruktionen privilegiert ausgeführt werden, oder nicht. diff --git a/questions/README.md b/questions/README.md new file mode 100644 index 0000000..47e27b9 --- /dev/null +++ b/questions/README.md @@ -0,0 +1,2 @@ +This directory contains questions and solutions for each chapter. The +questions are in German, and will also be answered in German.