Betriebssysteme II (2011)
Sommersemester 2011
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:- Zur Vorlesung werden Übungsaufgaben gestellt.
- Die Lehrveranstaltung kostet 6 Belegungspunkte.
- Die Ermittlung der Endnote erfolgt in einer mündlichen Prüfung am Semesterende. Bei bestandener Prüfung werden 6 Leistungspunkte vergeben.
- 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: 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
Ü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)
- Folien zur Übung
- Hilfsfunktionen für FAT Lookup
- Bootsector Struct
- Quellen
- FAT12 Abbild (Achtung LFN enthalten)
- FAT12 Abbild (keine LFN)
- FAT12 Abbild (Unterverzeichnis mit 2 Clustern)
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.
- 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!
- Zu welchem Schluss kommen die Autoren? Ist Windows NT echtzeitfähig?
- Welche Komponenten von Windows stehen in Konflikt mit Entwurfszielen von Echtzeitsystemen?
- Skizzieren Sie kurz die durchgeführten Experimente der Autoren!
- Welche Lösungsansätze diskutieren die Autoren, um Windows NT zumindest für weiche Echtzeitsysteme zugänglich zu machen!
- Auf welche Weise geht Windows CE mit den oben genannten Problemen um?
- 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!
- Mit welchem Problem sahen sich Ingenieure der Mars-Mission konfrontiert?
- Beschreiben Sie das Phänomen und erklären Sie, welche Verfahren zu dessen Lösung existieren!
- Wie wurde das Problem auf dem "Pathfinder" behoben?
- 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)!
- 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
- Trends and Challenges in Operating Systems from Parallel to Cloud Computing (.pdf)
Unit 6: Device Management - The Input/Output System
- Principles of I/O Systems ( pdf)
- The Windows I/O System Components ( pdf)
- Windows I/O Processing ( pdf)
- Device Management labs, quizzes, and assignments (.pdf .pdf)
Unit A: Windows Networking
- Networking Components in Windows OS (.pdf)
- Windows Socket Programming (.pdf)
- Microsoft-specific extensions to Sockets and other Networking APIs (.pdf)
- Networking labs and quizzes (.pdf,.pdf)
Unit 8: File System
- Background: Unix File Systems (.pdf)
- The Windows File System (NTFS) (.pdf)
- Encrypting File System Security in Windows OS (.pdf)
- NTFS Recovery Support (.pdf)
- Windows File and Directory Management (.pdf)
- File System labs, quizzes, and assignments (.pdf .pdf)
Unit 9: Real-time and Embedded Systems
- Introduction and Vocabulary (.pdf)
- Real-Time Systems with Windows (.pdf)
- Embedded Systems with Windows XP Embedded (.pdf)
- Real-time and Embedded Systems quizzes (.pdf)
Unit 10: Fault-tolerance
- Fault-tolerance in Windows
- Quizzes
Unit 12: Scripting
- Windows Management Instrumentation (.pdf)
- The Registry
- 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.- Introduction and Motivation (.pdf)
- CPU Virtualization (.pdf)
- Memory Virtualization (.pdf)
- Classification of Virtualization techniques (.pdf)
- Device Virtualization (.pdf)
- Resource Management for virtualized systems (.pdf)
- Windows Hyper-V - an Overview (.pdf)
Unit B: Comparison Linux and the Windows Kernels
- The Single UNIX Specification (.pdf extern)
- Comparing the Linux and Windows Kernels (.pdf)
- Linux and Windows Comparison (.pdf)
- Quizzes (.pdf)