Betriebssystem und Hardware

Warum wird beim Zurückkehren zum ursprünglichen Programm nach einer Interrupt- oder Ausnahmebehandlung ein spezieller Rückkehrbefehl (z. B. sret oder mret bei RISC-V) statt eines gewöhnlichen Rücksprungbefehls verwendet?

  1. AWeil der spezielle Befehl eine kürzere Befehlslänge hat
  2. BWeil neben der Rücksprungadresse auch Modus und Interrupt-Zustand wiederhergestellt werden
  3. CWeil der Handler die Rücksprungadresse mit einem gewöhnlichen Rücksprungbefehl nicht kennt
Antwort und Erläuterung anzeigen

Antwort: B. Weil neben der Rücksprungadresse auch Modus und Interrupt-Zustand wiederhergestellt werden

Tritt eine Ausnahme oder ein Interrupt auf, sichert die CPU in speziellen Registern die Rücksprungadresse sowie den bisherigen Betriebsmodus und ob Interrupts erlaubt waren, und wechselt in den privilegierten Modus. Bei der Rückkehr müssen diese gleichzeitig wiederhergestellt und in den Benutzermodus zurückgestuft werden, bevor zum ursprünglichen Befehl gesprungen wird; sonst läuft die Ausführung mit Privilegien weiter. Der spezielle Rückkehrbefehl erledigt dies unteilbar in einem Befehl. Es geht nicht um die Befehlslänge, und die Rücksprungadresse ist aus dem gesicherten Register bekannt.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Betriebssystem und Hardware

  1. Welcher Faktor vergrößert in Echtzeitsystemen am ehesten die Zeit vom Auftreten eines Interrupts bis zum Start des Handlers (Interrupt-Latenz)?
  2. Welche Aussage zum NMI (nicht maskierbarer Interrupt) ist richtig?
  3. Welche Verarbeitung ist in einem System mit mehreren Kernen nötig, wenn das Betriebssystem den Seitentabelleneintrag einer Seite umschreibt und die Zuordnung aufhebt?
  4. Was geschieht im Allgemeinen, wenn ein Programm auf eine vom Betriebssystem nicht zugewiesene Adresse zugreift?
  5. Welche Erklärung dessen, was beim Lesen von Dateiinhalten über einen Mechanismus wie mmap passiert, der eine Datei dem Speicher zuordnet, ist richtig?

Vergleiche zu diesem Thema