printethlogo
 
Contact | Sitemap | Help | Login
print
  

Vorlesung Betriebssysteme FS 2009 (252-0056-00L)

Dr. Felix Friedrich, Prof. Jürg Gutknecht

Inhalt

Neuigkeiten

Neu: Prüfungen 2009 online siehe unten.


Resultat der Unterrichtsbefragung (Unsere Fragen)

Folien und Übungsblätter

Jeweils nach den Vorlesungsstunden wird hier das aktualisierte Skript im PDF-Format erscheinen. Die aktuellen Übungsblätter erscheinen auch hier, sobald sie in der Übung ausgeteilt wurden. Lösungsskizzen (keine ausführlichen Lösungen!) zu den Aufgaben werden hier bereit gestellt, jeweils nach der Mittwochsübung.

Es gibt zu jeder Woche auch die kommentierten Folien -- ohne Anspruch auf Vollständigkeit und sprachliche Eleganz der Kommentare. Die Folien auf den kommentierten Seiten sind leider gepixelt. Dies ist ein neues Problem von PowerPoint2007, zu dem es anscheinend keine schnelle Lösung gibt. Für Hinweise bin ich dankbar.

Woche Folien Mittwoch Folien Freitag Komm. Folien Übungsblatt Problems Lösung (Skizze) Slides Übungsstunde
1. 18.2. 20.2. 090220 --- --- --- ---
2. 25.2. 27.2. 090227 uebung01 problems01 loesung01 slides01
3. 4.3. 6.3. 090306 uebung02 problems02 loesung02 slides02
4. 11.3. 13.3. 090313 uebung03 problems03 loesung03 slides03,SSFS
5. 18.3. 20.3. 090320 uebung04 problems04 loesung04 slides04
6. 25.3. 27.3. 090327 uebung05 problems05 loesung05 slides05,slides05s, CSR
7. 1.4. 3.4. Addendum* 090403 uebung06 problems06 loesung06 slides06p
8. 8.4. [10.4.] 090408 uebung07 problems07 loesung07 slides07p
9. [15.4.] [17.4.] --- --- --- --- ---
10. 22.4. 24.4. 090424 --- --- --- ---
11. 29.4.** [1.5.] 090429 uebung08 problems08 loesung08 slides08
12. 6.5. 8.5. 090508 uebung09 problems09 loesung09 slides09
13. 13.5. 15.5. 090515 uebung10 problems10 loesung10  
14. 20.5. 22.5. 090522 uebung11 problems11 loesung11  
15. 27.5. 29.5. 090529 - - - -
alle folien Rückblick kommentiert Zur Pruefung      
*Addendum nicht gelesen: zusätzliche Information ** Animation zu den Signal/Wait Implementationen: AVI, WMV

Bemerkungen und weiterführende Links zu den Vorlesungsstunden

