Suche nach Praktika


Suchbegriffe:

Linux

Gewünschte Betreuer:

Alle

Praktika

Praktikum oder Diplomarbeit: Parallelisierung mit Channels
M. Anton Ertl (anton@mips.complang.tuwien.ac.at, Tel. 58801/18515)

Mit 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.

Praktikum: Performance Counters für Linux-Alpha oder Linux-PPC
M. Anton Ertl (anton@mips.complang.tuwien.ac.at, Tel. 58801/18515)

Der 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.

Praktikum oder Diplomarbeit: Reduktion von TLB-Misses mit variablen Seitengrößen
M. Anton Ertl (anton@mips.complang.tuwien.ac.at, Tel. 58801/18515)

Programme, 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.

Praktikum: Plugin Writer Tutorial
Markus Raab (markus.raab@complang.tuwien.ac.at, Tel. 58801/185185)

Elektra provides a universal and secure framework to store configuration parameters in a global, hierarchical key database. The core is a small library implemented in C. The plugin-based framework fulfills many configuration-related tasks to avoid any unnecessary code duplication across applications while it still allows the core to stay without any external dependency. Elektra abstracts from cross-platform-related issues with an consistent API, and allows applications to be aware of other applications' configurations, leveraging easy application integration.

Your task is to write at least two plugins for Elektra. During that you document in form of an tutorial how to write serializer and filter plugins. Examples for plugins:

Needed skills:

Praktikum: Integrating further Technologies into Elektra
Markus Raab (markus.raab@complang.tuwien.ac.at, Tel. 58801/185185)

Elektra provides a universal and secure framework to store configuration parameters in a global, hierarchical key database. The core is a small library implemented in C. The plugin-based framework fulfills many configuration-related tasks to avoid any unnecessary code duplication across applications while it still allows the core to stay without any external dependency. Elektra abstracts from cross-platform-related issues with an consistent API, and allows applications to be aware of other applications' configurations, leveraging easy application integration.

Your task is to integrate at least two file based technologies into Elektra. Examples for such technologies:

Compare those on different properties, e.g. how they roundtrip, the file size, the speed and how they work together with other tools based on that technology.

Needed skills:

Praktikum: Integrating programming languages into Elektra
Markus Raab (markus.raab@complang.tuwien.ac.at, Tel. 58801/185185)

Elektra provides a universal and secure framework to store configuration parameters in a global, hierarchical key database. The core is a small library implemented in C. The plugin-based framework fulfills many configuration-related tasks to avoid any unnecessary code duplication across applications while it still allows the core to stay without any external dependency. Elektra abstracts from cross-platform-related issues with an consistent API, and allows applications to be aware of other applications' configurations, leveraging easy application integration.

Your task is to write at least two language bindings (whatever you prefer, e.g. Python, Perl, Java) with at least two technologies (gobject and swig). Develop examples and unit test to prove that all 4 combinations work correctly. Compare the features, speed and complexity of that technologies.

Needed skills:

Praktikum: Configuration GUI
Markus Raab (markus.raab@complang.tuwien.ac.at, Tel. 58801/185185)

Elektra provides a universal and secure framework to store configuration parameters in a global, hierarchical key database. The core is a small library implemented in C. The plugin-based framework fulfills many configuration-related tasks to avoid any unnecessary code duplication across applications while it still allows the core to stay without any external dependency. Elektra abstracts from cross-platform-related issues with an consistent API, and allows applications to be aware of other applications' configurations, leveraging easy application integration.

Your task is to generate a GUI out of a given configuration schema. Use at least two different GUI technologies (e.g. qt, html forms). Compare the different layout engines and how intuitive it is to use them.

Needed skills:

Praktikum: Configuration using IPC or network based daemons
Markus Raab (markus.raab@complang.tuwien.ac.at, Tel. 58801/185185)

Elektra provides a universal and secure framework to store configuration parameters in a global, hierarchical key database. The core is a small library implemented in C. The plugin-based framework fulfills many configuration-related tasks to avoid any unnecessary code duplication across applications while it still allows the core to stay without any external dependency. Elektra abstracts from cross-platform-related issues with an consistent API, and allows applications to be aware of other applications' configurations, leveraging easy application integration.

Your task is to build at least two Unix Daemons (e.g. dbus, snmp, ldap) which allow access to Elektra's configuration. Compare how the different the mappings and semantics of the protocols are. Which advantages/disadvantages do the different Bridges have? Also compare with standalone latency, not using those daemons.

