Offizielle Endergebnisse der Klausur vom
18.Juli 2011: >>
hier <<
Letzte
Wiederholungsprüfung am 19. Oktober 2011 (Mittwoch)
- Bitte melden Sie sich möglichst bald bei Frau Albrecht (Haus 3, Zimmer
3.302) zur Prüfung an; spätestens jedoch 14 Tage vor der Prüfung!
Danach können Prüfungen für "Operating Systems
Principles" erst wieder nach dem nächstjährigen Sommersemester abgelegt
werden (wenn die VL erneut stattgefunden hat).
|
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 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 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):
- Worksheets: [lab1] [lab2] [lab3]
[lab4] [lab5]
(links to the lab worksheets will be added just in time during the course)
Lab (Alternatives Praktikum
für SoSe 2011): Anstelle der 5 (für
Bachelor: 3) Aufgaben aus dem obigen "Standard-Praktikum" können
Sie alternativ auch am "IBM Mainframe Challenge" teilnehmen.
Sobald Sie 3 der 5 von IBM gestellten "Challenges" gelöst haben,
gilt das Uni-Praktikum als erfolgreich bestanden (und die
Prüfungszulassung somit als erteilt). Die Betreuung des "IBM
Mainframe Challenge" erfolgt ausschließlich online und durch
Schulungspersonal der IBM. Mehr Informationen dazu unten:
|
|
Details:
http://www.ibm.com/developerworks/university/students/contests/mainframecontest/
|
Syllabus:
Administrative Information
[
slides]
- Introduction
What is an OS? History. [
slides]
Typical OS structures. System Call. [
slides]
Building an OS (SYSGEN), Booting. [
slides]
- Virtual Machines [
slides]
Virtual Machine Monitor.
Virtualization types & techniques. Non-virtualizable x86
instructions. VmWare, VirtualPC, Xen.
- Processes
- Process Abstraction (in Unix and
Windows) [
slides]
Process state. Process Control Block. Context Switch.
Protection.
- CPU Scheduling [
slides]
Latency vs. throughput, Optimization goals. FIFO, Round Robin,
SJF, Priority scheduling, multi-level feedback queue, lottery
scheduling.
- Threads [
slides]
User-level/kernel-level threads. Shared variables. Lost update
problem.
- Concurrency and Synchronization [
slides]
Race condition. Atomic instructions. Mutual exclusion. Spin
locks, blocking locks, semaphores, monitors, optimistic
(wait-free) synchronization.
- Deadlocks
[
slides]
Coffman Conditions. Deadlock Prevention, Avoidance,
Detection&Recovery; Lifelock.
- Memory Management
- Virtual Memory
[
slides]
Virtual Address. Page Table, MMU. Memory protection. Shared
memory.
- Paging and Trashing
[
slides]
Demand paging. Distributed shared memory. Trashing, Page fault
frequency, Working set, Balance set. Transactional memory.
- Linking [
slides]
Static linking (ELF). Dynamic linking. Shared libraries.
==== ENDE BACHERLOR-PROGRAMM
=====================================================
- 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.
- 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.
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) |
|
|
|