Datum Bemerkungen / Links
18.2.2009 Administratives, Übersicht, Literatur und Einleitung
20.2.2009 Bootstrapping und Partitionen
Quellen im Internet: BIOS, BIOS Int13, Real Mode, UEFI Forum, CHS vs LBA, EBR, MBR, GUID Partition Table
25.2.2009 Bootmanager und Beispiele zum Bootstrapping
Zum (Multi-)Bootlayout von Windows Vista: http://www.multibooters.co.uk/multiboot.html
Zum Startup von Windows Vista: http://en.wikipedia.org/wiki/Windows_Vista_startup_process (und enthaltene Links)
Booting Linux: http://proquest.safaribooksonline.com/0596005652/understandlk-APP-A
Privilegien-Stufen bei Intel-Prozessoren: Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 3A: System Programming Guide, Part 1, Kapitel 4
27.2.2009 Dateisysteme I: Aufgaben, API, Grundprinzipien
Zu I-Nodes: http://de.wikipedia.org/wiki/Inode
4.3.2009 Dateisysteme II: Verzeichnisse, Links und Fallbeispiele
Zum FAT Dateisystem: http://de.wikipedia.org/wiki/File_Allocation_Table
Zu symbolic / soft links: http://en.wikipedia.org/wiki/Symbolic_link
Zu hard links: http://de.wikipedia.org/wiki/Harter_Link
6.3.2009 Dateisysteme III: Fallbeispiele: NTFS, Unix File Systeme, ZFS, HFS+
Zum NTFS Dateisystem: http://www.pcguide.com/ref/hdd/file/ntfs/ , http://technet.microsoft.com/en-us/library/cc781134.aspx
zum HFS+ Dateisystem: http://developer.apple.com/technotes/tn/tn1150.html
Zum ext3-Filesystem: http://de.wikipedia.org/wiki/Ext3
Informationen zum Reiser Filesystem finden Sie hier http://en.wikipedia.org/wiki/ReiserFS oder auf der deutschen Seite http://de.wikipedia.org/wiki/ReiserFS, dort gibt es auch Links zu anderen interessanten Filesystemen wie JFS, XFS und ZFS.
zum Ext4 Filesystem: http://www.scribd.com/doc/7114603/Ext4-File-System
Zum ZFS: Überblicksartikel in http://de.wikipedia.org/wiki/ZFS_(Dateisystem), Demonstrationsfilm unter http://opensolaris.org/os/community/zfs/demos/basics/, Dokumentation: http://www.opensolaris.org/os/community/zfs/docs/, deutscher Übersichtsartikel: http://mediacast.sun.com/users/constant/media/LT2007OpenSolarisZFSPaper_v1.1.pdf
11.3. Dateisysteme IV: Fehlertoleranz und Optimierungen
Überblicksartikel (Blockbasierte / Extendbasierte Filesysteme, variable Blockgrößen, Logging/Journaling Filesystems) : hier.
13.3. Dateisysteme V: Optimierungen
RAID: http://de.wikipedia.org/wiki/RAID oder (etwas kürzer) http://en.wikipedia.org/wiki/Redundant_array_of_independent_disks.
VFS und NFS, insbesondere das Zusammenspiel V-Node / R-Node / I-Node aus Tannenbaum, S. 798 ff.
Artikel über möglichen Datenverlust bei Ext4 (als Folge der Delayed Allocation): http://www.heise.de/english/newsticker/news/134483, http://www.heise.de/newsticker/Moeglicher-Datenverlust-bei-Ext4--/meldung/134346 . Herzlichen Dank an Herrn Bänziger für den Hinweis!
  Ein- und Ausgabe: Memory Mapped I/O, Interrupts und DMA
