Mündliche Prüfungen finden am 12.Februar 2015 (Donnerstag) und 13. Februar 2015 (Freitag) statt. | Dienstag | | Freitag | | | Jan | 13 | Redlich | 16 | Redlich | reguläre Vorlesungen | | 20 | Redlich | 23 | Redlich | reguläre Vorlesungen | | 27 | 1,3 | 30 | 2,5 | Studenten-Vorträge | Feb | 3 | 4,6 | 6 | Redlich | VL, nicht prüfungsrelevant | | 10 | Redlich | 12,13 | Prüfungen | |
| 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, Web browsers, and many others. In general, the operating system is the first layer of software loaded into memory when a computer 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, process 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 implementation details and user interfaces of today's systems/software - is what this lecture is about.
| Synopsis:- Praktische Informatik, Master (=10 SP), Diplom (= 8 SP).
- Offered regularly, at least once every two years, usually in winter.
- 2 lectures per week, 2h each, over one semester (4SWS VL).
- 1 lab (Übungen/Praktikum) per week, 2h each, over one semester (2SWS UE).
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 written examination (at the end of the semester), you have to complete all lab assignments to the satisfaction of the teaching assistant (70% of all 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): - Lab-0 - Einführung (pdf)
- Lab-1 - MMU, Vorlage für die MMU
- Lab-Valgrind - Folien, Callgrind-Beispiel, Valgrind-Beispiel
- Lab-2 - Eventqueue, Vorlage für die Eventqueue, Beispiele für Sockets, Pipes, select etc.
- Lab-3 - Event vs Threads, Vorlage
- Lab-Cachegrind - Folien, Cachetest, Hyper-Threading
- Lab-4 - Fuse, Fuse-Folien, Vorlage, Beispiel, Readlink, makefile für gruenau2
Syllabus:
Prequel Lecture slides: Getting Started Required Reading: how-to-read-a-paper How to read a scientific paper? - Read for an overview. What is the purpose of this work?
- Read again, with focus on the "story". Annotate the paper.
- Read one more time, with focus on the details. Have a discussion with others. Take notes of arguments that came up during the discussion.
Lecturer-driven topics
- Thread vs. Event -based Concurrency
Lecture Slides: Thread / Event-based Concurrency Required Reading: Threads Cannot Be Implemented As a Library by Hans-J. Boehm Recommended Reading: Additional Reading: - Local (HDD) Filesystems - revisited
( The hard life of a hard drive - About the tension between performance and durability/reliability. )Lecture Slides: Local File Systems Required Reading: Failure_Trends_in_a_Large_Disk_Drive_Population optional (not required): More than an interface — SCSI vs. ATA Recommended Reading: Additional Reading (common production file systems): - ZFS (2002?): The Zettabyte File System
- ZFS: End-to-end Data Integrity for File Systems: A ZFS Case Study
- ZFS: Raid-Z: https://blogs.oracle.com/bonwick/entry/raid_z (cached)
- ZFS: Howto: https://www.freebsd.org/doc/de/books/handbook/filesystems-zfs.html (cached)
- BSD-FFS (1984): A Fast File System for UNIX
- ext1 (1992), ext2 (1993), vfs: Design and Implementation of the Second Extended Filesystem
- ext3 (1998): Journaling the Linux ext2fs Filesystem
- ext4 (2007): Ext4 block and inode allocator improvements. Kumar,Cao,Santos,Dilger. (mathur)
- Sprite-LFS (1991). The Design and Implementation of a Log-Structured File System. Rosenblum, Ousterhout.
- BSD-LFS (1993). An Implementation of a Log-Structured File System for UNIX. Seltzer, Bostic, McKusick, Staelin,
- WAFL (19994). Write Anywhere File Layout. File System Design for an NFS File Server Appliance. Technical Report.
- ReiserFS (2001?): The structure of the Reiser file system
- Fsck − The UNIX File System Check Program. Marshall Kirk McKusick, 1996
- Soft Updates: A Solution to the Metadata Update Problem in File Systems.Ganger, McKusick, Soules, Patt. 2000
- Venti: a new approach to archival storage (annotated) (deduplication)
- Fast, Inexpensive Content-Addressed Storage in Foundation
- Remote (access to) Filesystems
Lecture Slides: Remote File Systems Recommended Reading: - Recommended Reading:
- Data Center Storage (Clusters)
Lecture Slides: Recommended Reading: - Concepts: Time, Consistency and Consensus
6.1 Consistency Lecture Slides: Recommended Reading:
6.2 Time, Clocks Lecture Slides: Recommended Reading: - Probabilistic clock synchronization (Cristian' Algorithm). Flaviu Cristian, 1989.
- An Election Algorithm for a Distributed Clock Synchronization Program (Berkeley's Algorithm). Riccardo Gusella, Stefano Zatti, 1985
- Maintaining the Time in a Distributed System. Keith Marzullo, 1983
- Time Synchronization in DCNET Hosts. Mills, 1981
- Time, Clocks, and the Ordering of Events in a Distributed System (Lamport Time). Leslie Lamport, 1978.
- Timestamps in Message-Passing Systems That Preserve the Partial Ordering (Vector Time). Colin J. Fidge, 1988.
- Virtual Time and Global States of Distributed System (Vector Clocks, Consistent Cuts). Friedemann Mattern, 1989.
Additional Material: 6.3 Consensus Lecture Slides: Recommended Reading:
- (Google's) Spanner
Lecture Slides: Recommended Reading:
Student-driven topics
- (Secure, Performant, Shared) Execution Environments
- introduction (by lecturer):
Virtual Machines - student-lecture 1:
vorgemerkt: Johannes Bauermann, Philipp Schoppmann, Carsten Lipka Big Data platforms: Virtualization and Resource Sharing in Multi-Tenant Data Centers - student lecture 2:
vorgemerkt: Uwe Gropengießer, Oliver Schwengber, Daniel Borchart Micro-Kernels and Exo-Kernels - student lecture 3:
vorgemerkt: Mirko Dreßler, Christian Diehr Improving I/O performance - in virtual machines and OS-kernels - student lecture 4:
vorgemerkt: Christoph Döpmann, Matthias Hoeschel Improving Network performance - in virtual machines and OS-kernels - student lecture 5:
vorgemerkt: Frank Lange, Robert Kühn Programmable I/O Stacks and Programmable Networks - student lecture 6:
vorgemerkt: Erik Nellesen, Henry Dettmer Sandboxing for secure code execution
| |
|