Needed skills:

Praktikum: Efficient Datastructure for Elektra's Configuration
Markus Raab (markus.raab@complang.tuwien.ac.at, Tel. 58801/185185)

Elektra provides a universal and secure framework to store configuration parameters in a global, hierarchical key database. The core is a small library implemented in C. The plugin-based framework fulfills many configuration-related tasks to avoid any unnecessary code duplication across applications while it still allows the core to stay without any external dependency. Elektra abstracts from cross-platform-related issues with an consistent API, and allows applications to be aware of other applications' configurations, leveraging easy application integration.

Your task is to implement an efficient datastructure in C, reduce the number of allocations and compare those methods with other methods to improve the overall performance. The API should be either improved or kept compatible. The used techniques should be benchmarked and discussed in the thesis.

Needed skills:

Praktikum: Configuration frontend generator for Elektra
Markus Raab (markus.raab@complang.tuwien.ac.at, Tel. 58801/185185)

Elektra provides a universal and secure framework to store configuration parameters in a global, hierarchical key database. The core is a small library implemented in C. The plugin-based framework fulfills many configuration-related tasks to avoid any unnecessary code duplication across applications while it still allows the core to stay without any external dependency. Elektra abstracts from cross-platform-related issues with an consistent API, and allows applications to be aware of other applications' configurations, leveraging easy application integration.

Your task is to write a frontend generator from a given schema to languages. At least one target language needs to be compiled (e.g. Java, C, C++). The first subtask is to compare existing template engine technologies (e.g. Cheetah). The next subtask is to use the best engine technology or to write one yourself, using templates similar to Razor/Cheetah in C/C++.

Needed skills:

Praktikum: Configuration Architecture Tutorials
Markus Raab (markus.raab@complang.tuwien.ac.at, Tel. 58801/185185)

Elektra provides a universal and secure framework to store configuration parameters in a global, hierarchical key database. The core is a small library implemented in C. The plugin-based framework fulfills many configuration-related tasks to avoid any unnecessary code duplication across applications while it still allows the core to stay without any external dependency. Elektra abstracts from cross-platform-related issues with an consistent API, and allows applications to be aware of other applications' configurations, leveraging easy application integration.

Every software project faces the problem to read in startup configuration. There are many ways doing so, e.g. with datastructures or hand-crafted classes passed around which are generated and updated from a seperate configuration module. Research for different possibilites how it can be done. Then implement at least two of them using Elektra as configuration storage in some free software project (preferable your own or where you are already active). Write an tutorial how to use Elektra and compare these approaches.

Needed skills:

Praktikum: ABI Testing
Markus Raab (markus.raab@complang.tuwien.ac.at, Tel. 58801/185185)

Elektra provides a universal and secure framework to store configuration parameters in a global, hierarchical key database. The core is a small library implemented in C. The plugin-based framework fulfills many configuration-related tasks to avoid any unnecessary code duplication across applications while it still allows the core to stay without any external dependency. Elektra abstracts from cross-platform-related issues with an consistent API, and allows applications to be aware of other applications' configurations, leveraging easy application integration.

Compatible ABI (Application Binary Interface) ensures that a program linked against a library continues to work when the library is upgraded. Your task is to compare different technologies to check if libraries are compatible and integrate them in a jenkins build server.

Needed skills:

Praktikum: Cachestatistiken
Ulrich Neumerkel (ulrich@complang.tuwien.ac.at, Tel. 58801/18513)

Neuere 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

Praktikum oder Diplomarbeit: Energiesparendes Scheduling unter Linux
Ulrich Neumerkel (ulrich@complang.tuwien.ac.at, Tel. 58801/18513)

Viele 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.

Voraussetzungen: Linux-Kernel

Praktikum: Linux Disk-Management für Laptops
Ulrich Neumerkel (ulrich@complang.tuwien.ac.at, Tel. 58801/18513)

Zur 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

Praktikum: Linux Prozess-Memory-Management
Ulrich Neumerkel (ulrich@complang.tuwien.ac.at, Tel. 58801/18513)

Prozesse 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

16 gefunden

Folgende Personen befassen sich mit diesen Themen:

Markus Raab (markus.raab@complang.tuwien.ac.at, Tel. 58801/185185)

M. Anton Ertl (anton@mips.complang.tuwien.ac.at, Tel. 58801/18515)

Ulrich Neumerkel (ulrich@complang.tuwien.ac.at, Tel. 58801/18513)

3 gefunden
Neue Suche