Informationen zum Schreiben von Gerätetreibern im Buch LINUX Device Drivers (3rd edition), Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman, O'Reilly, 2005. Online verfügbar unter http://lwn.net/Kernel/LDD3/.
18.3. Ein- und Ausgabe: Interrupts und DMA
AMD System Programming Manual: http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24593.pdf, Seiten 205ff
20.3. Ein-und Ausgabe: Beispiele von Gerätetreibern. Prinzipielles zu Gerätetreibern
25.3. Hauptspeicherverwaltung: Einprozess-Speicherlayout und -Verwaltung
Zur Speicherallokation bei Linux (für diejenigen, die es ganz genau wissen möchten): http://www.informit.com/content/images/0131453483/downloads/gorman_book.pdf
Hoard Memory Allocator: http://www.cs.umass.edu/%7Eemery/pubs/berger-asplos2000.pdf
27.3. Hauptspeicherverwaltung: Garbage Collection
Die beste Quelle zum Thema Garbage Collection ist das zu Anfang der Vorlesung angegebene Buch von R. Jones, R. Lins, Garbage Collection, Algorithms for Automatic Dynamic Memory Management, Wiley, 2003. (Natürlich erwarten wir von Ihnen nicht, dass Sie dieses Spezialthema eingehend studiert haben. Die nötigen Inhalte werden in der Vorlesung vermittelt. Aber das Buch ist sehr interessant).
Zum Thema Garbage Collection in .Net empfehle ich den Link http://www.codeproject.com/dotnet/garbagecollection.asp.
1.4. Hauptspeicherverwaltung: Garbage Collection (Finalizers, Weak Pointers und Drei-Farben Abstraktion)
Zum Thema finalizers bei Java, cf. http://java.sun.com/javase/6/docs/api/java/lang/Object.html#finalize.
3.4. Inkrementelle Garbage Collection und Laufzeitunterstützung für OOP
8.4. Multi-Prozess Speicherlayout: Partitionierung, Segmentierung und Paging
Dieses Thema ist in allen mir bekannten Lehrbüchern (Stallings, Tannenbaum, Silberschatz ...) ausführlich beschrieben
22.4. Virtueller Speicher: Seitenersetzung, Seitenzuteilung
Zum Thema Working Set Bestimmung und Speicherzuteilungsalgorithmen findet sich einiges in den Standard-Lehrbüchern. Siehe z.B. Stallings, Kap. 8, Tanenbaum, Kap. 4.4-4.6 oder Silberschatz Kap.9. Außerdem die einschlägigen Webseiten wie z.B. http://en.wikipedia.org/wiki/Page_replacement_algorithm.
24.4. Prozessorenverwaltung: Parallele Architekturen, Prozesssynchronisation
29.4. Semaphoren und Monitore
zu den verschiedenen Signal And Wait Implementationen hier die Animation aus der Vorlesung: AVI, WMV
6.5. Deadlocks
Das Thema Deadlocks und eine entsprechende Formalisierung ist in den Standardlehrbüchern zu finden, z.B.: Silberschatz, Kap.7, Stallings Kap.6, Tanenbaum Kap.3
8.5. Prozesse und Threads
Literatur: Standardlehrbücher, Microsoft Windows Internals, Understanding the Linux Kernel (s.u.)
13.5. Threads
Zum Thema Prozesswechsel bei Linux (Task State Segments), siehe: Understanding the Linux Kernel, Kap3: Process Switch. Zur Hardware-Unterstützung siehe z.B. AMD Architecture Programmer's Manual, S. 33 und 106. Zum Thema Interprozesskommunikation und Signale, eignet sich Linux-bezogen auch Understanding the Linux Kernel, Kap19: Process Communication bzw. das Kapitel über Signale
15.5. IPC und Scheduling
20.5. Echtzeitscheduling, Betriebssystemmodelle
Links: Linux Module, Exokern Betriebssystem Nemesis, Artikel über den Exokern, Artikel über Xen
22.5. Betriebssystemmodelle, Virtuelle Maschinen
Wer sich in das Thema virtuelle Maschinen genauer einlesen möchte, dem sei das Buch Jim, Jr. Smith, Ravi Nair, James E. Smith , Virtual Machines: Versatile Platforms For Systems And Processes, Publisher Morgan Kaufmann Publishers, May 2005, ISBN 1-55860-910-5 empfohlen. Im Internet gibt es auch eine Menge Artikel und Vorträge zu finden, es gestaltet sich allerdings schwierig, mehr über Interna der VMs zu erfahren. Bzgl. QEMU findet sich dazu etwas hier.
Eine Beschreibung der Java VM findet sich in den (online lesbaren) Büchern auf http://java.sun.com/docs/books/jvms/. Die .NET Common Language Runtime ist unter anderem im Buch Compiling for the .NET Common Language Runtime (CLR) von John Gough beschrieben.
27.5. Virtuelle Maschinen: Java VM und .NET CLI
29.5. Fallstudien
Zum Thema '''Linux und Windows'''. Für Linux empfiehlt sich das Buch Understanding the Linux Kernel, 3rd Edition, by Daniel P. Bovet, Marco Cesati, O’Reilly 2005. Dieses können Sie in der ETH online lesen unter http://proquest.safaribooksonline.com/0596005652. Um Windows-Internals kennenzulernen empfiehlt sich das leider nur käuflich erhaltbare Buch Mark E. Russinovich, David Solomon, Microsoft Windows Internals, Fourth Edition, Microsoft Press 2005. Einen tabellarischen Vergleich zwischen Linux 2.6. und Windows Vista finden Sie unter http://widefox.pbwiki.com/. Unterhaltsame und interessante Zusatzinformationen zum Thema Linux vs. Minix und Microkernel bekommen Sie auch auf der Seite http://www.cs.vu.nl/~ast/reliable-os/ und den darin enthaltenen Links.

Allgemeines

Die Vorlesung Betriebssysteme richtet sich an Informatik Bachelor Studenten im 4. Semester. Es werden die Inhalte zum Verständnis des Aufbaus von und der Vorgänge in einem Betriebssystem vermittelt. Thema sind Betriebssysteme mit Betonung der konzeptuellen Fragestellungen und Lösungsansätze. Insbesondere werden die beiden Hauptaufgaben, nämlich Verwaltung von Ressourcen und die Laufzeitunterstützung von Programmen diskutiert.

