14.01.2015 Aufrufe

Dynamische Adaption in heterogenen verteilten eingebetteten ...

Dynamische Adaption in heterogenen verteilten eingebetteten ...

Dynamische Adaption in heterogenen verteilten eingebetteten ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4.5 Aufbau und Architektur<br />

Anwendung Verwalter<br />

Anwendung IRQ<br />

Verwalter<br />

Anwendung<br />

Verwalter<br />

REQ<br />

peek<br />

poke<br />

...<br />

resume<br />

REQ<br />

peek<br />

poke<br />

...<br />

resume<br />

T2<br />

T1<br />

T3<br />

REQ<br />

peek<br />

poke<br />

...<br />

resume<br />

(a) direkt im Task<br />

(b) im IRQ-Handler<br />

(c) durch neue Tasks<br />

Abbildung 4.21: Abarbeitung der Befehle im Rahmen e<strong>in</strong>er Unterstützungsanforderung<br />

Teilabbildung (a) zeigt die Abarbeitung der Befehle durch den Task der Anwendung. Im Rahmen von Unterstützungsanforderungen<br />

ist dies e<strong>in</strong>e s<strong>in</strong>nvolle Realisierung, da der Task auf die Fertigstellung der Operationen angewiesen ist. Die<br />

Bearbeitung von unaufgeforderten, asynchron e<strong>in</strong>treffenden Befehlen ist mit diesem Ansatz jedoch nur möglich, wenn<br />

der Task regelmäßig und aktiv die Kommunikation überprüft.<br />

Teilabbildung (b) zeigt die Bearbeitung der Operationen direkt im Rahmen der Unterbrechungsbehandlung. Nachteil<br />

dabei ist, dass während der Abarbeitung ke<strong>in</strong>e anderen Unterbrechungen bearbeitet werden können. Gleichzeitig ergibt<br />

sich daraus jedoch auch der Vorteil, dass die Operationen nicht mit anderen Aufgaben koord<strong>in</strong>iert werden müssen.<br />

In Teilabbildung (c) wird für jeden e<strong>in</strong>treffenden Befehl e<strong>in</strong>e neue Aufgabe (Task) erzeugt, die nebenläufig zur Anwendung<br />

ausgeführt wird. In Systemen, die nur e<strong>in</strong>en Aktivitätsträger anbieten, kann dieser Ansatz nicht bei der Bearbeitung von<br />

Unterstützungsanforderungen angewandt werden, da hierzu e<strong>in</strong> weiterer Aktivitätsträger zur parallelen Abarbeitung der<br />

Aufgaben zur Verfügung stehen müsste.<br />

dabei aus derselben Codebasis für verschiedene Architekturen gebaut. Grundsätzlich hängt die Größe<br />

des RCMs von der Funktionalität ab. Das hier verwendetet RCM enthält das beschriebene Kommunikationsprotokoll<br />

zur zuverlässigen Übertragung und e<strong>in</strong>e flexibel erweiterbare Befehlsverarbeitung, die<br />

bei der Version für AVR Mikrocontroller genutzt wurde, um zusätzliche peek und poke Befehle für<br />

den Zugriff auf den Programmspeicher anzubieten.<br />

Architektur .text .rodata .data .bss Total<br />

Atmel AVR ATmega 1314 38 20 263 1635 Byte<br />

Renesas H8/300 1150 96 0 8 1254 Byte<br />

Intel x86 888 116 0 14 1018 Byte<br />

Tabelle 4.5: Größe e<strong>in</strong>es flexiblen Fernwartungsmoduls (RCM) <strong>in</strong> Byte<br />

Die Tabelle zeigt die Größen e<strong>in</strong>es RCMs für verschiedene Architekturen <strong>in</strong> Byte. Auffällig ist, dass die Version für<br />

AVR-Mikrocontroller deutlich größer ist. Das liegt daran, dass hier separate peek und poke Befehle implementiert<br />

wurden, um auf den Programmspeicher zuzugreifen, da es sich um e<strong>in</strong>e Harvard-Architektur handelt.<br />

Da der Programmspeicher als Flashspeicher realisiert ist, wird außerdem spezieller Code benötigt, um diesen seitenweise<br />

zu beschreiben. Dieser Code nimmt mehr Platz <strong>in</strong> Anspruch als das e<strong>in</strong>fache Setzen e<strong>in</strong>er Speicherstelle auf den<br />

beiden anderen Architekturen. Zusätzlich wird Datenspeicher <strong>in</strong> der Größe e<strong>in</strong>er Seite (hier: 256 Byte) benötigt, um die<br />

Daten vor dem Schreiben zwischenzuspeichern.<br />

Im Vorfeld wurden auch e<strong>in</strong>fachere Versionen des RCMs erstellt, die deutlich machen, wie viel<br />

Speicherplatz man e<strong>in</strong>sparen kann, wenn man mit m<strong>in</strong>imalem Funktionsumfang auskommt. So wurde<br />

e<strong>in</strong> Fernwartungsmodul erstellt, welches e<strong>in</strong> sehr e<strong>in</strong>faches Kommunikationsprotokoll verwendet, das<br />

ke<strong>in</strong>e Übertragungsfehler erkennt oder toleriert. Außerdem ist der Befehlsumfang dieses RCM fest<br />

vorgegeben und nicht flexibel erweiterbar. In Tabelle 4.6 s<strong>in</strong>d die Größen für diese Implementierungen<br />

angegeben.<br />

87

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!