Betriebssysteme II (2011)

Sommersemester 2011

Prof. Dr. Andreas Polze
Dipl.-Inf. Alexander Schmidt
Dipl.-Inf. Bernhard Rabe

Inhalt der Vorlesung

Die Lehrveranstaltung richtet ihren Schwerpunkt auf Technologien in Standard-Betriebssystemen (general-purpose operating systems) und diskutiert Techniken und Ansätze am Beispiel der Microsoft Windwos NT/2000/XP-Betriebssystemfamilie. Diese Ansätze werden in Relation gesetzt zu Lösungen, die in UNIX/Mac OS X/ Linux, dem VMS-Betriebssystem und eingebetteten Systemen realisiert worden sind.

Auf diesen Seiten finden Sie Unterlagen zu den Vorlesungen, die laufend ergänzt werden. Insbesondere finden Sie einige Foliensätze, die über das in der Vorlesung gezeigte Material hinausgehen.

Als Teilnehmer der Lehrveranstaltung sind Sie berechtigt Kopien der Unterlagen für Ihre eigene Verwendung anzufertigen. Jegliche Vervielfältigung und Nachnutzung der Unterlagen in elektronischer oder gedruckter Form bedürfen der schriftlichen Zustimmung des Autors.

Termine

  • Dienstag: 9:15 Uhr, HS 2
  • Donnerstag: 11:00 Uhr, H-2.57; VL/Übung im Wechsel

Leistungserfassung

Der Leistungserfassungsprozeß der Vorlesung umfasst eine mündliche Prüfung in der vorlesungsfreien Zeit. Im Einzelnen gelten folgende Regeln:
  1. Zur Vorlesung werden Übungsaufgaben gestellt.
  2. Die Lehrveranstaltung kostet 6 Belegungspunkte.
  3. Die Ermittlung der Endnote erfolgt in einer mündlichen Prüfung am Semesterende. Bei bestandener Prüfung werden 6 Leistungspunkte vergeben.
  4. In den ersten zehn Minuten der mündlichen Prüfung können Sie (optional) einen Vortrag zu einem Thema aus der Vorlesung (freie Wahl) halten. Anschließend werden Fragen zu Ihrem Vortrag und weitere Fragen zur Vorlesung gestellt.

Prüfung

Es werden 2 Prüfungszeiträume für mündliche Prüfungen angeboten. Genaue Termine und Zeiten werden noch bekanntgegeben.

  • Anfang der vorlesungsfreien Zeit (KW 30)
  • Ende der vorlesungsfreien Zeit (KW 41)

Literaturhinweise

  • Sysinternals Webseite www.sysinternals.com
  • (CRK) Tools
  • Curriculum Resource Kit Website
    Link nicht mehr erreichbar: http://www.microsoft.com/resources/sharedsource/Licensing/CurriculumResourceKit.mspx
  • Mark A.Russinovich/David A. Solomon, "Windows Internals", 4th Edition, MS Press 2005.
  • David A. Solomon/Mark E. Russinovich, "Inside Windows 2000", 3rd Edition, MS Press, 2000.
  • John Hart, „Win32 System Programming“, Addison-Wesley, 1997.
  • Abraham Silberschatz, Peter B. Galvin, "Operating System Concepts", John Wiley & Sons, 6th Ed., 2003;
    Webseite zu diesem Buch unter os-book.com
  • Gary Nutt, "OS Projects using Windows NT", Addison-Wesley, 1999.
  • Helen Custer, "Inside Windows NT", MS Press, 1993.
  • Andrew S. Tanenbaum, "Distributed Operating Systems", Prentice Hall, 1995.
  • Walter Oney, "Programming the Microsoft Windows Driver Model", MS Press, 2003.
  • VMware curriculum repository: GoVirtual.org

Übungen

Achtung: Die Bearbeitung der Übungsaufgaben findet in Zweiergruppen statt. Bitte teilen Sie uns die Mitglieder der Gruppe per Email an bs@hpi.uni-potsdam.de bis zum 11.05.2011 mit.

Folgend Gruppen haben sich für die Übung registriert:

