Non-Blocking Garbage Collection for Real-Time Android
The Android platform is an open source operating system for mobile devices developed by the Open Handset Alliance. Due to its usability and rich set of functionalities, Android is an attractive platform for both, developers and end-users. RTAndroid is a modified version of the Android 2.2 platform extended with a real-time capable scheduler [11]. This modification should enable the domain of industrial applications. But unfortunately, the predictability and deterministic behavior of RTAndroid in its current version highly depend on its memory management components. For instance, explicit memory management cannot be used to free objects that were allocated without the knowledge of the developer. Further, invocations of the native garbage collection result in non-deterministic process suspensions during runtime. This paper presents a concept for a real-time capable, automatic memory management mechanism in order to improve the timing and predictability of the process behavior in RTAndroid. The introduced memory management respects the execution cycles and deadlines of running real-time processes. Empirical evaluations highlight the improvements resulting from the applied system modifications.
Thomas Gerlitz, Igor Kalkov and Stefan Kowalewski