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/01/15 17:28]
thoennessen
forschung:projekte:rtandroid [2015/01/16 12:45]
thoennessen
Zeile 2: Zeile 2:
 ====== Real-Time Android ====== ====== Real-Time Android ======
  
-Mit RTAndroid ​wird erstmals ​der Einsatz von mobilen Geräten in echtzeitkritischen Anwendungen möglichEs handelt sich dabei um ein Derivat des Android-Betriebssystems,​ welches am Lehrstuhl Informatik 11 der RWTH Aachen entwickelt wirdEs bietet Unterstützung für Applikationen mit Echtzeitanforderungen auf handelsüblichen Tablets ​und Smartphones. Die entstehende ​RTAndroid Plattform ​ist vollständig kompatibel zu bereits existierender Android-Software sowie zu zahlreichen Drittanbieter-Komponenten.+===== Überblick ===== 
 +Android ist eine moderne Plattform für eingebettete Systeme. Unterstützung für Multitasking und Bedienerfreundlichkeit machen dieses Betriebssystem sowohl für Benutzer als auch für Entwickler attraktiv. Heutzutage ​wird der Einsatz von Android auch im industriellen Umfeld zur Zwecken von Automatisierung,​ Überwachung und Steuerung von Prozessen evaluiert. 
 + 
 +Dies motiviert die Analyse der Tauglichkeit von Android ​für echtzeitkritische Applikationen in zeitund sicherheitskritischen Domänen. Das Ziel dieses Projektes besteht in der Entwicklung einer neuen Android VersionDiese 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-ProgrammiersprachenBasierend 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. 
 + 
 + 
 +===== RTAndroid =====
  
 {{ :​forschung:​projekte:​rtandroid.png?​200|}} {{ :​forschung:​projekte:​rtandroid.png?​200|}}
 +
 +Mit RTAndroid wird erstmals der Einsatz von mobilen Geräten in echtzeitkritischen Anwendungen möglich. Es handelt sich dabei um ein Derivat des Android-Betriebssystems,​ welches am Lehrstuhl Informatik 11 der RWTH Aachen entwickelt wird. Es bietet Unterstützung für Applikationen mit Echtzeitanforderungen auf handelsüblichen Tablets und Smartphones. Die entstehende RTAndroid Plattform ist vollständig kompatibel zu bereits existierender Android-Software sowie zu zahlreichen Drittanbieter-Komponenten.
 +
 Grundlage von RTAndroid stellt ein mit RT_PREEMPT modifizierter,​ echtzeitfähiger Linux Kernel dar. Dieser führt eine vollständige Kernel-Unterbrechbarkeit ein und ermöglicht damit eine deterministische,​ prioritätsbasierte Prozessverwaltung nach Echtzeit-Zuteilungsstrategien SCHED_FIFO und SCHED_RR. Damit wird es auch unter Android möglich, von Echtzeitprioritäten zwischen 1 und 99 innerhalb von eigenen Anwendungen zu profitieren. Da laufende Android Applikationen immer in einem oder mehreren Linux Prozessen gekapselt werden, kann die Prioritätsanpassung auf der Linux-Ebene nur für die nötigen Applikationskomponenten (z.B. einen separaten Hintergrundservice) erfolgen. ​ Grundlage von RTAndroid stellt ein mit RT_PREEMPT modifizierter,​ echtzeitfähiger Linux Kernel dar. Dieser führt eine vollständige Kernel-Unterbrechbarkeit ein und ermöglicht damit eine deterministische,​ prioritätsbasierte Prozessverwaltung nach Echtzeit-Zuteilungsstrategien SCHED_FIFO und SCHED_RR. Damit wird es auch unter Android möglich, von Echtzeitprioritäten zwischen 1 und 99 innerhalb von eigenen Anwendungen zu profitieren. Da laufende Android Applikationen immer in einem oder mehreren Linux Prozessen gekapselt werden, kann die Prioritätsanpassung auf der Linux-Ebene nur für die nötigen Applikationskomponenten (z.B. einen separaten Hintergrundservice) erfolgen. ​
  
-Die von Google speziell für Android entwickelte Dalvik Virtual Machine (DVM) bringt für die Anwendungen nicht nur eine isolierte Laufzeitumgebung,​ sondern auch einen Garbage Collector (GC) für die automatische Speicherverwaltung mit. Der GC stellte bisher jedoch ein unkalkulierbares Risiko für Echtzeitprozesse dar, weil bei seiner Aktivierung alle laufende ​Threads der aktuellen Applikation angehalten werden mussten. Die in RTAndroid eingesetzte DVM wurde mit einer nicht-blockierenden,​ echtzeitfähigen Speicherverwaltung erweitert. Dadurch müssen Prozesse mit dynamischem Speicherverbrauch keine unvorhergesehene Unterbrechung befürchten.+Die von Google speziell für Android entwickelte Dalvik Virtual Machine (DVM) bringt für die Anwendungen nicht nur eine isolierte Laufzeitumgebung,​ sondern auch einen Garbage Collector (GC) für die automatische Speicherverwaltung mit. Der GC stellte bisher jedoch ein unkalkulierbares Risiko für Echtzeitprozesse dar, weil bei seiner Aktivierung alle laufenden ​Threads der aktuellen Applikation angehalten werden mussten. Die in RTAndroid eingesetzte DVM wurde mit einer nicht-blockierenden,​ echtzeitfähigen Speicherverwaltung erweitert. Dadurch müssen Prozesse mit dynamischem Speicherverbrauch keine unvorhergesehene Unterbrechung befürchten.
  
 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. 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.
-Organisationen wie OSADL setzen RT_PREEMPT Patch bereits seit vielen Jahren erfolgreich in der Industrie ein. RTAndroid erweitert damit die Landschaft der unterstützen Hardware durch die Anpassung von RT_PREEMPT für mobile Geräte. Änderungen in den mittleren Schichten können bei der Portierung unabhängig vom Gerät eins-zu-eins übernommen werden. Auch der Umstieg auf neue Versionen von Android fällt dank loser Kopplung der Echtzeiterweiterung leicht, da die neue Funktionalität in zusätzlichen Klassen und Systemservices gekapselt wurde. Dank der modularen Architektur können entstehende Systeme auf Basis von RTAndroid flexibel konfiguriert und an die konkreten Anforderungen angepasst werden.+ 
 +Organisationen wie OSADL setzen ​den RT_PREEMPT Patch bereits seit vielen Jahren erfolgreich in der Industrie ein. RTAndroid erweitert damit die Landschaft der unterstützen Hardware durch die Anpassung von RT_PREEMPT für mobile Geräte. Änderungen in den mittleren Schichten können bei der Portierung unabhängig vom Gerät eins-zu-eins übernommen werden. Auch der Umstieg auf neue Versionen von Android fällt dank loser Kopplung der Echtzeiterweiterung leicht, da die neue Funktionalität in zusätzlichen Klassen und Systemservices gekapselt wurde. Dank der modularen Architektur können entstehende Systeme auf Basis von RTAndroid flexibel konfiguriert und an die konkreten Anforderungen angepasst werden.