Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste Überarbeitung Beide Seiten der Revision
forschung:projekte:rtandroid [2015/02/02 13:12]
kalkov
forschung:projekte:rtandroid [2015/02/10 15:49]
thoennessen
Zeile 7: Zeile 7:
 Dies motiviert die Analyse der Tauglichkeit von Android für echtzeitkritische Applikationen in zeit- und sicherheitskritischen Domänen. Das Ziel dieses Projektes besteht in der Entwicklung einer neuen Android Version. Diese soll zum einen echtzeitkritische Applikationen unterstützen und zum anderen abwärtskompatibel zu existierender Software sowie Drittanbieter-Komponenten sein. Weiterhin werden die Mobilität eines Tablet PCs und dessen umfangreiche Kommunikationsschnittstellen mit einer zuverlässigen und echtzeitfähigen kabellosen Kommunikation kombiniert.\\ Dies motiviert die Analyse der Tauglichkeit von Android für echtzeitkritische Applikationen in zeit- und sicherheitskritischen Domänen. Das Ziel dieses Projektes besteht in der Entwicklung einer neuen Android Version. Diese soll zum einen echtzeitkritische Applikationen unterstützen und zum anderen abwärtskompatibel zu existierender Software sowie Drittanbieter-Komponenten sein. Weiterhin werden die Mobilität eines Tablet PCs und dessen umfangreiche Kommunikationsschnittstellen mit einer zuverlässigen und echtzeitfähigen kabellosen Kommunikation kombiniert.\\
 \\ \\
-Die RTAndroid Plattform, welche Applikationen mit Echtzeit-Anforderungen unterstützt,​ erweitert das Anwendungsfeld von mobilen Geräten auf zeitkritische Domänen. Dadurch wird es ermöglicht,​ industrielle Anlagen vor Ort zu überwachen und zu automatisieren. Dieses Projekt evaluiert die Anwendbarkeit von RTAndroid in typischen Szenarios für Speicherprogrammierbare Steuerungen (SPSen). Kontinuierliche ​Weiter¬entwicklungen ​hinsichtlich Portabilität,​ Bedienerfreundlichkeit und Rechenleistung von modernen Tablet PCs ermöglichen Implementierung einer neuen, integrierten Entwicklungsumgebung für SPS-Programmiersprachen. Basierend auf der grundlegenden Echtzeitunterstützung kann RTAndroid als eine All-in-one Plattform für die Entwicklung,​ Simulation und Ausführung von SPS Programmen einschließlich der Kommunikation mit externer Hardware verwendet werden.\\+Die RTAndroid Plattform, welche Applikationen mit Echtzeit-Anforderungen unterstützt,​ erweitert das Anwendungsfeld von mobilen Geräten auf zeitkritische Domänen. Dadurch wird es ermöglicht,​ industrielle Anlagen vor Ort zu überwachen und zu automatisieren. Dieses Projekt evaluiert die Anwendbarkeit von RTAndroid in typischen Szenarios für Speicherprogrammierbare Steuerungen (SPSen). Kontinuierliche ​Weiterentwicklungen ​hinsichtlich Portabilität,​ Bedienerfreundlichkeit und Rechenleistung von modernen Tablet PCs ermöglichen Implementierung einer neuen, integrierten Entwicklungsumgebung für SPS-Programmiersprachen. Basierend auf der grundlegenden Echtzeitunterstützung kann RTAndroid als eine All-in-one Plattform für die Entwicklung,​ Simulation und Ausführung von SPS Programmen einschließlich der Kommunikation mit externer Hardware verwendet werden.\\
 \\ \\
  
Zeile 22: Zeile 22:
 In der Originaldistribution von Android wird der Lebenszyklus einer Applikationskomponente typischerweise von ihrer Sichtbarkeit bzw. Interaktionsmöglichkeiten mit dem Benutzer beeinflusst. Sobald eine App vollständig in den Hintergrund gerät, verliert sie aus der Sicht des Systems an Wichtigkeit für den Benutzer und kann pausiert oder gar terminiert werden. In RTAndroid hingegen, können laufende Echtzeitapplikationen unabhängig von ihrer Sichtbarkeit grundsätzlich nicht vom System negativ beeinflusst werden. Während Hintergrundprozesse in Android auch zugunsten der längeren Akkulaufzeit unterbrochen werden können, agiert RTAndroid als eine zuverlässige Ausführungsplattform für Langzeitoperationen. Ein vorhersagbares Laufzeitverhalten wird selbst bei ausgeschaltetem Bildschirm garantiert, während in einem gewöhnlichen Android dabei der Ruhemodus aktiviert wird und die einzelnen Prozessoren herunterfahren oder –getaktet werden.\\ In der Originaldistribution von Android wird der Lebenszyklus einer Applikationskomponente typischerweise von ihrer Sichtbarkeit bzw. Interaktionsmöglichkeiten mit dem Benutzer beeinflusst. Sobald eine App vollständig in den Hintergrund gerät, verliert sie aus der Sicht des Systems an Wichtigkeit für den Benutzer und kann pausiert oder gar terminiert werden. In RTAndroid hingegen, können laufende Echtzeitapplikationen unabhängig von ihrer Sichtbarkeit grundsätzlich nicht vom System negativ beeinflusst werden. Während Hintergrundprozesse in Android auch zugunsten der längeren Akkulaufzeit unterbrochen werden können, agiert RTAndroid als eine zuverlässige Ausführungsplattform für Langzeitoperationen. Ein vorhersagbares Laufzeitverhalten wird selbst bei ausgeschaltetem Bildschirm garantiert, während in einem gewöhnlichen Android dabei der Ruhemodus aktiviert wird und die einzelnen Prozessoren herunterfahren oder –getaktet werden.\\
 \\ \\
