Professional Documents
Culture Documents
Real-Time Systems and Programming Languages: Alan Burns and Andy Wellings
Real-Time Systems and Programming Languages: Alan Burns and Andy Wellings
Programming Languages
Real-Time Systems and Programming Languages © Alan Burns and Andy Wellings
Other books
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 3 of 24
Book Aims
Understanding of the broad concept of real-
time systems
Practical understanding for industry
To stimulate research interest
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 4 of 24
Overall Technical Aims
To understand the basic requirements of real-time
systems and how these requirements have
influenced the design of real-time programming
languages and real-time operating systems
To understand the implementation and analysis
techniques which enable these requirements to be
realized
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 5 of 24
What is a real-time system?
A real-time system is any information processing system
which has to respond to externally generated input stimuli
within a finite and specified period
the correctness depends not only on the logical result but
also the time it was delivered
failure to respond is as bad as the wrong response!
The computer is a component in a larger engineering
system => EMBEDDED COMPUTER SYSTEM
99% of all processors are for the embedded systems market
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 6 of 24
Terminology
Hard real-time — systems where it is absolutely
imperative that responses occur within the required
deadline, e.g. A flight control system
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 7 of 24
Terminology
Time-aware — system makes explicit reference to time
(eg. open vault door at 9.00
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 8 of 24
Terminology
Time-triggered — computation is triggered by the passage of
time
Release activity at 9.00
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 9 of 24
A simple fluid control system
Interface
Pipe
Processing
Valve
Output valve
angle
Time
Computer
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 10 of 24
A Grain-Roasting Plant
Bin
Furnace
Fuel Tank
grain
Pipe
fuel
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 11 of 24
A Widget-Packing Station
Switch
Computer
Switch
Assembly line
Bell
0 = stop
1 = run
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 12 of 24
A Process Control System
Process
Control
Computer
Temperature Finished
Valve Stirrer
Chemicals Transducer Products
and
Materials
PLANT
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 13 of 24
A Production Control System
Production
Control
System
Finished
Products
Parts
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 14 of 24
Command and Control System
Command
Post
Terminals Sensors/Actuators
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 15 of 24
A Typical Embedded System
Real-Time Algorithms for Engineering
Interface
Clock Digital Control System
Database
Data Retrieval Display
and Display Devices
Operator’s
Console Real-Time Computer
Operator
Interface
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 16 of 24
Other Real-Time Systems
Multi-media systems
Including mobile devices
Cyber-physical systems
Linking web-based information and the sensed physical
world
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 17 of 24
Characteristics of a RTS
Guaranteed response times — we need to be able to predict
with confidence the worst case response times for systems;
efficiency is important but predictability is essential
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 18 of 24
Characteristics of a RTS
Support for numerical computation – be able to support the
discrete/continuous computation necessary for control system
feed-back and feed-forward algorithms
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 19 of 24
RT Programming Languages
Assembly languages
Sequential systems implementation languages — e.g.
RTL/2, Coral 66, Jovial, C.
Both normally require operating system support.
High-level concurrent languages. Impetus from the software
crisis. e.g. Ada, Chill, Modula-2, Mesa, Java.
No operating system support!
We will consider:
Java/Real-Time Java
C and Real-Time POSIX (not in detail)
Ada 2005
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 20 of 24
Real-Time Languages and OSs
Hardware Hardware
System
System Components
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 21 of 24
Summary
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 22 of 24
Aspects of Real-Time Systems
Real-Time
Temporal Characteristics
Structure Classification (see next page)
Requirements
Periodic/
Deadline/ Input/output Time- Event- Role of
Sporadic/ Criticality
Latency jitter Aperiodic triggered triggered time
hard time-aware
soft reactive
firm
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 23 of 24
Aspects of Real-Time Systems
Characteristics
Interaction
Real-Time Numerical Efficiency/ Reliability/ Large/
Concurrency with
facilities computation Predictability Safety Complex
hardware
Real-Time Systems and Programming Languages: © Alan Burns and Andy Wellings 24 of 24