Betriebssysteme II (2010)
Sommersemester 2010
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
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:- Zur Vorlesung werden Übungsaufgaben gestellt.
- Die Lehrveranstaltung kostet 6 Belegungspunkte. Die Belegungsfrist endet am 06.05.2010.
- 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.
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
- 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
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)
Unit C: Windows - Unix Interoperability
Windows Vista & Windows 7
- Windows Operating System Family - Windows Vista Update (.pdf)
- 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
- Folien zur Übung
- Hilfsfunktionen für FAT Lookup
- Quellen
- FAT12 Abbild (Achtung LFN enthalten)
- FAT12 Abbild (keine LFN)
- FAT12 Abbild (Unterverzeichnis mit 2 Clustern)
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)
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.
- 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; 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).