TU Berlin

Fachgebiet Kommunikations- und BetriebssystemeModSched - Domänen-Unabhängiges Modulares Scheduler-Framework für Heterogene Multi- und Many-Core Architekturen

Logo Fachgebiet KBS

Inhalt des Dokuments

zur Navigation

ModSched - Domänen-Unabhängiges Modulares Scheduler-Framework für Heterogene Multi- und Many-Core Architekturen

Rechnersysteme haben in unserer technisierten Welt einen sehr hohen Durchdringungsgrad erreicht und sind in fast jedem elektronischen Gerät zu finden – von einer einfachen Waschmaschine bis hin zur komplexen Fertigungsanlage. Fast all diesen Systemen ist gemein, dass sie eine Art Betriebssystem benötigen, welches die Aufgaben des jeweiligen Systems koordiniert. Eine zentrale Fragestellung innerhalb eines Betriebssystems ist dabei, welche Aufgabe zu welchem Zeitpunkt zu bearbeiten ist. Diese Aufgabe übernimmt der Scheduler. Dabei sind verschiedene Betriebsziele zu beachten. Bei der Steuerungssoftware eines Verbrennungsmotors steht z.B. die Einhaltung von Fristen im Vordergrund, um die Funktionstüchtigkeit des Motors zu gewährleisten, während bei einem Desktoprechner die Antwortzeit des Systems von stärkerer Bedeutung ist, um eine gute Nutzererfahrung sicher zu stellen. Der Scheduler wird dabei für gewöhnlich systemspezifisch entworfen und implementiert. Diese Entwicklung ist meist sehr aufwendig und kostenintensiv. Somit wäre eine allgemeinere Lösung für das Scheduling-Problem wünschenswert, die so wenig systemspezifisch wie möglich ist. Im Rahmen des Vorhabens wurde dies durch ein einheitliches anwendungsunabhängiges Scheduler-Framework adressiert.

Schwerpunkte und Ziele

Der Bereich der Betriebssysteme hat in den vergangen Jahren zunehmend Probleme, mit der Entwicklung der Hardware Schritt zu halten: Die Architektur von Rechensystemen ist in den letzten Jahren einem starken Wandel unterworfen. Statt einen Leistungszuwachs durch Erhöhung der Taktraten bei gleichbleibender Architektur zu erreichen, wird auf Seite der Hardware der Leistungszuwachs zunehmend durch Änderungen an der Rechnerarchitektur, der Erhöhung der Anzahl der Recheneinheiten hin zu Many-Core-Systemen und der zunehmenden Verwendung von Spezialrecheneinheiten für die Datenverarbeitung wie GPUs oder DSPs erreicht. Im Bereich der Betriebssysteme gibt es noch keinen übergreifenden Ansatz, mit dieser Problematik umzugehen, so dass zur Zeit Systeme nicht so effizient genutzt werden können, wie es bei einer perfekten Anpassung der Systemsoftware möglich wäre.

In dem Projekt soll eine Lösung für diese Problematik basierend auf der Forschungsarbeit im Fachgebiet für den Bereich des Schedulers, der einer der wichtigsten Bestandteile einer jeden Systemsoftware ist, praktisch umsetzen. Um dies zu erreichen, soll der Scheduler so systemunabhängig wie möglich gestaltet werden, wodurch flexibel auf sich verändernde Gegebenheiten reagiert werden kann. Die Systemabhängigkeit lässt sich dabei in drei orthogonale Dimensionen unterteilen, welche einzeln betrachtet werden können: 

  • Anwendungsdomäne
  • Software
  • Systemarchitektur

Daraus ergeben sich direkt drei orthogonale Dimensionen der Unabhängigkeit, die erreicht werden müssen, um eine möglichst große Systemunabhänigkeit des Schedulers zu erreichen.

Ziel der Unabhängigkeit von der Anwendungsdomäne ist es, eine Scheduling-Lösung über die Grenzen der ursprünglich betrachteten Anwendungsdomäne hinaus nutzen zu können. Unter dem Begriff der Software-Unabhängigkeit ist die einfache Portierung der Lösung zwischen verschiedenen System-Software-Lösungen zu verstehen. So soll es möglich sein, zentrale Funktionalitäten und Entscheidungslogiken des Schedulers über die Grenzen von Betriebssystemen hinaus zu nutzen. Unter Unabhängigkeit bezüglich der Systemarchitektur ist schlussendlich die Fähigkeit zu verstehen, schnell auf veränderte architektonische Gegebenheiten reagieren zu können. So soll es möglich sein, wesentlich schneller als bisher auf Änderungen z.B. der Fähigkeiten von Recheneinheiten, der Speicherhirarchie oder Kommunikation zwischen Recheneinheiten zu reagieren.

Im Rahmen des Projekts sollen diese Unabhängigkeiten durch ein modellbasiertes Scheduler-Framework erreicht werden. Dieses soll auf Modulen basieren, welche es ermöglichen, die Entscheidungsfunktionen auf einfache Weise in anderen Systemen zu nutzen. Darüber hinaus vereinfacht der Modul-Ansatz die Implementierung neuer Funktionalitäten gegenüber bisherigen monolithischen Lösungen. Die Unabhängigkeit von der Anwendungsdomäne wird durch die Modellbasiertheit des Ansatzes, durch die es möglich ist, eine große Anzahl von verschiedenen Anforderungen in ein einheitlichen Konzept zu überführen, angestrebt. Durch die Framework-Struktur ist schließlich auch die Unabhängigkeit bezüglich der genutzten Systemsoftware gegeben, da das Framework feste Schnittstellen definieren soll.

Quellcode

Die Ergebnisse des Projekts stehen als Quellcode frei zur Verfügung. Der Master-Branch der Git-Repositories spiegelt den letzten stabilen Stand wieder:

 

 

 

Navigation

Direktzugang

Schnellnavigation zur Seite über Nummerneingabe