OOStuBS - Technische Informatik II (TI-II)
2.4
|
Es soll eine einfache Interruptbehandlung für die Unterbrechungen durch Tastaturereignisse umgesetzt werden. Hierzu müssen die Klassen CPU (bereits implementiert), PIC, InterruptStorage, InterruptManager, Panic, Keyboard sowie die Funktion exception() implementiert oder erweitert werden. Um die entsprechenden Geräte überall in OOStuBS nutzen zu können, sollen von diesen Klassen die globale Objekte cpu
, iManager
und keyboard
angelegt werden. Dies ist bereits geschehen.
implementiert werden. Mit ihrer Hilfe und der Klasse CPU können Unterbrechungen von der Tastatur zugelassen werden (während des Boot-Vorgangs werden alle Unterbrechungen bei der CPU deaktiviert). Nach der Implementierung des PIC müsste automatisch bei jedem Betätigen einer Taste die Funktion exception aktiviert werden, da die Interruptdeskriptortabelle im Startup-Code entsprechend initialisiert wurde. Diese funktion wird initial den Text "unhandled interrupt xx ausgeben" damit kann die Impementierung von PIC leicht getestet werden (zumindestens einige Male).
iret
beendet wird. Die vorhandene Implementierung führt dazu, dass dies quasi der letzten schließenden Klammer der exception() entspricht.Im zweiten Schritt soll eine Infrastruktur geschaffen werden, die die Behandlung von Unterbrechungen durch zugeordnete Gerätetreiberobjekte ermöglicht. Zur Verwaltung dieser Treiberobjekte dient dabei die Klasse InterruptStorage, die für jeden möglichen Interrupt einen Zeiger auf ein InterruptHandler - Objekt bereithält. Die abstrakte Klasse InterruptHandler beschreibt dazu die Schnittstelle aller Treiber, die Interrupts behandeln.
Im nächsten Schritt sollen Unterbrechungen, die von der Tastatur ausgelöst werden, abgefangen und interpretiert werden. Als Ergebnis soll nach jedem Tastendruck das entsprechende Zeichen an einer festen Position auf dem Bildschirm dargestellt werden. Zusätzlich soll die Tastenkombination Ctrl-Alt-Delete einen Reboot auslösen. Hierzu soll die Klasse Keyboard implementiert werden, die den eigentlichen Tastaturtreiber darstellt.
Anschließend solltet ihr am oberen Bildschirmrand eine Laufzeile mit Sternen sehen und am unteren Bildschirmrand Tastatureingaben machen können. Allerdings werden nach kurzer Zeit merkwürdige Artefakte auftreten. Wo könnten diese her kommen? Was kann gegen sie unternommen werden?