-Das Zusammenspiel der hier beschriebenen Techniken ermöglicht vorhersagbare Reaktionszeiten und reduziert auftretende Latenzen – d.h. Differenzen zwischen dem geplanten und dem tatsächlichen Ausführungszeitpunkt – von mehreren Sekunden auf unter eine Millisekunde. Obwohl die Anpassungen am Android-Betriebssystem vielfältig und komplex sind, ist die Nutzung dieser Funktionen von einer Anwendung aus denkbar einfach. Das Applikationsframework sowie das mitgelieferte SDK wurden um neue Schnittstellen für die eingeführten Funktionalitäten erweitert, um die Entwicklung von Echtzeitanwendungen weitestgehend an die von gewöhnlichen Applikationen anzulehnen. Zum Beispiel können Echtzeiteigenschaften für einzelne Applikationskomponenten selektiv über die Manifest-Datei gesetzt werden. Diese Datei ist ein Hauptbestandteil von jeder für Android entwickelten Anwendung und enthält alle für das System relevanten Informationen wie Applikationsnamen,​ Versionsnummer und möglicherweise benötigte Berechtigungen.\\+{{:​forschung:​projekte:​2015-02-09_evaluation_02.png?​300 |}} 
 +Das Zusammenspiel der hier beschriebenen Techniken ermöglicht vorhersagbare Reaktionszeiten und reduziert auftretende Latenzen – d.h. Differenzen zwischen dem geplanten und dem tatsächlichen Ausführungszeitpunkt – von mehreren Sekunden auf unter eine Millisekunde. ​Eine Veranschaulichung der Reaktionszeiten ist in der nebenstehenden Grafik zu finden. Über 1000 Ausführungsiterationen wurde die Ausführungsverzögerung einer Testapplikation in µs gemessen. Im Diagramm gegenübergestellt sind in hellblau die Latenzen einer Nicht-Echtzeit Anwendung und in dunkelblau jene einer Echtzeitanwendung. Die Analyse der Messergebnisse liefert einen Worst Case der Latenzen von 1255 µs bzw. 61 µs. \\ \\ 
 +{{ :​forschung:​projekte:​2015-02-09_evaluation_01.png?​300|}} 
 +Eine weitergehende Evaluation ist in dem untenstehenden Diagramm zu finden. Dort aufgezeichnet ist die Berechnungszeit eine Testapplikation über eine Testausführung von 1000 Iterationen,​ ähnlich wie im vorangehenden Test. Hier wurde jedoch nicht die Ausführungslatenz gemessen, sondern die Berechenungsdauer einer komplexen Rechenoperation. Die in hellblau aufgezeichneten Messwerte belegen eine durchschnittliche Berechnungsdauer von 12939 µs für den Testlauf auf einer handelsüblichen Android Distribution. Dem gegenüber steht eine Berechnungsdauer von durchschnittlich 1745 µs für den Testlauf auf RTAndroid. Des Weiteren ist eine deutlich geringere Standardabweichung in den Messwerten von RTAndroid zu erkennen, die Berechnungszeiten sind somit deutlich vorhersagbarer. \\ \\ 
 + 
 +Obwohl die Anpassungen am Android-Betriebssystem vielfältig und komplex sind, ist die Nutzung dieser Funktionen von einer Anwendung aus denkbar einfach. Das Applikationsframework sowie das mitgelieferte SDK wurden um neue Schnittstellen für die eingeführten Funktionalitäten erweitert, um die Entwicklung von Echtzeitanwendungen weitestgehend an die von gewöhnlichen Applikationen anzulehnen. Zum Beispiel können Echtzeiteigenschaften für einzelne Applikationskomponenten selektiv über die Manifest-Datei gesetzt werden. Diese Datei ist ein Hauptbestandteil von jeder für Android entwickelten Anwendung und enthält alle für das System relevanten Informationen wie Applikationsnamen,​ Versionsnummer und möglicherweise benötigte Berechtigungen.\\
 \\ \\
 Dank RTAndroid wird ermöglicht die Anwendung von RT_PREEMPT auch für mobile Geräte. Dank der modularen Architektur können entstehende Systeme auf Basis von RTAndroid flexibel konfiguriert und an die konkreten Anforderungen angepasst werden.\\ Dank RTAndroid wird ermöglicht die Anwendung von RT_PREEMPT auch für mobile Geräte. Dank der modularen Architektur können entstehende Systeme auf Basis von RTAndroid flexibel konfiguriert und an die konkreten Anforderungen angepasst werden.\\