Betriebssystembau (BSB)
Wintersemester 2007/2008

Eine Vorlesung mit praktischen Übungen der Arbeitsgruppe Eingebettete Systemsoftware am Lehrstuhl 12 external link.

Der Gewinner 2008 des Anwendungs-Wettbewerbs (Aufgabe 7): Patrick Beckmann mit der OOStuBS-Variante des Klassikers "Lunar Lander"

Termine

Zeit Raum Dozent(en)
Vorlesung: Di. 16:15-17:45 16:00-17:30 OH14, E23 Olaf Spinczyk
Übung: Do. 10:15-11:45 oder Do. 12:15-13:45 OH16, E07 Michael Engel
Rechnerübung: Mo. 10:15-11:45 oder Di. 10:15-11:45 OH14, E37 und E38 Horst Schirmeier, Jochen Streicher

Inhalt

Ziel der Lehrveranstaltung ist die Vermittlung von konzeptionellen Grundlagen und wichtigen Techniken, die für den Bau eines Betriebssystems erforderlich sind. In der vorlesungsbegleitenden Übung werden diese Kenntnisse praktisch angewendet, indem ein einfaches PC Betriebssystem in kleinen Arbeitsgruppen von Grund auf neu entwickelt wird. Um dies zu bewerkstelligen, sind fundierte Kenntnisse über Aufbau und Funktionsweise der PC Hardware erforderlich, die ebenfalls in der Lehrveranstaltung vermittelt werden. Angesprochen werden zum Beispiel das Schutzkonzept der IA-32 Architektur, aktuelle PC-Bussysteme und moderne Multi-Prozessor Interrupt Systeme. Gleichzeitig werden Grundlagen aus dem Betriebssystembereich wie Unterbrechungen, Synchronisation und Ablaufplanung, die aus früheren Veranstaltungen weitgehend bekannt sein sollten, wiederholt und vertieft.

Rechnerübung

In den Rechnerübungen wird ein kleines einfaches Betriebssystem in Gruppen von jeweils drei Studenten gemeinsam entwickelt. Als Sprachen kommen dabei vor allem C++, aber in besonderen Fällen auch C und Assembler zum Einsatz. Es werden Programmieraufgaben im Abstand von je zwei Wochen gestellt, die aufeinander aufbauen und daher auch alle bearbeitet werden müssen. Die Abnahme dieser erfolgt in der Rechnerübung durch Horst oder Jochen.

Tafelübung

In der Tafelübung werden die einzelnen Rechnerübungsaufgaben vorbesprochen und Grundlagen vermittelt, die zur Lösung dieser notwendig sind.

Material

Vorlesungsfolien

Datum Thema Folien (2x2)
23.10.2007 Einführung 01-Einfuehrung-2x2.pdf
30.10.2007 Einstieg in die Betriebssystementwicklung 02-Entwicklung-2x2.pdf
06.11.2007 Unterbrechungen - Hardware 03-IRQ-HW-2x2.pdf
13.11.2007 Unterbrechungen - Software 04-IRQ-SW-2x2.pdf
20.11.2007 Unterbrechungen - Synchronisation 05-IRQ-Sync-2x2.pdf
27.11.2007 Programmiermodell der Intel IA-32 Architektur 06-IA32-2x2.pdf
04.12.2007 Koroutinen und Fäden 07-Faden-2x2.pdf
11.12.2007 Kontrollflussverwaltung 08-Sched-2x2.pdf
18.12.2007 Architekturen 09-Architektur-2x2.pdf
08.01.2008 Fadensynchronisation 10-Fadensync-2x2.pdf
15.01.2008 Interprozesskommunikation 11-IPC-2x2.pdf
22.01.2008 PC-Bussysteme und deren Programmierung 12-Busse-2x2.pdf
29.01.2008 Treiber 13-Treiber-2x2.pdf
05.02.2008 Ausblick 14-Ausblick-2x2.pdf
  Literaturempfehlungen 99-Literatur-2x2.pdf

