Friedrich-Alexander-Universität Univis FAU-Logo
Techn. Fakultšt Willkommen am Department Informatik FAU-Logo
Logo IMMD
Lehrstuhl für Informatik 4
Betriebssysteme
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2002/03  >  Betriebssysteme

Aufgabe 1: Ein-/Ausgabefunktionen für OO-Stubs

Lernziel

  • Kennenlernen der Entwicklungsumgebung
  • Auffrischen der Programmiersprache C++
  • hardwarenahe Programmierung (CGA Bildschirm und Tastatur)

Aufgabenbeschreibung

Für Testausgaben und zur Erleichterung der Fehlersuche soll das Übungsbetriebssystem OO-Stubs als allererstes Ausgabefunktionen erhalten.

Diese sollen ähnlich wie bei der C++ IO-Streams Bibliothek verwendet werden können und mit Hilfe der Klassen IO_Port, CGA_Screen, Stringbuffer, O_Stream und CGA_Stream implementiert werden. Dabei wird die Klasse IO_Port von uns vorgegeben.

Um die Ausgabefunktionen überall in OO-Stubs nutzen zu können, soll ein globales CGA_Stream Objekt kout erzeugt werden.

Um interaktive Anwendungsprogramme zu erlauben, sollt ihr zusätzlich noch die Klasse Keyboard_Controller vervollständigen, die neben Key in der Vorgabe enthalten ist.

Die Funktionsfähigkeit der genannten Klassen soll mit Hilfe eines aussagefähigen Testprogramms gezeigt werden. Dazu soll in dem Hauptprogramm main des "Betriebssystems" OO-Stubs das Objekt kout für verschieden formatierte Ausgaben genutzt werden. Für den Test der Tastatureingabe ist ein KeyboardController Objekt zu instanziieren. In einer Schleife sind dann Zeichen von der Tastatur abzufragen und mittels kout auszugeben.

Hinweis: In späteren Aufgaben soll Anwendungs- und Testcode in der Klasse Application (aus der Vorgabe) und nicht in main implementiert werden. Wer möchte kann dies natürlich auch bei Aufgabe 1 schon so handhaben.

Implementierungshinweise

Die Aufgabe besteht im Wesentlichen aus den zwei Teilen "Ausgaben" und "Eingaben", wobei der Test der "Eingaben" ohne "Ausgaben" nicht möglich ist. Die Teilaufgabe "Ausgaben" kann zudem in drei voneinander unabhängige Teile gegliedert werden, die sehr gut einzeln gelöst und getestet werden können. Daher empfehlen wir folgende Bearbeitungsreihenfolge:

Ausgaben

  1. Die Klasse CGA_Screen und in eine kleine Testanwendung.
  2. Die Klassen Stringbuffer und O_Stream und in eine kleine Testanwendung.
  3. Die Klasse CGA_Stream und das Testprogramm.

Eingaben

  1. Vervollständigung der Klasse Keyboard_Controller und die entgültige Testanwendung.

Vorgabe

Neben der ersten Vorgabe benötigt ihr für die Lösung der Aufgabe oostubs.tar.gz, das einige Tools, Assemblerdateien und ein Makefile enthält, mit deren Hilfe ihr euer Programm übersetzen und auf eine Bootdiskette schreiben könnt.

Hilfestellung



  Impressum Stand: 2002-10-20 12:34   AG