Hinweis zum Urheberrecht
Dissertation zugänglich unter
URN: urn:nbn:de:bvb:29-opus-11940
URL: http://www.opus.ub.uni-erlangen.de/opus/volltexte/2008/1194/
Dynamische Adaption in heterogenen und verteilten eingebetteten Systemen
Dynamic Adaption in Heterogeneous and Distributed Embedded Systems
Felser, Meik





| SWD-Schlagwörter: |
| Fernwartung , Mikrocontroller |
| Freie Schlagwörter (Deutsch): |
| dynamisches Binden |
| Freie Schlagwörter (Englisch): |
| dynamic Linking |
| Fakultät: |
| Technische Fakultät |
| Fakultät: |
| Technische Fakultät |
| DDC-Sachgruppe: |
| Informatik |
| Dokumentart: |
| Dissertation |
| Hauptberichter: |
| Schröder-Preikschat, Wolfgang (Prof. Dr.-Ing.) |
| Sprache: |
| Deutsch |
| Tag der mündlichen Prüfung: |
| 26.11.2008 |
| Erstellungsjahr: |
| 2008 |
| Publikationsdatum: |
| 08.12.2008 |
| Kurzfassung in Deutsch: |
| Eingebettete Systeme erledigen im heutigen Alltag eine Vielzahl von Aufgaben. Die geplante Lebensdauer dieser Systeme ist dabei häufig relativ lang. Daher ist die Wahrscheinlichkeit groß, dass man die Software im Laufe der Zeit verändern möchte. Gründe hierfür kann das Beseitigen von Fehlern sein oder der Wunsch eine Funktionalität hinzuzufügen. In komplexeren Systemen arbeiten häufig mehrere Mikrocontroller in einem Netzwerk kooperierend zusammen. Die beteiligten Mikrocontroller unterscheiden sich dabei nicht nur hinsichtlich ihrer speziellen Sensoren und Peripheriegeräte, sondern auch bezüglich ihrer Leistungsfähigkeit. Die Ressourcen der einzelnen Mikrocontroller sind jedoch in der Regel stark beschränkt, sodass man die Software nachträglich nicht beliebig erweitern kann.
Unter diesen Rahmenbedingungen soll in dieser Arbeit ein System zur dynamischen Adaption der Software auf Mikrocontrollern vorgestellt werden. Dabei sollen größere Steuerknoten, die leistungsstärker sind und über mehr Ressourcen verfügen, Hilfestellung für kleinere Knoten geben. Diesem Ansatz zufolge werden die Mikrocontroller in verwaltete Knoten und Verwalter eingeteilt. Verwalter bieten dabei Dienste zur Konfiguration und Unterstützung der verwalteten Knoten an.
Eine Voraussetzung zur flexiblen Konfiguration ist, dass die Software in kleinen Einheiten vorliegt. Dazu wird in dieser Arbeit eine Technik vorgestellt, existierende Software in Module aufzuteilen. Der Ansatz arbeitet auf den Objektdateien der Software und ist architekturunabhängig. Darüber hinaus muss die Software nicht speziell vorbereitet werden. Mithilfe der Module kann ein Verwalter die Software für einen verwalteten Knoten wie aus einem Baukasten zusammenbauen.
Die Konfigurationsoperationen umfassen dabei das nachträgliche Installieren, Entfernen und Austauschen von Softwaremodulen. Dabei sind die Operationen zustandserhaltend und können so auch während der Laufzeit durchgeführt werden. Dies ermöglicht das bedarfsgesteuerte Installieren oder das temporäre Entfernen von Modulen (hier als Parken bezeichnet).
Neben Operationen zur Umkonfiguration bieten Verwalter auch die Möglichkeit, Aufgaben im Auftrag der verwalteten Knoten durchzuführen. Hierzu wurde ein schlankes Fernaufrufsystem realisiert, das nur geringe Ressourcenanforderungen an den verwalteten Knoten stellt. Durch Kombination von Umkonfigurationen und Fernaufrufsystem können fast beliebige Funktionen zur Laufzeit von einem verwalteten Knoten auf einen Verwalter verschoben werden.
Um heterogene Hardware zu unterstützen, verfügt das Fernaufrufsystem daher über eine Infrastruktur zur automatischen Anpassung der Datendarstellung zwischen verschiedenen Knoten. Die dafür notwendigen Informationen werden automatisch aus Debuginformationen gewonnen.
Die Realisierbarkeit des Ansatzes wurde durch die prototypische Implementierung eines Verwalters nachgewiesen. Zur Demonstration wird außerdem eine Java-Laufzeitumgebung betrachtet, die eigentlich zu groß ist, um für kleine Knoten geeignet zu sein. Mit dem Verwalter ist es jedoch möglich, die Laufzeitumgebung auf kleinen Knoten zu installieren, indem unbenutzte Funktionen entfernt und Funktionen, welche nur selten verwendet werden am Verwalter ausgeführt werden. Hierdurch können sogar sehr kleine Knoten mit einer vollständigen Java-Umgebung ausgestattet werden. |
| Kurzfassung in Englisch: |
| Today, embedded systems are ubiquitous in everyday life. In many cases, these systems are expected to have a long lifespan. For such long-living systems, it is very likely that the software needs to be modified over time. Potential reasons would be the necessity to fix errors or the desire to add new functionality. More complex systems usually consist of several microcontrollers that cooperate over a network to perform the task. In these systems, the involved microcontrollers do not only differ with respect to the attached sensors and peripheral devices, but also in terms of available hardware resources. However, most microcontrollers in such networks are typically very resource constrained. This limits the possibility to subsequently extend their software.
With respect to these conditions, the objective of this thesis is to present a system for the dynamic adaptation of software on microcontrollers. The basic idea is that more powerful nodes, with more available resources and higher performance, should assist smaller nodes. This leads to a classification of microcontrollers as managed nodes and managers. Managers offer services to configure, assist, and support managed nodes.
A prerequisite for the flexible configuration of nodes is that the software has been partitioned into small units. In this thesis, I present a novel technique to split existing software into modules. The approach is based on the object files of the software; it is architecture independent and does not require any special preparations of the software. The manager can use the resulting modules as a construction kit to assemble the software for the managed nodes.
The manager provides reconfiguration operations to install, remove, and replace software modules. As all operations preserve the state of the software, they can safely be used at run time. This facilitates installation on demand or parking (temporal removal) of modules.
Beside reconfiguration services, managers also provide the service to perform a task on behalf of a managed node. For this purpose, I have implemented a slim remote procedure call system that requires only minimal resources at the managed node. By combining the reconfiguration capability and the remote procedure call system, arbitrary functions can be shifted from a managed node to a manager at run time.
For the support of heterogeneous hardware, the remote procedure call system contains an infrastructure for automatic adjustment of the data representation between different architectures. All necessary information for this service is automatically obtained from the debugging information generated by the compiler.
I evaluate the feasibility of my approach with a prototypical implementation of the manager infrastructure applied to an existing Java Runtime Environment (JRE) that is too big to fit on smaller nodes. With the approach it becomes possible to install the JRE by removing unneeded functionality and placing rarely used functions on the manager. Thereby, even small nodes can be equipped with Java software. |