Stichwörter: Bootvorgang, Filesysteme, Hauptspeicherverwaltung und Garbage Collection, Prozesse und Threads, Gerätetreiber, Laufzeittypenunterstützung, Virtuelle Systeme. Voraussetzung für den erfolgreichen Besuch der Vorlesung sind Programmierkenntnisse, am besten in der Systemprogrammierung.

Die Unterrichtssprache ist deutsch.

Aufzeichnung der Vorlesung

Zu dieser Vorlesung ist ein Kanal auf dem Multimedia Portal der ETH eingerichtet, Sie können die Folien als Videodateien unter http://www.podcast.ethz.ch/channels/details?id=777 (Slides-Video+Audio) herunterladen.

Termine


Vorlesung
Tag Zeit Ort
Mittwoch 9.15-10.00 HG E 3  
Freitag 10.15-12.00 HG E 5  

Übungen
Tag Zeit Ort Assistent
Montag 14-16 IFW A 34 Ulrike Glavitsch
Montag 14-16 IFW B 42 Sven Stauber
Montag 14-16 CAB G57 Philipp Bönhof
Mittwoch 15-17 CAB G59 Florian Negele
Mittwoch 15-17 CAB H53 Roman Mitin

Chefassistent ist Sven Stauber.

Aus datenschutzrechtlichen Gründen veröffentliche ich keine Namen und die Zuordnung zu den Übungsgruppen. Wenn Sie vergessen haben, in welcher Gruppe Sie eingeteilt sind, so fragen Sie mich bitte (per email oder vor / nach der Vorlesung).

Übungen

Es gibt eine Übungsgruppe, die englischsprachig gehalten wird. Allgemein können Lösungen der Übunsgaufgaben sowohl englisch als auch deutsch abgegeben werden. Ansonsten ist die Vorlesungs- und Übungssprache deutsch. Übungsblätter siehe unten.

Dieses Jahr werden wir wieder praktische Übungen einführen. Dazu dient unser Betriebssystem A2 sowohl als Entwicklungs- als auch als Experimentalplattform. Weitere Informationen, insbesondere Anleitungen zu den einzelnen praktischen Übungen finden Sie

hier.

Prüfung

Die Prüfung ist (hand-)schriftlich. Prüfungsstoff ist der gesamte Stoff der Vorlesung, inklusive praktischer und theoretischer Übungen. Es sind keine Hilfsmittel zugelassen. Eine gute Voraussetzung für den Erfolg ist der regelmässige und aufmerksame Besuch von Vorlesung und Übungen.

In the exam (as well as in the exercises by the way) it is possible that you deliver your solutions in English or German. We will also hand out the problems in both, German and English. Please ask me or any of the assistants if you don't think you can manage that, in this case we shall normally be able to find a solution for other languages also, but we do expect that you contact us in advance. Language barriers should not provide a cause of frustration.

Download
Endterm 2007: Deutsch, Englisch
Endterm 2008: Deutsch, Englisch
Endterm 2009: Deutsch, Englisch
Endterm 2009(rep): Deutsch, Englisch

Literatur

Es gibt eine große Menge an Büchern über Betriebssysteme, die meisten sind (zu) ausführlich. Hier eine Auswahl:

Der Vorlesungsstoff wird durch keines der Bücher genau abgedeckt. Für diejenigen, die die Vorlesung Systemprogrammierung nicht besucht haben, empfiehlt sich zur Vorbereitung oder zum Nachlesen:

Stoff zu ausgewählten Themen entnehme ich unter anderem den Büchern

Kontakt

Email: felix.friedrich(at)inf.ethz.ch

In der Woche vor der Prüfung (29.5.-5.6.) bin ich nicht erreichbar. Dann bitte Chefassistenten Sven Stauber kontaktieren.

Tel: +41 44 6328312





 

Wichtiger Hinweis:
Diese Website wird in älteren Versionen von Netscape ohne graphische Elemente dargestellt. Die Funktionalität der Website ist aber trotzdem gewährleistet. Wenn Sie diese Website regelmässig benutzen, empfehlen wir Ihnen, auf Ihrem Computer einen aktuellen Browser zu installieren.

Important Note:
The content in this site is accessible to any browser or Internet device, however, some graphics will display correctly only in the newer versions of Netscape. To get the most out of our site we suggest you upgrade to the newer browser.

© 2012 ETH Zurich | Imprint | Disclaimer | 11 March 2010
top