Gruppe Mitglieder Präsentation
1 Astrid Thomschke, Johannes Henning 12.05.2011
2 Magdalena Noffke, Maria Neise 12.05.2011
3 Steffen Grohsschmiedt, Daniel Schäufele 26.05.2011
4 Dominic Petrick, Matthias Bastian
5 Janek Ummethum, Benjamin Reißaus
6 Jens Hildebrandt, Alexander Schulze 14.07.2011
7 Lukas Pirl, Marius Knaust 30.06.2011
8 Robin Schreiber, Eric Seckler 30.06.2011
9 Tim Sporleder, Ludwig Kraatz
10 Hubert Hesse, Robert Lehmann 26.05.2011
11 Max Bothe, Jan Koßmann, Martin Fritzsche
12 Patrick Rein 14.07.2011

1. Aufgabe – Treiberprogrammierung unter Windows (Vorstellung am 12.05.2011)

In dieser Aufgabe geht es um die Programmierung eines einfachen Windows-Legacy-Treibers. Der Treiber soll die folgende Funktionalität umfassen:

  • Gerät öffnen (IRP_MJ_CREATE)
  • Ein Schreibaufruf (IRP_MJ_WRITE) führt dazu, dass der Treiber die mittels WriteFile geschriebene Zeichenkette (ASCII-Kodierung) speichert.
  • Ein Leseaufruf (IRP_MJ_READ) liefert den Inhalt einer zwischengespeicherten Zeichenkette. Wurde noch kein Text gespeichert, soll ein geeigneter Fehlerwert zurück gegeben werden.
  • Eine Funktion (IRP_MJ_DEVICE_CONTROL), die Groß- und Kleinschreibung in der zwischengespeicherten Zeichenkette vertauscht.
  • Gerät schließen (IRP_MJ_CLOSE)

Implementieren Sie des weiteren eine Testanwendung, die die Funktionalität des Treibers testet.

Der bereitgestellte Programmrahmen enthält bereits Makefiles zum Übersetzen des Treibers und der Anwendungen (vsdcontrol bzw. vsdtest). Für das Übersetzen des Treibers muss die Windows Server 2003 Build-Umgebung und für die Anwendungen die Visual Studion 2008 Build-Umgebung verwendet werden. Ansonsten kommt es zu einem Missmatch der bereit gestellten Laufzeitbibliotheken.

2. Aufgabe – FAT ls -R (Vorstellung am 26.05.2011)

3. Aufgabe – FTP Server (IPv4, IPv6) (Vorstellung am 09.06.2011)

4. Aufgabe – Windows und Echtzeit (Vorstellung am 14.07.2011)

In dieser Übung geht es darum, Probleme und Aspekte von Echtzeitsystemen zu rekapitulieren und diese anhand des Windows-Betriebssystems zu diskutieren.

  1. Lesen Sie das Paper "Using Windows NT for Real-Time Applications: Experimental Observations and Recommendations" von Ramamritham et. al. Beantworten Sie im Anschluss daran folgende Fragen und begründen Sie jeweils Ihre Antwort!
    1. Zu welchem Schluss kommen die Autoren? Ist Windows NT echtzeitfähig?
    2. Welche Komponenten von Windows stehen in Konflikt mit Entwurfszielen von Echtzeitsystemen?
    3. Skizzieren Sie kurz die durchgeführten Experimente der Autoren!
    4. Welche Lösungsansätze diskutieren die Autoren, um Windows NT zumindest für weiche Echtzeitsysteme zugänglich zu machen!
    5. Auf welche Weise geht Windows CE mit den oben genannten Problemen um?
  2. Lesen Sie die beiden Artikel von Mike Jones bzw. Glenn Reeves zum Thema: "What really happened on Mars?". Beide Artikel beschäftigen sich mit der "Pathfinder"-Mission. Beantworten Sie die folgenden Fragen und begründen Sie Ihre Antworten!
    1. Mit welchem Problem sahen sich Ingenieure der Mars-Mission konfrontiert?
    2. Beschreiben Sie das Phänomen und erklären Sie, welche Verfahren zu dessen Lösung existieren!
    3. Wie wurde das Problem auf dem "Pathfinder" behoben?
  3. Machen Sie sich mit den Scheduling-Verfahren "Earliest Deadline First" (EDF) und "Rate-Monotonic Scheduling" (RMS) aus der Vorlesung vertraut. Ein Task T sei beschrieben durch T = (p; e), wobei p die Periode und e die Ausführungszeit des Tasks ist. Die Periode stellt gleichzeitig die Deadline des Tasks dar. Stellen Sie für die folgenden Tasks einen Ausführungsplan (in einem Gantt-Diagramm) im Intervall [0, 750) – jeweils einen pro Scheduling-Verfahren – auf und berechnen Sie die CPU-Auslastung des Systems: T1 = (100; 20), T2 = (150; 30), T3 = (200; 20) und T4 = (250; 100)!
  4. Implementieren Sie beide Scheduling-Algorithmen EDF und RMS im Programmrahmen. Führen Sie das Programm einmal mit dem EDF- und einmal mit dem RMS-Algorithmus aus. Ermitteln Sie den berechneten Schedule mit Hilfe des Programms perfmon.exe, indem Sie die Prioritäten der Threads des Programms scheduler.exe überwachen. Vergleichen Sie das Ergebnis mit Ihren Berechnungen aus Aufgabe 4.3. Beurteilen Sie abschließend die Laufzeit für Ihren Algorithmus.

