4. Real-Time Systems
Real-Time System
• Definition
A real-time system (defined by IEEE) is a system whose
correctness includes its response time as well as its functional
correctness.
In other words, in a real-time system, it not only matters that
the answers are correct, but it matters when the answers
are produced.
A Late Answer is a Wrong Answer!
Real-Time Systems
5. Real-Time Systems
• A real-time system is a system whose specification includes
both logical and temporal correctness requirements.
• Logical Correctness: Produces correct outputs.
– Can by checked, for example, by Hoare logic.
• Temporal Correctness: Produces outputs at the right time.
– In this course, we spend much time on techniques and
technologies for achieving and checking temporal
correctness.
Real-Time Systems
6. Characteristics of Real-Time Systems
• Event-driven, reactive.
• High cost of failure.
• Concurrency/multiprogramming.
• Stand-alone/continuous operation.
• Reliability/fault-tolerance requirements.
• Predictable behavior.
Real-Time Systems
8. Real-Time Systems
Hard Real-Time Systems
• Hard real-time means that the system (i.e., the entire system
including OS, middleware,application, HW,
communications,etc.) must be designed to GUARANTEE
that response requirements are met.
• Systems where it is absolutely imperative that
responses occur within the required deadline.
E.g. Flight control systems.
• Hard Real-Time doesn’t mean fast execution.
Real-Time Systems
9. Real-Time Systems
Examples
• Electronic Engines
• Automotive and Flight Control Systems
• Medical Systems
• Industrial Control Systems
• Robotics
Real-Time Systems
10. Real-Time Systems
Soft-Real Time Systems
• Soft real-time is exactly the same as hard real-time in its
infrastructure requirements, but it is not necessary for
system success that EVERY time constraint be met.
• Systems where deadlines are important but which will still
function correctly if deadlines are occasionally missed.
E.g. Data acquisition system.
Real-Time Systems
13. Real-Time Systems
Real-Time Design Issues
• How many things are under control?
• How “hard” are the timing constraints?
• Will there be user interaction?
• What is the mix of synchronous vs. asynchronous
threads of control?
Real-Time Systems
14. Real-Time Systems
Real-Time Design Approaches
• There are two primary techniques used in real-time designs
- Super- loops
One program running
-Multitasking
Many programs running, taking turns
Real-Time Systems
15. Real-Time Systems
Super-Loops
• Also called Foreground/Background Systems.
• There is a background loop that is always running anytime
an ISR isn’t executing.
• The CPU is always busy.
• Can be taken to the extreme of an idle loop and all of the
work being done in the ISRs.
Real-Time Systems
17. Real-Time Systems
Multi-Tasking Operation
• With multi- tasking, multiple tasks or threads compete for the
CPU based on a scheduling policy.
• This scheduling policy is implemented in the Kernel.
• The tasks give up the CPU:
-Voluntarily: cooperative multi- tasking
Developer determined via system call.
- Involuntarily: preemptive multi- tasking
Process scheduling algorithm.
Real-Time Systems
20. Real-Time Systems
What Is An RTOS?
• A Real- Time Operating System is software that allows a
program to:
– Communicate with peripherals and other tasks.
– React in a deterministic way to external events.
– Share the CPU and resources in a rigidly
established manner between competing threads
of execution.
Real-Time Systems
24. Real-Time Systems
Multi-Tasking Revisited
• Multitasking is the process of scheduling and switching the
CPU between several tasks.
• Maximizes the utilization of the CPU.
• Facilitates modular construction of applications.
• Simplifies the design of application programs.
Real-Time Systems
25. Real-Time Systems
Task
• A task (thread) is a simple program that thinks it has the
CPU all to itself.
• A Real-Time application consists of several tasks executing
concurrently.
• Each task is assigned a priority, its own set of CPU registers,
and its own stack area.
Real-Time Systems
27. Real-Time Systems
Content Switch
• Occurs when a Multi-Tasking kernel decides to run a
different task.
• Steps involved in a content switch
1.Save current task’s content(CPU registers) in the
current tasks content storage area(it’s stack)
2.Restore the new task’s content from it’s storage
area(it’s stack).
3.Resume execution of the new task’s code.
Real-Time Systems
28. Real-Time Systems
Multiple Tasks
Task Control Block Task Control Block Task Control Block
CPU Registers
Status
SP
Priority
Status
SP
Priority
Status
SP
Priority
SP
TASK 1 TASK 2 TASK n
CPU
MEMORY
Stack Stack Stack
Real-Time Systems
29. Real-Time Systems
Kernel
• Definition
Kernel is the part of the multi-tasking system responsible
for the management of tasks and communication between
tasks.
• Services
- Context switching
- Inter task communication services(Semaphore management,
mail boxes, queues, time delays, etc.)
Real-Time Systems
30. Real-Time Systems
Scheduler
• Scheduler is the part of the kernel, responsible for
determining which task will run next.
• Most real-time kernels are priority based.
• Each task is assigned a priority based on its importance.
• The priority of each task is application specific.
• Control is always given to the highest priority task ready to
run.
Real-Time Systems
32. Real-Time Systems
Non-Preemptive Kernel
• Require that each task does something to explicitly give up
the control of the CPU.
• Also called cooperative multitasking.
• ISR always returns to the interrupted task.
• Advantages
- Low interrupt latency
- It can use Non-Reentrant functions
• Disadvantages
- Responsiveness is very low.
• Very few kernels are non-preemptive
Real-Time Systems
33. Non-Preemptive Kernel
Low Priority Task
ISR
ISR makes the higher
priority task ready
High Priority Task
Low-priority task
relinquishes the CPU
Time
Real-Time Systems
34. Real-Time Systems
Preemptive Kernel
• It is used when system responsiveness is important.
• High priority task ready to run is always given control of
the CPU
• Most real-time kernels are preemptive.
• Application code using a preemptive kernel should not use
non-reentrant functions or an appropriate mutual exclusion
method should be applied to prevent data corruption.
Real-Time Systems
36. Real-Time Systems
Reentrancy
• A reentrant function can be interrupted at any time and
resumed at a later time without loss of data.
• It either uses local variables or protects data when global
variables are used.
• It can be used by more than one task without fear of data
corruption.
Real-Time Systems
37. Real-Time Systems
Mutual Exclusion
• Mutual Exclusion is used to ensure the exclusive access to
a shared resource without data corruption.
• Common Methods are
– Disabling interrupts
– Disabling scheduling
– Using Semaphores
Real-Time Systems
38. Real-Time Systems
• Common Inter task Communication methods are
1. Message Queues
2. Mail Boxes
3. Semaphores
Intertask Communication
Real-Time Systems