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 [2014/02/27 15:44]
kalkov
forschung:projekte:rtandroid [2015/01/15 17:19]
thoennessen
Zeile 1: Zeile 1:
-======RTAndroid====== +====== ​Real-Time Android ​======
-TBD+
  
-===== Project Objectives ===== +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.
-TBD+
  
-===== Contact Person ===== +{{:forschung:projekte:rtandroid.png?​200 |}} 
-[[:en:lehrstuhl:mitarbeiter:​kalkov]]+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. ​
  
-===== Publications ​=====+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. 
 + 
 +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. 
 +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. 
 + 
 + 
 + 
 + 
 + 
 +Android is built upon a preemptible Linux kernel, which has been modified in RTAndroid to allow deterministic priority-based process scheduling. Furthermore,​ RTAndroid introduces a number of additional features to ensure a reliable process execution:​ 
 +\\ 
 +\\ 
 +  * Non-blocking,​ real-time capable garbage collection 
 +  * Extended system services for bypassing Android’s low memory process killer 
 +  * Isolation of the running real-time application on one of the available CPUs 
 + 
 +===== Twistturn ===== 
 + 
 +Twistturn is a development and execution environment for programs written in PLC-common programming languages. It makes use of RTAndroid’s predictable process behavior and provides PLC developers the possibility to write or modify an existing PLC program and immediately execute it on the same device. Furthermore,​ Twistturn introduces additional components for rapid prototyping and a comfortable workflow: 
 +\\ 
 +\\ 
 +  * Development and editing tools (Structured Text, IEC 61131) 
 +  * Simulation of declared inputs and outputs 
 +  * Execution of the PLC program in real-time mode 
 +  * Communication to external hardware components 
 + 
 +===== Ansprechpartner ===== 
 +[[:​en:​lehrstuhl:​mitarbeiter:​kalkov]] \\ 
 +[[:​en:​lehrstuhl:​mitarbeiter:​thoennessen]] \\ 
 + 
 +===== Veröffentlichungen ​=====
 ~~NOCACHE~~ ~~NOCACHE~~
 <BIBTEX: file=publikationen style=I11 sort=year filter=kalkov> ​ <BIBTEX: file=publikationen style=I11 sort=year filter=kalkov> ​