Übungen zu BS - Aufgaben (WS 2013/14)
Implementierung einer Abstraktion fuer den Prozessor. Mehr ...
#include <cpu.h>
Öffentliche, statische Methoden | |
static void | enable_int () |
Erlauben von (Hardware-)Interrupts. | |
static void | disable_int () |
Interrupts werden ignoriert/verboten. | |
static void | idle () |
Prozessor bis zum nächsten Interrupt anhalten. | |
static void | halt () |
Prozessor anhalten. |
Ausführliche Beschreibung
Implementierung einer Abstraktion fuer den Prozessor.
Derzeit wird angeboten: Interrupts zuzulassen, zu verbieten, den Prozessor in den Haltmodus zu schicken oder ganz anzuhalten.
Dokumentation der Elementfunktionen
|
inlinestatic |
Interrupts werden ignoriert/verboten.
Verhindert eine Reaktion auf Unterbrechungen, indem die Assembleranweisung cli ausgeführt wird.
|
inlinestatic |
Erlauben von (Hardware-)Interrupts.
Lässt die Unterbrechungsbehandlung zu, indem die Assembleranweisung sti ausgeführt wird.
|
inlinestatic |
Prozessor anhalten.
Hält den Prozessor an. Intern werden dazu die Interrupts mit cli gesperrt und anschließend der Prozessor mit hlt angehalten. Da der Haltezustand nur durch einen Interrupt verlassen werden könnte, ist somit garantiert, dass die CPU bis zum nächsten Kaltstart "steht". Das Programm kehrt aus halt() nie zurück. In einer Multiprozessorumgebung hat die Ausführung des Halt-Befehls nur Auswirkungen auf die CPU, die ihn ausführt. Die anderen CPUs laufen jedoch weiter.
|
inlinestatic |
Prozessor bis zum nächsten Interrupt anhalten.
Versetzt den Prozessor in den Haltezustand, aus dem er nur durch einen Interrupt wieder erwacht. Intern werden dazu die Interrupts mit sti freigegeben und der Prozessor mit hlt angehalten. Intel garantiert, dass die Befehlsfolge sti hlt atomar ausgeführt wird.
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:
- machine/cpu.h