|
|
||||||||||
| 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 |
| 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. |
| Tag | Zeit | Ort | |
|---|---|---|---|
| Mittwoch | 9.15-10.00 | HG E 3 | |
| Freitag | 10.15-12.00 | HG E 5 |
| 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 |
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.