M. Anton Ertl (anton@mips.complang.tuwien.ac.at, Tel. 58801/18515)Praktikum oder Diplomarbeit: Parallelisierung mit ChannelsEs ist mit realer Hardware schwierig und langwierig, zu Testen, ob und wie gut ein Dateisystem einen Absturz übersteht, insbesondere ob die Daten dabei konsistent sind. Im Rahmen dieser Arbeit soll ein Testframework auf Basis einer virtuellen Maschine entwickelt werden, das auf verschiedene Dateisysteme angewendet werden kann. Einige Ideen dazu: Die virtuelle Maschine stellt eine virtuelle Platte zur Verfügung, die für jeden Sektor mitführt, ob er sicher geschrieben wurde, oder nur vielleicht (oder eventuell, in welchem logischen Zeitbereich der Sektor geschrieben wurde). Nach einem simulierten Stromausfall darf das Filesystem nicht von Sektoren lesen, die vielleicht geschrieben wurden. Man müßte sich allerdings noch etwas für Dateisysteme überlegen, die mit Checksums arbeiten. Weiters müssen noch Testprogramme geschrieben und/oder gesammelt werden, bei denen die Dateisysteme eher zu Inkonsistenzen neigen.
M. Anton Ertl (anton@mips.complang.tuwien.ac.at, Tel. 58801/18515)Praktikum oder Diplomarbeit: Integrating further Technologies into ElektraMit 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.
Markus Raab (markus.raab@complang.tuwien.ac.at, Tel. 58801/185185)Praktikum oder Diplomarbeit: Integrating programming languages into Elektra
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.
- csv, tsv
- C-Code, C++-Code
- flat xml, html
- yaml
- apache configuration
For more bachelor/master theses related to this topic, please search for Elektra in TISS. It is also possible to suggest your own topics or combine different topics.
Needed skills:
- The thesis should be written in english.
- C or C++ with focus on good code quality, documentation and unit tests.
- Preferable are CMake and Shell Skills
Markus Raab (markus.raab@complang.tuwien.ac.at, Tel. 58801/185185)Praktikum oder Diplomarbeit: Configuration GUI
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.
For more bachelor/master theses related to this topic, please search for Elektra in TISS. It is also possible to suggest your own topics or combine different topics.
Needed skills:
- The thesis should be written in english.
- Two programming languages with focus on good code quality, documentation and unit tests.
- Preferable are CMake and Shell Skills
Markus Raab (markus.raab@complang.tuwien.ac.at, Tel. 58801/185185)Praktikum oder Diplomarbeit: Energiesparendes Scheduling unter Linux
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.
For more bachelor/master theses related to this topic, please search for Elektra in TISS. It is also possible to suggest your own topics or combine different topics.
Needed skills:
- The thesis should be written in english.
- C or C++ with focus on good code quality, documentation and unit tests.
- Preferable are CMake and Shell Skills
Ulrich Neumerkel (ulrich@complang.tuwien.ac.at, Tel. 58801/18513)6 gefundenViele 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