Refine
Document Type
- Doctoral Thesis (1)
- Habilitation (1)
Language
- German (2)
Has Fulltext
- yes (2)
Is part of the Bibliography
- no (2)
Keywords
- Organic Computing (2)
- Autonomie (1)
- Echtzeitsystem (1)
- Eingebettetes System (1)
- Real-time systems (1)
- Selbstorganisation (1)
- Softwareentwicklung (1)
- Ubiquitous Computing (1)
- organic computing (1)
Institute
- Informatik (2)
In dieser Arbeit wird die Verteilung von zeitlich abhängigen Tasks in einem verteilten System unter den Gesichtspunkten des Organic Computing untersucht. Sie leistet Beiträge zur Theorie des Schedulings und zur selbstorganisierenden Verteilung solcher abhängiger Tasks unter Echtzeitbedingungen. Die Arbeit ist in zwei Teile gegliedert: Im ersten Teil werden Tasks als sogenannte Pfade modelliert, welche aus einer festen Folge von Aufträgen bestehen. Dabei muss ein Pfad ununterbrechbar auf einer Ressource ausgeführt werden und die Reihenfolge seiner Aufträge muss eingehalten werden. Natürlich kann es auch zeitliche Abhängigkeiten zwischen Aufträgen verschiedener Pfade geben. Daraus resultiert die Frage, ob ein gegebenes System S von Pfaden mit seinen Abhängigkeiten überhaupt ausführbar ist: Dies ist genau dann der Fall wenn die aus den Abhängigkeiten zwischen den Aufträgen resultierende Relation <A irreflexiv ist. Weiterhin muss für ein ausführbares System von Pfaden geklärt werden, wie ein konkreter Ausführungsplan aussieht. Zu diesem Zweck wird eine weitere Relation < auf den Pfaden eingeführt. Falls < auf ihnen irreflexiv ist, so kann man eine Totalordnung auf ihnen erzeugen und erhält somit einen Ausführungsplan. Anderenfalls existieren Zyklen von Pfaden bezüglich der Relation <. In der Arbeit wird weiterhin untersucht, wie man diese isoliert und auf einem transformierten Pfadsystem eine Totalordnung und damit einen Ausführungsplan erstellt. Die Größe der Zyklen von Pfaden bezüglich < ist der wichtigste Parameter für die Anzahl der Ressourcen, die für die Ausführung eines Systems benötigt werden. Deshalb wird in der Arbeit ebenfalls ausführlich untersucht, ob und wie man Zyklen anordnen kann, um die Ressourcenzahl zu verkleinern und somit den Ressourcenaufwand zu optimieren. Dabei werden zwei Ideen verfolgt: Erstens kann eine Bibliothek erstellt werden, in der generische Zyklen zusammen mit ihren Optimierungen vorliegen. Die zweite Idee greift, wenn in der Bibliothek keine passenden Einträge gefunden werden können: Hier erfolgt eine zufällige oder auf einer Heuristik basierende Anordnung mit dem Ziel, den Ressourcenaufwand zu optimieren. Basierend auf den theoretischen Betrachtungen werden Algorithmen entwickelt und es werden Zeitschranken für ihre Ausführung angegeben. Da auch die Ausführungszeit eines Pfadsystems wichtig ist, werden zwei Rekursionen angegeben und untersucht. Diese schätzen die Gesamtausführungszeit unter der Bedingung ab, dass keine Störungen an den Ressourcen auftreten können. Die Verteilung der Pfade auf Ressourcen wird im zweiten Teil der Arbeit untersucht. Zunächst wird ein künstliches Hormonsystems (KHS) vorgestellt, welches eine Verteilung unter Berücksichtigung der Eigenschaften des Organic Computing leistet. Es werden zwei Alternativen untersucht: Im ersten Ansatz, dem einstufigen KHS, werden die Pfade eines Systems direkt durch das KHS auf die Ressourcen zu Ausführung verteilt. Zusätzlich werden Mechanismen zur Begrenzung der Übernahmehäufigkeit der Pfade auf den Ressourcen und ein Terminierungs-mechanismus entwickelt. Im zweiten Ansatz, dem zweistufigen KHS, werden durch das KHS zunächst Ressourcen exklusiv für Klassen von Pfaden reserviert. Dann werden die Pfade des Systems auf genau den reservierten Ressourcen vergeben, so dass eine Ausführung ohne Wechselwirkung zwischen Pfaden verschiedener Klassen ermöglicht wird. Auch hierfür werden Methoden zur Beschränkung der Übernahmehäufigkeiten und Terminierung geschaffen. Für die Verteilung und Terminierung von Pfaden durch das einstufige oder zweistufige KHS können Zeitschranken angegeben werden, so dass auch harte Echtzeitschranken eingehalten werden können. Zum Schluss werden beide Ansätze mit verschiedenen Benchmarks evaluiert und ihre Leistungsfähigkeit demonstriert. Es zeigt sich, dass der erste Ansatz für einen Nutzer einfacher zu handhaben ist, da die benötigten Parameter sehr leicht berechnet werden können. Der zweite Ansatz ist sehr gut geeignet, wenn eine geringe Anzahl von Ressourcen vorhanden ist und die Pfade verschiedener Klassen möglichst unabhängig voneinander laufen sollen. Fazit: Durch die in dieser Arbeit gewonnenen Erkenntnisse ist jetzt möglich, mit echtzeitfähigen Algorithmen die Ausführbarkeit von zeitlich abhängigen Tasks zu untersuchen und den Ressourcenaufwand für ihre Ausführung zu optimieren. Weiterhin werden zwei verschiedene Ansätze eines künstlichen Hormonsystems zur Allokation solcher Tasks in einem verteilten System bereit gestellt, die ihre Stärken unter jeweils verschiedenen Randbedingungen voll entfalten und somit ein breites Anwendungsfeld abdecken. Für den Rechenzeitaufwand beider Ansätze können Schranken angegeben werden, was sie für den Einsatz in Echtzeitsystemen qualifiziert.
Eingebettete Systeme sind Rechnersysteme, die in einem technischen Umfeld eingebettet sind und dort ihre Arbeit verrichten. Kennzeichen heutiger und zukünftiger eingebetteter Systeme sind, dass sie in einer immer größeren Anzahl in der Industrie, im Haushalt und in Büros, in Eisenbahnen und Flugzeugen und in vielen weiteren Umgebungen auftreten. Sie sind oftmals stark vernetzt und müssen hochverlässlich sein, um Unfälle zu vermeiden und so Anwender und Nutzer vor Schaden zu bewahren. Die Beherrschung dieser eingebetteten Systeme ist meist hochkomplex, da durch die Vernetzung eine Vielzahl von Komponenten zusammenarbeiten. Für den Anwender ist es daher schwer, den Überblick zu behalten. Im Hinblick auf die Verlässlichkeit ist es wichtig, Reaktionen auf Fehler und unvorhergesehene Situationen in diesen Systemen innerhalb definierter Zeitschranken zu liefern, um Schaden zu vermeiden.
Selbstorganisation wird heutzutage als probates Mittel angesehen, um die Herausforderungen, die sich mit der Inbetriebnahme, Nutzung und Instandhaltung von komplexen eingebetteten Systemen ergeben, zu meistern. Der Beitrag dieser Arbeit ist eine Untersuchung selbstorganisierender eingebetteter Systeme:
Im ersten Teil wird ein Überblick über den aktuellen Stand der Forschung bei eingebetteten Systemen sowie über den Bereich der Selbstorganisation für eingebettete Systeme gegeben. Dabei wird die Idee des Organic Computings beschrieben, welches sich mit Selbstorganisationsprinzipien in IT-Systemen beschäftigt, und es werden aktuelle Forschungstrends dazu beschrieben.
Im zweiten Teil der Arbeit werden eigene Arbeiten im Feld von selbstorganisierenden eingebetteten Systemen vorgestellt. Sie behandeln verschiedene Aspekte eines künstlichen Hormonsystems (KHS), welches zur selbstorganisierten Verteilung von Tasks auf einer Menge von vernetzten Prozessoren genutzt werden kann. Dabei werden einerseits grundlegende Definitionen des Organic Computings im Bezug auf das KHS untersucht und bewertet. Andererseits werden neue Lerntechniken für das KHS untersucht, die sich am maschinellen Lernen orientieren. Außerdem wird ein mehrstufiges KHS entwickelt und evaluiert, um die Vergabe einer sehr großen Anzahl von Tasks (≥ 1000) auf einer sehr großen Anzahl von Prozessoren (≥ 10000) zu ermöglichen.