Review Paper
Review Paper
Review Paper
Abstract
Growing global connectivity, changing consumer demands for always-available data,
and always-on, sensor-enabled enterprise environments are driving the creation,
collection, and analysis of exponential amounts of data. By 2025, we estimates that
there will be 79.41 zettabytes of data created and nearly 30 percent of it will require
real-time processing enabled by real-time systems.
The need for real-time processing is especially crucial for businesses in robotics,
manufacturing, healthcare, and high-precision industries, such as oil and gas and
power that rely on real-time data for continuous improvement in safety, efficiency, and
reliability.
One key factor in ensuring data is processed in real-time for businesses in these types
of industries is a system’s ability to prioritize, manage, and execute real-time workloads
over non-real-time workloads.
For example, modern automotive manufacturers are highly reliant on robots to work
together on a production line to assemble a car. The robots will pass each other parts,
drill or weld, or perform safety inspections—all of which require a high level of precision
and meticulous timing. In this use case, a real-time system must have the ability to
not only process data in a defined, predictable time frame but also ensure that critical
tasks, such as safety-related workloads, are completed prior to less critical tasks.
Introduction
A system is defined as being real-time if it is required to respond to input stimuli within
a finite and specified time interval. The stimuli being either an event at the interface
to the system or some internal clock tick that is, at least notionally, coordinated with
the passage of time in the system’s environment.
Real-Time system refers to any information processing system with hardware and
software components that perform real-time application functions and can respond to
events within predictable and specific time constraints. Common examples of real-time
systems include air traffic control systems, process control systems, and autonomous
driving systems.
In some systems the required response times are measured in milliseconds, in others
it is seconds or even minutes. Nevertheless they all have dead-lines that must be
satisfied.
Real-time systems are systems where timeliness is essential to correctness. In a real-
time system the correctness of the system depends not only the logical results of the
computations, but also on the physical instant at which these results are produced.
Consider the airbag in a car. It does not suffice to establish that after a collision it will
expand it is also crucial that this happens neither too early nor too late. Such systems
play a major role in industrial design and development.
In particular embedded systems, whose primary purpose is to offer some service other
than computation itself, outnumber full grown processors by an order of magnitude,
most computations today are done on small, weak, and cheap hardware.
These systems are found in everyday use and range from simple appliances like
wristwatches and remote controls to complex designs, such as mobile phones, cars,
and airplanes.
A hard real-time system is one in which failure to meet even a single deadline
may lead to complete or catastrophic system failure.
A firm real-time system is one in which a few missed deadlines will not lead to
total failure, but missing more than a few may lead to complete or catastrophic
system failure.
Example for clarification :
1. Job: A job is a small piece of work that can be assigned to a processor and
may or may not require resources.
2. Task: A set of related jobs that jointly provide some system functionality.
3. Release time of a job: It is the time at which the job becomes ready for
execution.
4. Execution time of a job: It is the time taken by the job to finish its
execution.
5. Deadline of a job: It is the time by which a job should finish its execution.
6. Response time of a job: The time between the presentation of set of inputs
to a system and the realization of the required behavior, including the
availability of all associated outputs.
Android is considered today as one of the leading platforms for mobile devices. Being
as an open source platform distinguishes it from most other mobile platforms such
iOS, Blackberry and Windows Phone.
Android is an open source platform built by Google that includes an operating system,
middleware, and applications for mobile platforms. It is based on Linux kernel that
enables developers to write applications primarily in Java with support for C/C++ as
well.
ANDROID ARCHITECTURE
Another factor that has to be taken into account for deciding whether the system is
reliable for real-time use, in addition to the latency incurred in handling of external
events, is the “variation” in this latency i.e., for a system to be deemed reliable for
real-time application, there has to be an upper bound on how much variation in the
latency can be tolerated by the real-time application. We have analyzed our
experimental measurements with these criteria in mind.
In the First Research
This experiment involves system level latency measurements i.e., the delays
introduced by the Linux kernel and the Dalvik virtual machine combined, in
propagating the event (timer) up to the Java application running on top of Android.
To achieve this purpose, two separate applications, Test and Loading, were
developed on the Android Zoom II MDK.
The Test application’s task was to schedule a Timer Task which would run after the
expiry of fixed timer interval (i.e., 10ms or 1ms in this experiment) and observe the
error (slippage in deadline) by noting the time difference between when the task was
scheduled from the Java application, and when the actual timer events were
received. The application stores this slippage values onto a file which was read back
for later analysis.
The Loading application’s task was to exercise the CPU and other I/O resources on
the system so that measurements could be taken under varying loads.
The Loading application schedules another Timer Task with a varying timer interval
(10 ms for normal load and 1 ms for heavy load).
EXPERIMENTAL RESULTS
EXPERIMENTAL RESULTS
Our testing results showed that Android in its current state cannot be qualified to be
used in real-time environments.
This is because of the Bionic C library which does not implement the features and
behavior that are mandatory to have a real-time system. Also the semaphore
implementation behaves badly.
Conclusion
Our experimental results and analyses show that deadline misses of between 1 and
5 ms are common when the frequency of interrupts is small (e.g., 10 Hz). However,
when the frequency of interrupts is increased (e.g., 1 KHz), 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.
References