Operating Systems Principles
[32 215] half-course, 4VL + 2PR

Instructor(s): Prof. Jens-Peter Redlich, Dipl-Inf. Kurth

Computer Science Department
Systems Architecture Group


Prüfungskomplexe finden Sie hier

Abstract: An operating system (OS) is the software responsible for controlling and managing hardware and basic system operations, as well as running application software such as word processing programs and Web browsers. In general, the operating system is the first layer of software loaded into computer memory when it starts up. All other software that gets loaded after it depends on the operating system to provide various common core services, such as disk access, memory management, task scheduling, and user interfaces. As operating systems evolve, ever more services are expected to be common core. These days, an OS may be required to provide network and Internet connectivity and also to protect the computer's other software from damage by malicious programs, such as viruses. Operating systems in widespread use on personal computers (PC) have consolidated into two families: the Microsoft Windows family and the Unix-like family. Mainframe computers and embedded systems use a variety of different operating systems, many with no direct connection to Windows or Unix.

Building Operating Systems is much about studying existing systems, knowing common problems, knowing what other people did, and figuring out if their ideas can be applied to a given new problem. These long-lasting principles - as opposed to specific details of today's systems/software - is what this half course is about.

  • Half-Course, Praktische Informatik, Hauptstudium.
  • Offered regularly, at least once every two years, usually in sping.
  • 2 lectures per week, 2h each, over one semester (4SWS VL).
  • 1 lab (Praktikum) per week, 2h each, over one semester (2SWS PR).

Credits and grading:

  • There will be a few, short, unannounced, closed-book quizzes to verify your existence and to test your understanding.
  • To qualify for the final examination, you have to complete all lab assignments to the satisfaction of the teaching assistant (70% = 35 points).
  • Regular class attendance is expected; frequent absences are grounds for a failing grade regardless of other performance. You may be missing up to 1 lecture per semester without prior and reasonable excuse. 'prior' means notification by email before the end of business the day before the lecture. 'reasonable' means sickness or study-related events that require your attendance.
  • Lectures begin on time. Students arriving more than 10 minutes late will not be admitted to the lecture and will be counted as 'missing' that day.


Lab (Praktikum):

Syllabus - Lecture:
  • Administrative Information   [ slides]
  1. Historical Review   [ slides]
    AufzählungDijkstra: The structure of the THE multiprogramming system (THE)
    AufzählungCorbato: An Experimental Time-Sharing System (CTSS)
    AufzählungFeiertag: The Multics Input Output system (MULTICS)
    AufzählungRitchie: The UNIX time-sharing system (UNIX)
    AufzählungRashid: Accent - A communication oriented network OS kernel (MACH)
  2. Basics  [ slides (part 1)]    [ slides (part 2)]
    AufzählungKaashoek: Exterminate all operating system abstractions
    AufzählungKaashoek: Exokernel: An operating system architecture for application-level resource management
    AufzählungA Guide to Programming on Intel IA32 PC Architecture
    AufzählungIA32 Intel Architecture Software Developer's Manual, Volume 1: Basic Architecture
    AufzählungIA32 Intel Architecture Software Developer's Manual, Volume 2: Instruction Set Reference Manual
    AufzählungIA32 Intel Architecture Software Developer's Manual, Volume 3: System Programming Guide
  3. Virtual Machines   [ slides]
    AufzählungJones: Virtual Linux  (nice overview/introduction from 12/2006)
    AufzählungRosenblum: Virtual Machine Monitors: Current Technology and Future Trends
    AufzählungRose: Survey of System Virtualization Techniques
    AufzählungBarham: Xen and the art of virtualization
    AufzählungRobin: Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor
    AufzählungUS Patent 6397242: Virtualization system including a virtual machine monitor for a computer with a segmented architecture (VmWare)
    AufzählungHand: Self-Paging in the Nemesis Operating System
    AufzählungBugnion: Disco: running commodity operating systems on scalable multiprocessors
  4. Processes   [ slides]
    AufzählungUnix Programming FAQ - Process Control
  5. CPU Scheduling  [ slides]
    AufzählungMitzenmacher:The Power of Two Choices in Randomized Load Balancing
  6. Threads  [ slides]
    AufzählungAn Introduction to Programming with Threads
    AufzählungGetting Started With POSIX Threads
    AufzählungMultithreaded Programming Guide
    AufzählungEngelschall: Portable Multithreading  (signal stack trick for User-Level Threads)
  7. Concurrency and Synchronization   [ slides]
    AufzählungLamport: A fast mutual exclusion algorithm
    AufzählungFast Mutual Exclusion for Uniprocessors (Restartable Atomic Sequence)
    AufzählungLampson: Experience with Processes and Monitors in Mesa
    AufzählungThe Little Book of Semaphores
  8. Deadlocks    [ slides]
    AufzählungCoffman: System Deadlocks
    AufzählungEWD 623: The mathematics behind the Banker’s Algorithm
  9. Memory Management - Virtual Memory   [ slides]
  10. Memory Management - Paging and Trashing  [ slides]
  11. Memory Management - Linking   [ slides]
    AufzählungHow To Write Shared Libraries
    AufzählungELF format.pdf
    AufzählungGNU Assembler
    AufzählungLinkers and Loaders (book manuscript):
  12. Mass Storage - Disk Storage  [ slides]
    AufzählungReference Guide - Hard Disk Drives:
    AufzählungRAID: High-Performance, Reliable Secondary Storage
  13. Mass Storage - File Systems   [ draft (not final version)]
    AufzählungNetApp's WAFL (file system snapshots)
  14. Mass Storage - Flash Memory   [ slides]
  15. Mass Storage - Recovery and Performance   [ draft (not final version)]
  16. IO Devices and Drivers   [ slides]
    • Was not covered in lecture, will not be included in examination.
  17. Real-Time Systems
    AufzählungJane W.S. Liu. Real Time Systems. Prentice Hall, ISBN 0-13-099651-3, 2000.
    AufzählungC.M. Krishna, Kang G. Shin. Real-Time Systems. McGraw-Hill, ISBN: 0-07-057043-4, 1997.
    AufzählungHermann Kopetz. Real-Time Systems: Design Principles for Distributed Embedded Applications. Kluwer, ISBN 0-79-239894-7, 1997.

Further Readings:

AufzählungSilberschatz, Galvin, Gagne. Operating System Concepts. 6th Edition. John Wiley & Sonns, 2003. ISBN 0-471-25060-0
AufzählungWilliam Stallings. Betriebssysteme – Prinzipien und Umsetzung. 4. Auflage. Prentice Hall, 2003. ISBN 3-8273-7030-2
AufzählungAndrew Tanenbaum. Moderne Betriebssysteme. 2002. ISBN 3827370191
AufzählungR. G. Herrtwich and G. Hommel. Kooperation und Konkurrenz - Nebenläufige, verteilte und echtzeitabhängige Programmsysteme. Springer-Verlag, 1989. ISBN 3-540-51701-4.
AufzählungH. Kopetz. Real-Time Systems: Design Principles for Distributed Embedded Applications. Kluwer Academic Publishers, 1997. ISBN 0-7923-9894-7.
AufzählungJoseph Pranevich, The Wonderful World of Linux 2.6. (cached pdf)
AufzählungUnix Programming FAQ:
Book: Silberschatz
OS Principles
Open VMS
HP Documentation
Prof. Polze: Operating Systems Principles
Dr. Bell: Unix System Architecture
Exokernel Operating System

Legal disclaimer.   © 2016 Humboldt University Berlin, Computer Science Department, Systems Architecture Group.Contact: .