Betriebssysteme II (2010)

Sommersemester 2010

Prof. Dr. Andreas Polze
Dr. Peter Tröger

Dipl.-Inf. Alexander Schmidt
M.Sc. Frank Feinbube
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.

Prüfung

Die Prüfung findet in Raum C-1.7 statt.

  • 27.07.2010
  • 07.10.2010
  • 08.10.2010
Ameldung bei Sabine Wagner in C-1.8 ab 05.07.2010

Termine

  • Dienstag: 9:15 Uhr, HS 2
  • Donnerstag: 11:00 Uhr, HS 1; 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. Die Belegungsfrist endet am 06.05.2010.
  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.

Literaturhinweise

  • Sysinternals Webseite www.sysinternals.com
  • (CRK) Tools
  • Curriculum Resource Kit Website
    Link nicht mehr erreichbar: https://web.archive.org/web/20110930141613/http://www.microsoft.com/resources/sharedsource/default.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

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 (.pdf)
  2. Quizzes (.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)

Ü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 27.05.2010 mit.

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

Gruppe Mitglieder Präsentation
1 Michael Kusber, Ralf Diestelkämper
2 Erik Prinz, Christian Kieschnick
3 André Hartmann, Sebastian Kruse 08.07.2010
4 Florian Zimmermann, Simon Völcker 24.06.2010
5 Sebastian Blessing, Jan Rehwaldt 24.06.2010
6 Markus Dreseler, Kai Höwelmeyer
7 Sebastian Woinar, Fabian Tschirschnitz
8 Jossekin Beilharz, Lars Wassermann
9 Maximilian Schneider, Patrick Schulze 01.06.2010
10 Tim Berning, Robert Strobl, Marco Lamina
11 Moritz Burkhardt, Anton Gulenko
12 Nicholas Wittstruck, Lukas Niemeier
13 Roland Lux, Oliver Richter 08.07.2010
14 Romano Licker, Henning Lohse
15 André Kunz, Nikolai Wuttke

1. Aufgabe – FAT ls -R

2. Aufgabe – Treiberprogrammierung unter Windows (Vorstellung am 24.06.2010)

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 jeweils zu letzt geschriebene Zeichenkett (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 bereit gestellte Programmrahmen enthät 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.

3. Aufgabe – Threadless-FTP Server (IPv4, IPv6) (Vorstellung am 08.07.2010)

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

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; 50) und T3 = (250; 100)!

Ablauf der Lehrveranstaltung

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