VL: TUE. 15:00-16:30, RUD 26, 0.310; THU. 9:15-10:45, RUD 26, 0'310 - Dr. J-P. Bell PR: THU. 11:15-12:45, RUD 26, 1'305 - R. Sombrutzki; FRI. 11:15-12:45, RUD 26, 1'305 - R. Sombrutzki Examination: THU 26.7.2012 9:00-11:00, RUD 26. 0'115 (doors open 8:30) | 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:- Half-Course, Praktische Informatik, Hauptstudium.
- Offered regularly, at least once every two years, usually in spring.
- 2 lectures per week, 2h each, over one semester (4SWS VL).
- 1 lab (Praktikum) per 2 weeks, 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 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.
Prerequisites: - Expertise with C and common development tools (gcc, make, rpm, cvs) absolutely required. C++ optional.
- Here are some useful tutorials and recommended HU-Berlin lectures:
Lab (Standard-Praktikum): Die Liste mit den Ergebnissen der Prüfung findet sich hier. Am Donnerstag und am Freitag (02/03. August 2012) kann Einsicht in die Klausur genommen werden. Syllabus:
Administrative Information [ slides] - Introduction
What is an OS? History. [ slides] Typical OS structures. System Call. [ slides] Building an OS (SYSGEN), Booting. [ slides] - Processes
- Process Abstraction (in Unix and Windows) [ slides]
Process state. Process Control Block. Context Switch. Protection. - CPU Scheduling [
draft] Latency vs. throughput, Optimization goals. FIFO, Round Robin, SJF, Priority scheduling, multi-level feedback queue, lottery scheduling. - Threads [
draft] User-level/kernel-level threads. Shared variables. Lost update problem. - Concurrency and Synchronization [
draft] Race condition. Atomic instructions. Mutual exclusion. Spin locks, blocking locks, semaphores, monitors, optimistic (wait-free) synchronization. - Deadlocks [
draft] Coffman Conditions. Deadlock Prevention, Avoidance, Detection&Recovery; Lifelock.
- Memory Management
- Virtual Memory [
draft] Virtual Address. Page Table, MMU. Memory protection. Shared memory. - Paging and Trashing [
draft] Demand paging. Distributed shared memory. Trashing, Page fault frequency, Working set, Balance set. Transactional memory. - Linking [
draft] Static linking (ELF). Dynamic linking. Shared libraries.
- Mass Storage
- Disk Storage [
draft] Hard Disk Drive (HDD), Access time (seek/rotational/transfer delay). RAID 0,1,2,4,5,6. Storage Center. - File Systems [
draft] Dos-FAT, Unix-FS (i-node), NTFS. NTFS: http://www.ntfs.com ==== ENDE BACHERLOR-PROGRAMM =====================================================
- File System Performance [
draft] Recovery [ draft] - Flash Memory File System [
draft] NAND vs. NOR flash, Journaling file system. Yaffs. - NFS and NetApp's WAFL
Filesystem snapshot
- Virtual Machines [
draft] Virtual Machine Monitor. Virtualization types & techniques. Non-virtualizable x86 instructions. VmWare, VirtualPC, Xen.
Lab (Zulassung zur Prüfung) Die Liste mit den Ergebnissen des Praktikums findet sich hier. Prüfungsergebnisse Die Liste mit den Ergebnissen der Prüfung findet sich hier. Am Donnerstag und am Freitag (02/03. August 2012) kann Einsicht in die Klausur genommen werden. Further Readings:  | Silberschatz, Galvin, Gagne. Operating System Concepts. 6th Edition. John Wiley & Sonns, 2003. ISBN 0-471-25060-0 |  | William Stallings. Betriebssysteme – Prinzipien und Umsetzung. 4. Auflage. Prentice Hall, 2003. ISBN 3-8273-7030-2 |  | Andrew Tanenbaum. Moderne Betriebssysteme. 2002. ISBN 3827370191 |  | R. G. Herrtwich and G. Hommel. Kooperation und Konkurrenz - Nebenläufige, verteilte und echtzeitabhängige Programmsysteme. Springer-Verlag, 1989. ISBN 3-540-51701-4. |  | H. Kopetz. Real-Time Systems: Design Principles for Distributed Embedded Applications. Kluwer Academic Publishers, 1997. ISBN 0-7923-9894-7. |  | Joseph Pranevich, The Wonderful World of Linux 2.6. http://www.kniggit.net/wwol26.html (cached pdf) |
| |
|