M. Anton Ertl (anton@mips.complang.tuwien.ac.at, Tel. 58801/18515)Praktikum: Performance Counters für Linux-Alpha oder Linux-PPCMit der zunehmenden Verbreitung von Multi-Core CPUs wird die Parallelisierung allgemeiner Anwendungen immer interessanter; eine sinnvolle Möglichkeit dazu scheinen Channels (Ein-Richtungs-Kommunikationskanäle zwischen zwei Threads, ähnlich der üblichen Verwendung von Pipes) zu sein: sie erlauben die Parallelisierung bei gleichzeitiger Modularisierung. Im Rahmen dieser Arbeit soll eine Anwendung auf diese Weise parallelisiert werden; mögliche Anwendungen wären Compiler wie lcc, tcc, oder gcc; Sie können aber nach Absprache auch eine beliebige andere Anwendung parallelisieren.
M. Anton Ertl (anton@mips.complang.tuwien.ac.at, Tel. 58801/18515)Praktikum oder Diplomarbeit: Reduktion von TLB-Misses mit variablen SeitengrößenDer perfctr patch erlaubt es, die Performance-Counter von Intel-kompatiblem Prozessoren zu benutzen. In diesem Praktikum soll dieser Patch auf einen Alpha-Prozessor oder PPC-Prozessor erweitert werden.
M. Anton Ertl (anton@mips.complang.tuwien.ac.at, Tel. 58801/18515)Praktikum: CachestatistikenProgramme, die auf große Mengen von Speicher in einer nicht-lokalen Weise zugreifen, werden oft stark von TLB-misses gebremst (der Translation Lookaside Buffer (TLB) ist ein sehr kleiner Cache in der MMU). Moderne Prozessoren können Speicherseiten verschiedener Größe verwalten. Dieses Feature kann dazu benutzt werden, um einen größeren Teil des Speichers im TLB abzubilden und damit die Anzahl der TLB-Misses zu reduzieren. In diesem Praktikum bzw. dieser Diplomarbeit soll das Betriebssystem (Linux) folgendermaßen verändert werden: es soll mit einer Seitengröße anfangen, die die Abbildung des gesamten Speichers im TLB erlaubt, und Seiten aufteilen, wenn der Speicher ausgeht. Im Rahmen der Diplomarbeit sollen Seiten auch wieder zusammengelegt (und zu einer Seite verbunden) werden, sobald es geht. Eine ähnliche Idee wird in einem LWN-Artikel diskutiert.
Ulrich Neumerkel (ulrich@complang.tuwien.ac.at, Tel. 58801/18513)Praktikum oder Diplomarbeit: Energiesparendes Scheduling unter LinuxNeuere Prozessoren führen Statistiken über viele Vorgänge wie das genaue Verhalten des Cache. In diesem Praktikum sollen diese Daten über eine möglichst allgemein gehaltene Schnittstelle unter Linux für intel x86 und dec alpha zur Verfügung gestellt werden.
Voraussetzungen: Linux-Kernel
Ulrich Neumerkel (ulrich@complang.tuwien.ac.at, Tel. 58801/18513)Praktikum: Linux Disk-Management für LaptopsViele Prozessoren erlauben es, während der Laufzeit die Betriebsfrequenz des Prozessors herunterzusetzen. Dadurch laufen Programme natürlich langsamer. Der Stromverbrauch geht jedoch effektiv meist stärker als nur proportional zurück. Wenn also keine hohen Anforderungen an die Antwortzeit eines Prozesses bestehen, kann es energiesparender sein, diesen Prozess bei niedriger Taktfrequenz auszuführen, statt ihn bei höchster Frequenz auszuführen und entsprechend früher in die Idle-Loop zu gehen.
Literatur: Mark Weiser, Alan Demers, Brent Welch, Scott Shenker. "Scheduling for Reduced CPU Energy", Operating System Design and Implementation (OSDI) Conference, Monterey, CA. November, 1994.
- BIOS-Schnittstellen
- Scheduler
- Traces
Voraussetzungen: Linux-Kernel
Ulrich Neumerkel (ulrich@complang.tuwien.ac.at, Tel. 58801/18513)Praktikum: Linux Prozess-Memory-ManagementZur Schonung der Batterie auf einem Laptop sollen die Plattenzugriffsstrategien von Linux adaptiert werden. üblicherweise wird durch den update-Dämon immer wieder auf die Platte zugegriffen. Dadurch ist es nicht möglich, die Platte zur Einsparung der Batterie abzuschalten. (Eine einfache, aber nicht optimale und zufriedenstellende Lösung ist es, den update-Dämon erst gar nicht zu starten und manuell zu sync-en.) Es soll eine für Laptops geeignetere Strategie implementiert werden, die die Zeit zu der die Platte abgeschaltet sein kann, maximiert.
Gegenwärtig gibt es eine relativ einfache, aber nicht optimale Lösung: mobile-update. Es fehlen vor allem Adaptierungen für Power-Managements etc.
Voraussetzungen: Linux-Kernel
Ulrich Neumerkel (ulrich@complang.tuwien.ac.at, Tel. 58801/18513)7 gefundenProzesse teilen gewisse Hauptspeicherbereiche miteinander. Etwa die nicht modifizierbaren Teile unabhängiger Prozessinstanzen, Bibliotheken und die nicht modifizierten Teile zwischen Vater- und Kindprozeß. Daten, die vom Prozeß selbst initialisiert wurden, werden jedoch nicht mit identischen Daten eines anderen Prozesses zusammengelegt. Durch das Zusammenlegen solcher Daten wird der Hauptspeicherbedarf und damit auch das Swapping (paging) in Linux weiter reduziert. Es soll a) gemessen werden, welche Speichereinsparungen dadurch erzielt werden könnten und b) der Linux-Kernel daraufhin adaptiert werden.
Siehe dazu auch das Mergemem-Projekt
Gegenwärtig sind vor allem effiziente Strategien zum Auffinden identischer Seiten von Interesse.
Voraussetzungen: Linux-Kernel