Die Folien befinden sich zusätzlich im Format 1x1 (eine Folie pro Seite) im Verzeichnis /home/bsb/folien/ im FBI-Pool.

Übungsfolien

Thema Folien (2x2)
Einführung/C++ BSB-Uebung-1-2x2.pdf
PC-Tastatur BSB-Uebung-2-2x2.pdf
IRQ-Behandlung in OO-Stubs BSB-Uebung-3-2x2.pdf
Vertiefung Interrupts BSB-Uebung-4-2x2.pdf
Synchronisation, Pro-/Epilog-Modell BSB-Uebung-5-2x2.pdf
Assemblerprogrammierung BSB-Uebung-6-2x2.pdf
Multitasking - Coroutinen BSB-Uebung-7-2x2.pdf
Betriebssystemfäden BSB-Uebung-8-2x2.pdf
Zeitscheibenscheduling BSB-Uebung-9-2x2.pdf
Synchronisation BSB-Uebung-10-2x2.pdf
  BSB-Uebung-10a-2x2.pdf
Ereignisbearbeitung und Synchronisation BSB-Uebung-11-2x2.pdf
OOstuBS-Anwendung BSB-Uebung-12-2x2.pdf

Übungsaufgaben

An dieser Stelle findet ihr die Aufgaben zu den Rechnerübungen von Betriebssystembau. Zusätzlich zur Aufgabenstellung gibt es auch Vorgaben, die Teilimplementierungen für jede Klasse enthalten. Für viele Klassen ist nur ein Klassenrumpf enthalten und ihr müsst die Klasse vervollständigen. Andere Klassen sind komplett vorgeben (meist Klassen, die kompliziert zu implementieren sind, aber eigentlich langweilige Dinge tun).

Die Vorgaben liegen im Projektverzeichnis zur Vorlesung unter /home/bsb/vorgaben als gzip komprimierte tar Archive (Dateiendung .tar.gz, auspacken mit tar xvfz Dateiname). Jede Vorgabe enthält alle Dateien der vorherigen Vorgabe(n).

Hinweise zur Integration und zum Test eurer Lösungen in das vorgegebene System findet ihr in der Beschreibung der OOSTUBS Entwicklungsumgebung. Zur Diskussion der Aufgaben steht u.a. ein INPUD-Forum zur Verfügung.

Nr. Kurzbeschreibung Ausgabe Abgabe Vorgabe(n)
1 Ausgabefunktionen und Tastaturansteuerung für OO-Stubs 29.10.07 12./13.11.07 /home/bsb/vorgaben/oostubs.tar.gz
/home/bsb/vorgaben/vorgabe1.tar.gz
2 Interruptbehandlung für OO-Stubs 08.11.07 26./27.11.07 /home/bsb/vorgaben/vorgabe2.tar.gz
3 Interruptsynchronisation für OO-Stubs mit dem Pro-/Epilogmodell 22.11.07 10./11.12.07 /home/bsb/vorgaben/vorgabe3.tar.gz
4 Prozessumschaltung für OO-Stubs 06.12.07 07./08.01.08
14./15.01.08
/home/bsb/vorgaben/vorgabe4.tar.gz
5 Zeitscheibenscheduling für OO-Stubs 20.12.07 21./22.01.08 /home/bsb/vorgaben/vorgabe5.tar.gz
6 Ereignisbearbeitung und Synchronisation 17.01.08 04./05.02.08 /home/bsb/vorgaben/vorgabe6.tar.gz
7 Eine OO-Stubs-Anwendung (nicht für Schein erforderlich) 31.01.08 Ende März /home/bsb/vorgaben/vorgabe7-diff.tar.gz

Evaluation

Die Ergebnisse der Umfrage finden sich unter diesem Link.

Lehrveranstaltung "Betriebssystembau", Olaf Spinczyk, letzte Änderung: