2017 & 2018
Dissertation, RWTH Aachen University, 2017
Veröffentlicht auf dem Publikationsserver der RWTH Aachen University 2018
Genehmigende Fakultät
Fak01
Hauptberichter/Gutachter
;
Tag der mündlichen Prüfung/Habilitation
2017-08-10
Online
DOI: 10.18154/RWTH-2018-222005
URL: http://publications.rwth-aachen.de/record/719343/files/719343.pdf
Einrichtungen
Inhaltliche Beschreibung (Schlagwörter)
RTOS (frei) ; Android (frei) ; real-time garbage collection (frei) ; scheduling (frei) ; binder (frei) ; intents (frei)
Thematische Einordnung (Klassifikation)
DDC: 004
Kurzfassung
Heutzutage spielt Software in der Entwicklung eingebetteter Systeme eine besonders wichtige Rolle. Obwohl der Einsatz von Standardhardware und wiederverwendbaren Software-Komponenten die Produktentwicklung bedeutend beschleunigen kann, erfüllen diese in der Regel nicht die industriellen Anforderungen an Echtzeitfähigkeit und Robustheit. Aus diesem Grund wurden in der Vergangenheit mehrere Ansätze vorgestellt, um auch mit High-Level-Software präzise Timings im Umgang mit der physischen Umgebung zu erreichen. So sind echtzeitfähige Linux-Systeme auf Basis von Standardhardware in der Industrie bereits weit verbreitet. Auch Linux-basierte Plattformen wie Android gewinnen kontinuierlich an Popularität in unterschiedlichsten Marktsegmenten. Dank der intuitiven Benutzeroberfläche und der zahlreichen kompatiblen Hardware-Plattformen findet Android heute zunehmend Anwendung in der Industrie. Bisher beschränken sich solche Anwendungen jedoch auf die reine Visualisierung von Programmdaten und Nutzerinteraktion. Die vorliegende Dissertation präsentiert einen ganzheitlichen Ansatz, um das Einsatzgebiet von Android auf zeitkritische Systeme zu erweitern, indem die Leistungsfähigkeit moderner Standardhardware mit der Vorhersagbarkeit eines echtzeitfähigen Betriebssystems kombiniert wird. Anstatt die Echtzeitfähigkeit wie üblich auf Linux zu beschränken, wird ein komponentenübergreifendes Lösungskonzept vorgestellt. Dieses umfasst sowohl den Linux-Kern als auch die wichtigsten Komponenten von Android und deren Interaktion in zeitkritischen Szenarien. Im ersten Teil der Arbeit wird der PREEMPT_RT Patch eingesetzt, um die durch den Prozess-Scheduler verursachte Latenzen zu minimieren. Verbesserte Unterbrechbarkeit des Linux-Kernels sowie ein hochauflösender Timer ermöglichen auch unter Android ein präziseres Prozessmanagement. Damit können die maximalen Scheduling-Abweichungen für Android-Apps auf die Größenordnung von industriellen Linux-basierten Systemen beschränkt werden. Im nächsten Schritt werden die unvorhersehbaren Unterbrechungen von laufenden Anwendungen durch die automatische Speicherverwaltung untersucht. Dieses Problem wird durch die Einführung eines echtzeitfähigen Garbage Collectors basierend auf Reference Counting gelöst. Dieser arbeitet parallel und nicht-blockierend, sodass die Ausführung von Anwendungen mit Echtzeitanforderungen nicht mehr beeinträchtigt wird. Die eingeführten Änderungen bieten zusätzlichen Schutz für persistente Hintergrunddienste. Weiterhin präsentiert diese Arbeit erweiterte Methoden für einen zuverlässigen Datenaustausch zwischen laufenden Anwendungen. Diese Erweiterungen werden nahtlos in die Plattform integriert und ermöglichen eine vorhersagbare Kommunikation zwischen separaten Android-Prozessen mit beschränkten Verzögerungen. Eine detaillierte Auswertung der vorgeschlagenen Modifikationen belegt die Effektivität und Skalierbarkeit des gewählten Ansatzes. Das neue System zeigt eine bessere Reaktionsfähigkeit und bleibt vollständig kompatibel mit Standard-Android-Komponenten und existierenden Anwendungen. Dadurch können Android-Anwendungen strikte zeitliche Anforderungen erfüllen und gleichzeitig von leistungsfähiger Standardhardware und höheren Programmiersprachen profitieren. Der Einsatz einer solchen echtzeitfähigen Android-Plattform ermöglicht die Entwicklung von weniger komplexen eingebetteten Produkten in neuen industriellen Szenarien.Nowadays, software plays a crucial role in the development of embedded products. The product's design and development process can be significantly simplified by relying on reusable software components and modern general-purpose hardware. However, such off-the-shelf components are typically not able to provide real-time support required in the industry. To address this limitation, different approaches were presented in the past to enable the use of high-level software while retaining precise timings during the interaction with the physical environment. For example, real-time capable Linux running on general-purpose hardware is widely used in industrial automation today. Furthermore, Linux-based platforms like Android are continuously gaining popularity in all sectors of the market. Due to its intuitive user interface and a wide range of supported hardware, Android is already broadly deployed in different industrial use cases. However, Android devices used in embedded products are still restricted to serving the purpose of pure data visualization and handling of the user input. To extend Android's field of application to time-critical domains, this work presents a holistic approach for combining the performance of modern general-purpose off-the-shelf hardware with predictability and determinism of a real-time capable operating system. Instead of adopting common methods for limiting the real-time support to the Linux kernel and native applications, it provides a global perspective on Android's architecture including the Linux kernel, main high-level components and their interaction in time-critical scenarios. The first part of this dissertation covers enhancements for minimizing the process scheduling latency using the PREEMPT_RT patch. Since Android is built upon Linux, introducing a fully preemptible kernel and a high-resolution timer enables a more precise process management. This approach allows Android to achieve bounded scheduling deviations in the same order of magnitude as industrial Linux-based systems. In the second part, it is shown that Android's original memory management may cause unpredictable suspensions of running applications or even automatically terminate long-term background processes. To address this issue, the platform is extended with a real-time capable garbage collector based on reference counting. The new collector operates concurrently to real-time threads in a non-blocking incremental manner, avoiding undesired interferences. Furthermore, the proposed modifications provide additional protection for persistent background services. Finally, this thesis implements enhanced methods for data exchange between separate Android applications. Being seamlessly integrated into the platform, new mechanisms allow predictable communication and bounded delays for delivering arbitrary messages across process boundaries. A detailed evaluation of the introduced platform changes highlights the effectiveness and scalability of the presented approach. The resulting system performs better in terms of responsiveness and determinism, while staying fully compatible with standard Android components and third-party applications. By combining powerful general-purpose hardware and high-level programming paradigms, Android applications are now able to additionally fulfill strict timing requirements. This allows utilizing the advantages of Android in industrial use cases, which facilitates the development of easily extendable and less complex embedded products with intuitive user interfaces.
OpenAccess: PDF
(additional files)
Dokumenttyp
Book/Report/Dissertation / PhD Thesis
Format
online
Sprache
English
Externe Identnummern
HBZ: HT019656767
Interne Identnummern
RWTH-2018-222005
Datensatz-ID: 719343
Beteiligte Länder
Germany