Friedrich-Alexander-Universität UnivisSuche FAU-Logo
Techn. Fakultšt Willkommen am Department Informatik FAU-Logo
Logo I4
Lehrstuhl für Informatik 4
Betriebssysteme
 
  Vorlesung
    - UnivIS-Infos
    - Inhalt
    - Folien
 
  Übungen
    - UnivIS-Infos
    - Inhalt
    - Ergänzendes Material
    - Terminübersicht
    - Aufgaben
       * Umgebung
       * Typische Fehler
       * A 1
       * A 2
       * A 3
       * A 4
       * A 5
       * A 6
       * A 7
 
  Evaluation
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2007/08  >  Betriebssysteme  >  Übungen  >  Aufgaben  >  Aufgabe 1

Aufgabe 1: Ausgabefunktionen und Tastaturansteuerung für OOStuBS

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 OOStuBS als erstes Ausgabefunktionen erhalten. Diese sollen ähnlich wie bei der C++-I/O-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 OOStuBS 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" OOStuBS das Objekt kout für verschieden formatierte Ausgaben genutzt werden. Für den Test der Tastatureingabe ist ein Keyboard_Controller-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 eine kleine Testanwendung.
  2. Die Klassen Stringbuffer und O_Stream und eine kleine Testanwendung.
  3. Die Klasse CGA_Stream und das Testprogramm.

Eingaben

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: 2007-11-23 13:13   OS, WH