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
Letzte Überarbeitung Beide Seiten der Revision
forschung:projekte:rtandroid [2015/01/15 17:16]
thoennessen
forschung:projekte:rtandroid [2015/11/29 10:16]
kalkov
Zeile 1: Zeile 1:
-====== ​RTAndroid: ​Real-Time Android ======+~~NOTOC~~ 
 +====== 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 SmartphonesDie entstehende RTAndroid Plattform ist vollständig kompatibel zu bereits existierender ​Android-Software sowie zu zahlreichen Drittanbieter-Komponenten.+{{ :​forschung:​projekte:​rtandroid.png?​200|}} 
 + 
 +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 attraktivHeutzutage 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 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.\\
 \\ \\
-{{ :​forschung:​projekte:​rtandroid.png?​200 |}} +Die RTAndroid ​Plattformwelche Applikationen mit Echtzeit-Anforderungen unterstützterweitert das Anwendungsfeld von mobilen Geräten auf zeitkritische DomänenDadurch ​wird es ermöglichtindustrielle Anlagen vor Ort zu überwachen ​und zu automatisierenDieses Projekt evaluiert ​die Anwendbarkeit ​von RTAndroid in typischen Szenarios ​für Speicherprogrammierbare Steuerungen ​(SPSen). Kontinuierliche Weiterentwicklungen hinsichtlich PortabilitätBedienerfreundlichkeit und Rechenleistung ​von modernen Tablet PCs ermöglichen Implementierung ​einer neuenintegrierten 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.\\
- +
- +
-Grundlage von RTAndroid ​stellt ein mit RT_PREEMPT modifizierterechtzeitfä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_RRDamit wird es auch unter Android möglichvon Echtzeitprioritäten zwischen 1 und 99 innerhalb von eigenen Anwendungen ​zu profitierenDa 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 ​(DVMbringt für die Anwendungen nicht nur eine isolierte Laufzeitumgebung,​ sondern auch einen Garbage Collector (GC) für die automatische Speicherverwaltung mitDer GC stellte bisher jedoch ein unkalkulierbares Risiko für Echtzeitprozesse darweil 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ätverliert 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 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 ApplikationsnamenVersionsnummer ​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 ​===== +===== Details ​===== 
- +http://​rtandroid.embedded.rwth-aachen.de
-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 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 =====