diff --git a/ss23.q b/ss23.q index 6ce7ae0b2aad4d2df76f66d86bdcadbe5fc22b85..a3f81b54dbd86f298b7b1c8a7fc2d7074ff4461e 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)