Title: Presentation on Real Time Operating Systems
1Presentation on Real Time Operating Systems
2Contents
- Real Time System Fundamentals
- Real Time Operating System (RTOS)
- Linux as RTOS
3What are Real-time Systems ?
- Real-time systems
-
- Those systems in which the correctness of the
system depends not only on the logical result of
computation, but also on the time at which the
results are produced.
4Types of Real Time Systems
- Based on Hard deadline Penalty due to missing
deadline is a higher order of magnitude than the
Reward in meeting the deadline. - Based on Soft deadline Penalty often equal /
lesser magnitude than Reward.
5A Sample Real Time System (1)
6A Sample Real Time System (2)
- Mission Reaching the destination safely.
- Controlled System Car.
- Operating environment Road conditions.
- Controlling System
- - Human driver Sensors - Eyes and Ears of the
driver. - - Computer Sensors - Cameras, Infrared
receiver, and Laser telemeter.
7A Sample Real Time System (3)
- Controls Accelerator, Steering wheel,
Break-pedal. - Actuators Wheels, Engines, and Brakes.
- Critical tasks Steering and breaking
- Non-critical tasks Turning on radio
8A Sample Real Time System (4)
- Performance is not an absolute one. It measures
the goodness of the outcome relative to the best
outcome possible under a given circumstance. - Cost of fulfilling the mission ? Efficient
solution. - Reliability of the driver ? Fault-tolerance is a
must.
9Contents
- Real Time System Fundamentals
- Real Time Operating System (RTOS)
- Linux as RTOS
10RTOS Kernel
- RTOS Kernel provides an Abstraction layer that
hides from application software the hardware
details of the processor / set of processors upon
which the application software shall run.
11RTOS Kernel Functions
12Task Management
- Set of services used to allow application
software developers to design their software as a
number of separate chunks of software each
handling a distinct topic, a distinct goal, and
sometimes its own real-time deadline. - Main service offered is Task Scheduling
- controls the execution of application software
tasks - can make them run in a very timely and responsive
fashion.
13Task Scheduling
- Non Real -time systems usually use Non-preemptive
Scheduling - Once a task starts executing, it completes its
full execution - Most RTOS perform priority-based preemptive task
scheduling. - Basic rules for priority based preemptive task
scheduling - The Highest Priority Task that is Ready to Run,
will be the Task that Must be Running.
14Priority based Preemptive Task Scheduling
- Every Task in a software application is assigned
a priority. - Higher Priority Higher Need for Quick Response.
- Follows nested preemption
15Nested Preemption
Timeline for Priority-based Preemptive Scheduling
16Task Switch (1)
- Each time the priority-based preemptive scheduler
is alerted by an External world trigger /
Software trigger it shall go through the
following steps that constitute a Task Switch -
- Determine whether the currently running task
should continue to run. - Determine which task should run next.
- Save the environment of the task that was stopped
(so it can continue later). - Set up the running environment of the task that
will run next. - Allow the selected task to run.
17Task Switch (2)
- A Non Real time operating system might do task
switching only at timer tick times. - Even with preemptive schedulers a large array of
tasks is searched before a task switch. - A Real time OS shall use Incrementally arranged
tables to save on time.
18Task Switch (3)
19Intertask Communication Synchronization
- These services makes it possible to pass
information from one task to another without
information ever being damaged. - Makes it possible for tasks to coordinate
productively cooperate with each other.
20Inter-Task communication Synchronization
- The most important communication b/w tasks in an
OS is the passing of data from one task to
another. - If messages are sent more quickly than they can
be handled, the OS provides message queues for
holding the messages until they can be processed.
21Message passing in OS
- Most General Purpose OS actually copy messages
twice as they transfer them from task to task via
a message queue.
22Message passing in RTOS
- In RTOS, the OS copies a pointer to the message,
delivers the pointer to the message-receiver
task, and then deletes the copy of the pointer
with message-sender task.
23Dynamic Memory Allocation in General Purpose OS
- Non-real-time operating systems offer memory
allocation services from what is termed a Heap. - Heaps suffer from a phenomenon called External
Memory Fragmentation. - Fragmentation problem is solved by Garbage
collection / Defragmentation. - Garbage collection algorithms are often wildly
non-deterministic.
24Dynamic Memory Allocation in RTOS
- RTOS does it by a mechanism known as Pools.
- Pools memory allocation mechanism allows
application software to allocate chunks of memory
of 4 to 8 different buffer sizes per pool. - Pools avoid external memory fragmentation, by not
permitting a buffer that is returned to the pool
to be broken into smaller buffers in the future. - When a buffer is returned the pool, it is put
onto a free buffer list of buffers of its own
size that are available for future re-use at
their original buffer size
25Contents
- Real Time System Fundamentals
- Real Time Operating System (RTOS)
- Linux as RTOS
26Dark Side of Linux in Real-Time
- The Linux kernel (lt version 2.6) is neither
preemptive nor reentrant by user processes. - Processes are heavy-weight Linux has
insufficient resource handling. - Fair share scheduling algorithm .
- Unbound amount of CPU time used by interrupt
handlers under Linux, and these run at a higher
priority than any user process.
27Typical Solutions for Linux
- 3 ways to deal with Linux s poor real-time
performance - Ignore the problem (only for soft real-time).
- Work around and run real-time applications under
an RTOS with Linux itself as a separate task.
e.g. RT-Linux. - Adapt Linux and run a Linux compatible RTOS
kernel instead of the Linux kernel.
28Ignore the problem Approach
- The most popular approach is to ignore the
problem. - Mostly works for soft real-time systems.
- Design recommendations to reduce latency
- If possible, address all real-time response needs
directly with interrupt service routines. - Avoid known excessive interrupt-off periods in
Linux. - If a process component is required in the
real-time control path, then consider aggregate
system loading Adapt processes.
29Work Around Approach
- Linux kernel runs as a task under a small
real-time executive. - Real-time tasks are run directly under the
real-time executive - Non-real-time tasks are run under Linux.
- Applications that work on such a system can
include machine control, process control, and
instrumentation applications.
30Work Around - Advantages
- The real-time executive can be small and simple
making it easier to verify its real-time
performance. - The Linux kernel running non-real-time tasks is
"standard" Linux so it is compatible with other
Linux distributions and can easily be updated. - Supports hard real-time applications.
31Work Around - Disadvantages
- Not applicable if real-time part of the software
is large / not easily separated from the code
that needs a Linux environment - Tasks running under the real-time executive do
not have access to the Linux facilities, device
drivers, etc. - Tasks running under the Linux kernel and can
access the facilities are not real-time. - Programmers tend to increase the number of
facilities in the real-time kernel until the
real-time executive replicates facilities of
Linux.
32 Adapt Linux
- The original Linux kernel is replaced with a
compatible kernel with hard real-time performance
characteristics. - The kernel is only a small part of a whole
operating system. If just the Linux kernel is
replaced and the libraries, utilities, and file
structure remain the same. - The real-time kernel must support all the
facilities of a Linux kernel while still
remaining fully preemptive and reentrant.
33Adapt Linux Approach Advantages Disadvantages
- Advantages
- No limits on the size and complexity of the
real-time application code. - Third party software not originally envisioned
for real-time use can be invoked by real-time
tasks - With the same programming interfaces, programmers
who understand Linux would already be experts in
the real-time environment. - Disadvantages
- With modified Linux you are NOT sure of full
compatibility with standard Linux application
34Any Questions?
35Thank You !