From ce352b7d8b699baad3633cc9725dae9026ad6ffa Mon Sep 17 00:00:00 2001
From: Philip Kaludercic <philip.kaludercic@fau.de>
Date: Tue, 13 Feb 2024 17:27:46 +0100
Subject: [PATCH] Update answer to the ss23 question about privileged
 instructions

---
 ss23.q | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/ss23.q b/ss23.q
index 6ce7ae0..a3f81b5 100644
--- a/ss23.q
+++ b/ss23.q
@@ -1,14 +1,14 @@
 # https://sys.cs.fau.de/extern/lehre/ws23/sp2/pruefung/klausuren/2023s-SP-Klausur_www.pdf
 
 0 Man unterscheidet zwischen privilegierten und nicht-privilegierten Maschinenbefehlen. Welche Aussage ist richtig? (2023-07)
-? Privilegierte Maschinenbefehle dürfen in Anwendungsprogrammen grundsätzlich nicht verwendet werden.
-  Abhängig davon, was man unter "grundsätzlich" versteht, sollte es eigentlich heißen, dass man Privilegierte Maschinenbefehle nicht verwenden darf.
+- Privilegierte Maschinenbefehle dürfen in Anwendungsprogrammen grundsätzlich nicht verwendet werden.
+  Nein, diese werden nicht direkt von Anwendungsprogrammen benutzt, sondern sind dem Betriebsystem vorenthalten, damit dieses sinnvoll Ressourcen virtualisieren und schützen kann.
 - Die Benutzung eines privilegierten Maschinenbefehls in einem Anwendungsprogramm führt zu einer asynchronen Programmunterbrechung.
   Nein, es würde zu einer _syncrhonen_ Programmunterbrechung führen, weil diese direkt durch den Versuch den Befehl zu interpretieren ausgelöst werden würde.
 ? Mit nicht-privilegierten Befehlen ist der Zugriff auf Geräteregister grundsätzlich nicht möglich.
   Abhängig davon, was man unter "grundsätzlich" versteht; auf Intel CPUs werden hierzu gesonderte Befehle benutzt, aber _grundsätzlich_ könnte eine Rechnerarchitektur auch durch Speicherschutz einen nicht-privilegierten Prozess daran hindern mittels nicht-priviligierten Befehlen auf Geräteregister zuzugreifen.
-- Privilegierte Maschinenbefehle können durch Betriebssystemprogramme implementiert werden.
-  Nein, diese werden nicht durch das Betriebsystem(programme) implementiert, sondern werden von der CPU ausführt, angenommen es befindet sich im richtigen Privilegienmodus.
++ Privilegierte Maschinenbefehle können durch Betriebssystemprogramme implementiert werden.
+  Ja, hier muss an das "Multilevel Machines" Model von [Tannenbaum](https://csc-knu.github.io/sys-prog/books/Andrew%20S.%20Tanenbaum%20-%20Structured%20Computer%20Organization.pdf#page=30) denken, wo jede Schicht der Implementierung zwischen einer _problemorientierte Programmiersprachenebene_ und _digitale Logikebene_ als Interpretation odere Implementierung einer Virtuellen Machine angesehen wird.
 .
 
 0 Was passiert, wenn Sie in einem C-Programm über einen ungültigen Zeiger versuchen auf Speicher zuzugreifen? (2023-07)
-- 
GitLab