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