Hauptseminar 2 SWS, Schein, ECTS-Studium, ECTS-Credits: 4
nur Fachstudium
Zeit und Ort: Do 14:00 - 15:30, 0.031
Vorbesprechung: 5.2.2009, 16:00 - 17:00 Uhr, Raum 0.035
Studienfächer / Studienrichtungen
WPF CE-MA-INF ab 1 (ECTS-Credits: 4)
WPF INF-DH-VSB ab 6 (ECTS-Credits: 4)
WPF IuK-DH-SEM ab 6 (ECTS-Credits: 4)
Voraussetzungen / Organisatorisches
Scheinerwerb: Vortrag, Ausarbeitung und regelmäßige, aktive Teilnahme
Die Vorbesprechung und Themenvergabe findet am Donnerstag, 5.2. von 16:00 bis 17:00 im Raum 0.035 (I4-Besprechungsraum) statt. Falls Ihr es zu diesem Termin nicht schafft, aber trotzdem Interesse an dem Seminar habt, einfach eine E-Mail an einen der Betreuer schicken.
Die sich daraus ergebenden Herausforderungen für das Design und die Entwicklung von Systemsoftware, insbesondere von Betriebssystemen, sind das Thema dieses Seminars.
Herausforderungen von Tausendundeinem Kern
Glaubt man den Voraussagen einiger Experten, so werden innerhalb von zehn
Jahren bis zu 1000 Prozessorkerne in einer CPU untergebracht sein. Dieser
Vortrag soll die Herausforderungen bei der Hard- und Softwareentwicklung
solcher Systeme erläutern, sowie die derzeit diskutierten
Lösungsansätze vorstellen.
Hardwareunterstützung für nicht-blockierende Synchronisation
Hardwareunterstützung für lock- und wartefreie Synchronisationsalgorithmen
In den meisten aktuellen Prozessoren sind Operationen implementiert, die das Design von warte- und lockfreien Datenstrukturen ermöglichen. Dazu gehören z.B. compare-and-swap und load-linked/store-conditional Operationen. Für die Zukunft ist relevant, ob und wie gut sich diese Mechanismen auch in größeren Mehrkernsystemen implementieren lassen.
Linearisierbarkeit als Korrektheitseigenschaft für nicht-blockierende
Datenstrukturen
Korrektheitseigenschaften für konkurrente Objekte, wie die stille Konsistenz
(quiescent consistency) oder die sequentielle Konsistenz (sequential
consistency), sind für größere Software-Projekte zu schwach, da sie
entweder keine Aussagen bzgl. der sog. Programmreihenfolge (quiescent
consistency) gewährleisten können oder die Ausführung jedes konkurrenten
Objekts für deren Korrektheit bewiesen werden muss (sequential consistency).
Bei der Linearisierbarkeit genügt statt dessen eine Ausführungsreihenfolge
eines Objekts des selben Typs zu untersuchen, um die Korrektheit aller Objekte
dieses Typs zu beweisen. Weiterhin können bei der Linearisierbarkeit Aussagen
über die Programmreihenfolge gemacht werden, was diese
Korrektheitseigenschaft für das Design nicht-blockierender Objekte in
größeren Systemen mit modularen Datenstrukturen interessant werden lässt.
Wartefreie Synchronisation
In Echtzeitsystemen muss der Forderung nach Rechtzeitigkeit nachgekommen
werden, um zu gewährleisten, dass Deadlines eingehalten werden koennen. Schwächere
Fortschrittsbedingungen nicht-blockierender Objekte, wie Behinderungsfreiheit
(obstruction-freedom) oder Sperr-/Lock-Freiheit (lock-freedom) lassen keine
Aussagen über die maximale Ausführungszeit zu. Dies kann dazu führen, dass
es zu Verhungerung einzelner Ausführungsfäden kommen kann. Ein wartefreies
Objekt garantiert, dass jeder Ausführungsfaden seine Operationen innerhalb
einer Abfolge endlicher Schritte beenden kann. Wartefreie Datenstrukturen eigenen sich deshalb insbesondere für Echtzeitsysteme, da hier die Verhungerung von Aktoren aussgeschlossen werden kann sowie die WCET bekannt ist.
Multicore in Echtzeitsystemem (1)
Auch in Echtzeitssystemen sollen künftig Mehrkernprozessoren
zum Einsatz kommen. In diesem Vortrag geht es um echtzeitfähiges
Mehrkernscheduling, sowie das Multiporcessor Priority Ceiling Protocol
zur Synchronisation.
Industrievortrag: Live Migration of Virtual Machines
Jacob Hansen (VMware)
-
02.7.09
Multicore in Echtzeitsystemem (2)
Echtzeitfähige Betriebssysteme stellen noch weitreichendere Anforderungen an die verwendeten Synchronisationsmechanismen, da das Timing immer im Vorraus berechenbar sein muss. Im Vortrag sollen die Möglichkeiten der nicht-blockierenden Synchronisation auch im Echtzeitbereich ausgelotet werden.
Skalierbare Betriebssystemkerne für Multiprozessorsysteme
Traditionell synchronisieren Betriebssysteme ihre Kerndatenstrukturen mit Hilfe von Locks, um gegenseitigen Ausschluss zu erreichen. Mit steigender Anzahl an parallel arbeitenden Prozessoren jedoch stößt dieses Paradigma jedoch an Grenzen. Verschiedene Systeme aus dem Forschungsbereich versuchen dieses Problem mit Hilfe von lockfreien Synchronisationsmechanismen zu umgehen, um auf die in Zukunft weiter steigende Anzahl an Kernen vorbereitet zu sein.