Ablauf der Lehrveranstaltung

Die Vorlesung wird auf deutsch gehalten. Dennoch liegen die Folien in englischer Sprache vor.
In der unten stehenden Liste finden Sie die Unterlagen im pdf-Format (2 Folien je Seite).

Unterlagen zur Vorlesung

Einführung

  1. Trends and Challenges in Operating Systems – from Parallel to Cloud Computing (.pdf)

Unit 6: Device Management - The Input/Output System

  1. Principles of I/O Systems ( pdf)
  2. The Windows I/O System Components ( pdf)
  3. Windows I/O Processing ( pdf)
  4. Device Management labs, quizzes, and assignments (.pdf .pdf)

Unit A: Windows Networking

  1. Networking Components in Windows OS (.pdf)
  2. Windows Socket Programming (.pdf)
  3. Microsoft-specific extensions to Sockets and other Networking APIs (.pdf)
  4. Networking labs and quizzes (.pdf,.pdf)

Unit 8: File System

  1. Background: Unix File Systems (.pdf)
  2. The Windows File System (NTFS) (.pdf)
  3. Encrypting File System Security in Windows OS (.pdf)
  4. NTFS – Recovery Support (.pdf)
  5. Windows File and Directory Management (.pdf)
  6. File System labs, quizzes, and assignments (.pdf .pdf)

Unit 9: Real-time and Embedded Systems

  1. Introduction and Vocabulary (.pdf)
  2. Real-Time Systems with Windows (.pdf)
  3. Embedded Systems with Windows XP Embedded (.pdf)
  4. Real-time and Embedded Systems quizzes (.pdf)

Unit 10: Fault-tolerance

  1. Fault-tolerance in Windows
  2. Quizzes

Unit 12: Scripting

  1. Windows Management Instrumentation (.pdf)
  2. The Registry
  3. Scripting labs, quizzes and assignments (.pdf .pdf)

Unit 13: Virtualization - a discussion based on VMware's solution

The slides and lecture materials below are part of the curriculum repository at GoVirtual.org.
  1. Introduction and Motivation (.pdf)
  2. CPU Virtualization (.pdf)
  3. Memory Virtualization (.pdf)
  4. Classification of Virtualization techniques (.pdf)
  5. Device Virtualization (.pdf)
  6. Resource Management for virtualized systems (.pdf)
  7. Windows Hyper-V - an Overview (.pdf)

Unit B: Comparison Linux and the Windows Kernels

  1. The Single UNIX Specification (.pdf extern)
  2. Comparing the Linux and Windows Kernels (.pdf)
  3. Linux and Windows Comparison (.pdf)
  4. Quizzes (.pdf)

Unit C: Windows - Unix Interoperability

  1. File and Command Interoperability (.pdf)
  2. Programming (.pdf)
  3. Quizzes (.pdf)

Windows Vista & Windows 7

  1. Windows Operating System Family - Windows Vista Update (.pdf)
  2. Windows 7 and Windows Server 2008 R2 Kernel Changes (.pdf)