Betriebssysteme I (2017)
Wintersemester 2017/18
Prof. Dr. Andreas PolzeAndreas Grapentin, Bernhard Rabe
Inhalt der Vorlesung
Die Lehrveranstaltung konzentriert sich auf Standard-Betriebssysteme (general-purpose operating systems) und diskutiert deren Techniken und Ansätze an verschiedenen Beispielen.
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.
Klausur
Montag, 26.02.2018, um 10:00 Uhr in HS1, HS2 & HS3.Einlass: 09:45 Uhr
Beginn: 10:00 Uhr
Ende: 12:00 Uhr
Folgende Sachen werden benötigt:
- Studierendenausweis
- Schreibutensilien
Termine
- Di, 09:15-10:45, Vorlesung in HPI HS 3
- Do, 11:00-12:30, Vorlesung und Übung im Wechsel in HPI HS 3
Der Leistungserfassungsprozess ergibt sich aus der erfolgreichen Lösung jedes Übungsblattes mit mind. 50% der Punkte sowie einer schriftlichen Abschlussprüfung.
Ablauf der Lehrveranstaltung
Die Vorlesung wird auf deutsch gehalten. Die Folien liegen in englischer Sprache vor.
Unit 1: Overview of Operating Systems
- Windows Operating System Internals Course Overview
- The Evolution of Operating Systems
- Windows Operating System Family – Concepts & Tools
Unit 2: Operating System Principles
- Structuring of the Windows Operating System
- Structuring of the Unix Operating System
- Windows Core System Mechanisms
- Windows on Windows - OS Personalities
- The Windows API Naming Conventions, Types
- OS Principles labs, and quizzes
Unit 3: Concurrency
- Concurrency, Critical Sections, Semaphores
- Windows Trap Dispatching, Interrupts, Synchronization
- Advanced Windows Synchronization
- Windows APIs for Synchronization and Inter-Process Communication
- Concurrency quizzes
Unit 4: Scheduling and Dispatch
- Concept of Processes and Threads
- Windows Processes and Threads
- Windows Process and Threads Internals
- Windows Thread Scheduling
- Advanced Windows Thread Scheduling
- Scheduling quizzes
- Scheduling labs
Unit 5: Memory Management
- Memory Management for Multiprogramming
- Windows Memory Management Fundamentals
- Virtual Adress Translation
- Physical Memory Management
- Memory Management Demos
- Memory Management Quizzes
- Memory Management Labs
Unit 7: Security and Protection
- The Security Problem
- Windows Security Components and Concepts
- Windows Security Descriptors
- The OSF Distributed Computing Environment (DCE) and Kerberos
- Security Labs
- Security Quizzes
Übung
Bei Fragen oder Anmerkungen zur Übung schreiben Sie bitte eine E-Mail.
0. Aufgabe
17.10.2017 (Abgabe bis zum 02.11.2017 07.11.2017)
- Melden Sie sich beim Abgabesystem über den HPI-OpenID-Provider für die Übungsaufgaben an und abonnieren den Kurs "Betriebssysteme I". Bilden Sie zur Bearbeitung der Aufgaben Gruppen aus 3 Personen.
- Achten Sie darauf, in jeder Übungsgruppe mindestens ein Windows System und ein Unixoides System (GNU/Linux, macOS, *BSD, ...) zur Verfügung zu haben. Sie können sich auch virtuelle Maschinen installieren.
- Erstellen Sie Bildschirmfotos eines Windows Systems und eines Unixoiden Systems, zu dem Ihre Übungsgruppe Zugang hat. Geben Sie zur Lösung der 0. Aufgabe ein ZIP oder TAR archiv ab, welches diese Bildschirmfotos enthält.
1. Aufgabe
09.11.2017 (Abgabe bis zum 23.11.2017)
- Aufgabenblatt 1
- Betriebssystem Galerie
- Beispieldaten für Aufgabe 4
- Konvertierungstabelle für Aufgabe 4
2. Aufgabe
28.11.2017 (Abgabe bis zum 14.12.2017)
- Aufgabenblatt 2
- Betriebssystem Galerie
- InstantLab Entwicklungsmaschinen (Link zu bs1.instantlab.org nicht mehr verfügbar)
- Programmrahmen zu Aufgabe 4
3. Aufgabe
14.12.2017 (Abgabe bis zum 11.01.2018)
4. Aufgabe
11.01.2018 (Abgabe bis zum 25.01.2018)
- Aufgabenblatt 4
- Programmrahmen zu Aufgabe 2: bakery.zip
- Programmrahmen zu Aufgabe 4: mandelbrot.zip
5. Aufgabe
25.01.2018 (Abgabe bis zum 08.02.2018)
- Aufgabenblatt 5
- Programmrahmen zu Aufgabe 7: scheduler.zip
Exkurse
- C Programmierung: Subsystem
- C Programmierung: Limit offener Dateien
- C Programmierung: Nebenläufigkeit und Synchronisation
Literaturhinweise
General Concepts
- J. Bonwick, “The slab allocator: an object-caching kernel memory allocator,” in USENIX Technical Conference (USENIX), 1994, pp. 6–6. [Link]
- Intel Corporation, Intel Architecture Software Developer’s Manual, Volume 3a: System Programming. 2010.
- A. Silberschatz, P. Baer Galvin , and G. Gagne, Operating System Concepts, 8th ed. John Wiley Sons, 2008. [Link]
- W. Stallings, Operating Systems: Internals and Design Principles, 7th ed. Prentice Hall, 2011.
- A. S. Tanenbaum, Distributed Operating Systems. Prentice Hall, 1995.
History
- D. Donald Miller, OpenVMS Operating System Concepts, 2nd ed. Elsevier, 1997. [Link]
- D. M. Ritchie and K. Thompson, “The UNIX time-sharing system,” Communications of the ACM, vol. 17, no. 7, pp. 365–375, Jul. 1974. [Link]
- D. M. Ritchie, “The Evolution of the UNIX Time-Sharing System,” Lecture Notes in Computer Science (LNCS), no. 79, pp. 1577–1594, 1980. [Link]
- G. Pascal Zachary, Show-stopper!: the breakneck race to create Windows NT and the next generation at Microsoft. University of Michigan, 1994. [Link]
Tools
- Microsoft, “Windows Sysinternals Tools.”. [Link]
Windows Internals
- H. Custer, Inside Windows NT. Microsoft Press, 1993. [Link]
- J. M. Hart, Windows System Programming, 4th ed. Addison-Wesley Professional, 2010.
- M. E. Russinovich and D. A. Solomon, Windows Internals, 6th ed. Microsoft Press Corp., 2012.
- A. Schmidt, “Queued Spinlocks in the WRK.”. [Link]
Unix Internals
- W. Richard Stevens and S. A. Rago, Advanced Programming in the UNIX Environment, 2nd ed. Addison-Wesley Professional, 2005.
- Sysinternals Webseite technet.microsoft.com/de-de/sysinternals/
- (CRK) Tools
- NT Design Workbook (von 1989!), zip.Archiv
- 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.
- Dennis M. Ritchie, "The Evolution of the Unix Time-sharing System"