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/05/19 17:02]
kalkov
forschung:projekte:rtandroid [2015/01/15 17:19]
thoennessen
Zeile 1: Zeile 1:
-====== ​RTAndroid ​======+====== ​Real-Time Android ​======
  
-RTAndroid ​is a real-time derivative of the Android platform. It has been developed at the Embedded Software Laboratory of the RWTH Aachen ​and aims to provide a reliable execution environment for applications with real-time requirements on common mobile devices. RTAndroid ​benefits from Android’s high usability and its wide range of supported hardware, while keeping full backward compatibility to existing software stack. At the same time the application framework and the original system API are extended with new interfaces for assuring the predictable system behavior to be used in the field of industrial monitoring and control. +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 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.
-Android is built upon a preemptible Linux kernel, which has been modified in RTAndroid to allow deterministic priority-based process schedulingFurthermore,​ RTAndroid introduces a number of additional features to ensure a reliable process execution:+
  
-* Non-blockingreal-time capable garbage collection +{{:​forschung:​projekte:​rtandroid.png?​200 |}} 
-* Extended system services for bypassing ​Android’s low memory process killer +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 deterministischeprioritä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. ​
-* Isolation of the running real-time application on one of the available CPUs+
  
-===== Twistturn =====+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.
  
-Twistturn is a development and execution environment for programs written ​in PLC-common programming languagesIt 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 deviceFurthermoreTwistturn introduces additional components for rapid prototyping and a comfortable workflow:+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 werdenIn RTAndroid ​hingegen, können laufende Echtzeitapplikationen unabhängig von ihrer Sichtbarkeit grundsätzlich nicht vom System negativ beeinflusst werdenWährend Hintergrundprozesse in Android auch zugunsten der längeren Akkulaufzeit unterbrochen werden könnenagiert 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.
  
-* Development and editing tools (Structured TextIEC 61131) +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 sindist 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. 
-* Simulation of declared inputs and outputs +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.
-* Execution of the PLC program ​in real-time mode +
-* Communication to external hardware components+
  
-===== Projektziele ​===== + 
-TBD+ 
 + 
 + 
 +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 ===== ===== Ansprechpartner =====
-[[:​en:​lehrstuhl:​mitarbeiter:​kalkov]]+[[:​en:​lehrstuhl:​mitarbeiter:​kalkov]] ​\\ 
 +[[:​en:​lehrstuhl:​mitarbeiter:​thoennessen]] \\
  
 ===== Veröffentlichungen ===== ===== Veröffentlichungen =====
 ~~NOCACHE~~ ~~NOCACHE~~
 <BIBTEX: file=publikationen style=I11 sort=year filter=kalkov> ​ <BIBTEX: file=publikationen style=I11 sort=year filter=kalkov> ​