Traditional studies on the reliability of software focus on functional failures, and do not emphasize the time-related behavior of systems that can also cause the software to fail.
The ability to meet deadlines and time constraints is critical to embedded systems software (as in automotive or robotic applications) that mandate response to stimuli within prespecified real-time design specifications, and reliability considerations require a detailed evaluation of the ability of the system to meet these specifications.
The Android OS is an operating system primarily designed for mobile platforms by Google. It is an open source OS based on LINUX kernel (version 2.6) that enables developers to write applications primarily in Java with support for C/C++ as well this study examines its performance & reliability in more demanding embedded real-time applications.
We use the automotive application as an example of the type of reliable embedded software applications that are being investigated in the context of the use of Android.
In the typical automotive application, there are different services (Control Class: drive control, braking; Safety Class: seatbelts, airbags; Infotainment Class: multimedia, climate control, communication services, etc.), that usually provide their own user interfaces.
This might overwhelm and distract the typical driver restricting the user from exploiting the full capabilities of these devices. With all these features bundled together on a single platform, the unpredictability in response time of these simultaneously executing and interacting applications may cause the software to fail, resulting in unreliable operation.
Our experimental results show that deadline misses of between 1 and 5 ms are common when the frequency of interrupts is small (e.g., 10Hz). However, when the frequency of interrupts is increased (e.g., 1Khz), deadline misses or response times in the order of 0.5sec are observable.
Furthermore, the frequency of these misses increases with time through the process of slippage accumulation, resulting in potentially a slowdown in the operation of the system.
If there are more than a dozen interrupts per second under load, we observe that the Android OS may not demonstrate reliable behavior (e.g., response times increase significantly) with respect to real-time constraints.
The addition of a real-time scheduler (e.g., a Rate Monotonic Scheduler) may increase the reliability of Android, and we are experimenting further along these lines of research.
While Android OS supports pre-emption and multi-tasking, our results indicate that designers of real-time applications that propose to use Android OS should conduct measurements of its behavior carefully to gauge the combined effects of slippage, its frequency and value, and its accumulation, on the reliability of their system.
To read this external content in full, download the paper from the Georgia Tech author archives. http://users.ece.gatech.edu/~vkm/Android_Real_Time.pdf