Introduction to Real-Time Systems
Real-Time and Embedded Systems (M)
Lecture 1
Lecture Outline
• Administrivia
– Aims and objectives
– Intended learning outcomes
– Prerequisites
– Module outline and timetable
– Reading list
– Assessment
• Introduction to real-time systems
– Examples
– Types of real-time system
– Implementation considerations
Copyright © 2007 University of Glasgow
All rights reserved.
Lecturer Contact Details
Dr. Colin Perkins
Lilybank Gardens, room S154, but moving to
the Sir Alwyn Williams Building, room 405
Email: csp@dcs.gla.ac.uk
Willing to discuss the module and answer
questions – make appointments by email
http://www.dcs.gla.ac.uk/~csp/teaching/rtes/
Copyright © 2007 University of Glasgow
All rights reserved.
Aims of This Module
• To introduce and explore the programming language and
operating systems facilities essential to the implementation
of real-time, reactive, embedded and networked systems.
• To provide the participants with an understanding of the practical
engineering issues raised by the design and programming of real-
time, reactive, embedded and networked systems.
Copyright © 2007 University of Glasgow
All rights reserved.
Intended Learning Outcomes
• By the end of this module participants should be able to:
– Clearly differentiate the different issues that arise in designing soft and
hard real-time, concurrent, reactive, safety-critical and embedded systems.
– Explain the various concepts of time that arise in real-time systems.
– Analyse and apply a variety of static and dynamic scheduling mechanisms
suitable for soft and hard real-time systems. Conduct simple performance
and schedulability analysis to demonstrate that a system can successfully
meet real-time constraints.
– Explain the additional problems that arise in developing distributed and
networked real-time systems.
– Describe the design and implementation of systems that support real-time
applications. Justify and critique facilities provided by real-time operating
systems and networks.
Copyright © 2007 University of Glasgow
– Design, construct and analyse a small, concurrent, reactive, real-time
system. Select and use appropriate engineering techniques, and explain the
effect of your design decisions on the behaviour of the system.
All rights reserved.
Prerequisites
• Students are expected to have done degree-level studies in, and
be familiar with, operating systems design and implementation,
concurrency and threaded programming, and software analysis
and design.
• Some basic familiarity with formal reactive systems modelling
techniques and safety critical system design would complement
the engineering issues addressed in this module
– The MRS4 and SCS4 modules cover that material, but are not formal co-
or pre-requisites
Copyright © 2007 University of Glasgow
All rights reserved.
Module Outline
• Introduction to Real-Time and Embedded Systems
– Reference Model
– Hard versus soft real-time
• Job Scheduling
– Clock driven scheduling algorithms
– Priority driven scheduling algorithms
– Schedulers in commodity and real-time operating systems
• Resource access control
– Algorithms
– Implementation
• Real-time communication
– On best-effort networks
Copyright © 2007 University of Glasgow
– Enhanced quality of service
• Other implementation considerations
All rights reserved.
Timetable
Week starting: Tue 14:00-15:00 Wed 10:00-11:00 Thu 10:00-11:00
7 Jan Lecture 1 Lecture 2 Lecture 3
14 Jan Tutorial 1 Lecture 4 Lecture 5
21 Jan Lecture 6 Tutorial 2 Lecture 7
28 Jan Lecture 8 Tutorial 3 Lecture 9
4 Feb Lecture 10 Lecture 11 Lecture 12
11 Feb Tutorial 4 Lecture 13 Lecture 14
18 Feb Tutorial 5 Lecture 15 Lecture 16
25 Feb Individual work on programming assignment
Copyright © 2007 University of Glasgow
3 Mar Lecture 17 Tutorial 6 Lecture 18
All rights reserved.
10 Mar Lecture 19 Lecture 20
Timetable
Week 1 Lecture 1 Introduction to Real-Time Systems
Lecture 2 A Reference Model for Real-Time Systems
Lecture 3 Overview of Real-Time Scheduling
Week 2 Tutorial 1 The Basics of Real-Time Systems
Lecture 4 Clock-Driven Scheduling
Lecture 5 Priority-driven Scheduling of Periodic Tasks (1)
Week 3 Lecture 6 Priority-driven Scheduling of Periodic Tasks (2)
Tutorial 2 Scheduling Algorithms (1)
Lecture 7 Priority-driven Scheduling of Aperiodic and Sporadic Tasks (1)
Week 4 Lecture 8 Priority-driven Scheduling of Aperiodic and Sporadic Tasks (2)
Tutorial 3 Scheduling Algorithms (2)
Lecture 9 Implementing Scheduling Algorithms
Copyright © 2007 University of Glasgow
Week 5 Lecture 10 Real-Time Operating Systems and Languages (1)
Lecture 11 Real-Time Operating Systems and Languages (2)
All rights reserved.
Lecture 12 Real-Time on General Purpose Systems
Timetable
Week 6 Tutorial 4 Real-Time Operating Systems and Languages
Lecture 13 Resource Access Control (1)
Lecture 14 Resource Access Control (2)
Week 7 Tutorial 5 Resource Access Control
Lecture 15 Introduction to Real-Time Communications
Lecture 16 Real-Time Communication on IP Networks
Week 8
Individual Work on Programming Assignment
Week 9 Lecture 17 Quality of Service for Packet Networks
Tutorial 6 Real-Time Communications/Q&A on Programming Assignment
Lecture 18 Low-Level and Embedded Programming (1)
Copyright © 2007 University of Glasgow
Week 10 Lecture 19 Low-Level and Embedded Programming (2)
Lecture 20 Review of Major Concepts
All rights reserved.
Lectures and Tutorials
• Lectures:
– Highlight relevant material from the book
• Tutorials:
– Practice problem solving, review material covered in lectures
– Expect to do worked examples and answer questions!
Copyright © 2007 University of Glasgow
All rights reserved.
Assessment
• Level M module, worth 10 credits
• 3 Problem sets (each worth 5% of total mark)
– Problem set 1: available in lecture 3, due 2:00pm on 21st January
– Problem set 2: available in lecture 6, due 2:00pm on 28th January
– Problem set 3: available in lecture 8, due 2:00pm on 4th February
• Hard deadlines: late submissions will receive zero marks unless valid special
circumstances form submitted
• Programming assignment (15% of total mark)
– Available in lecture 15, due at 5pm on 14th March
– Will involve real-time network programming in C
• Written examination (70% of total mark)
– All material in the lectures, tutorials and background reading is examinable
Copyright © 2007 University of Glasgow
– Aim is to test your understanding of the material, not to test your memory
of all the details; explain why – don’t recite what
All rights reserved.
Reading
• Jane W. S. Liu, “Real-Time Systems”, Prentice-
Hall, 2000, ISBN 0130996513
– This book comprises the lecture notes for the module
and is required reading for all students
– All material in this book is examinable
• Bill Gallmeister, “POSIX.4: Programming for the
Real-World”, O’Reilly and Associates, 1995,
ISBN 1565920740
– Optional, but provides further detail on the practical
Copyright © 2007 University of Glasgow
aspects of the module
All rights reserved.
Real-Time and Embedded Systems
• A real-time system must deliver services in a timely manner
– Not necessarily fast, but must meet some timing deadline
• An embedded system is hidden from view within a larger system
• Many real-time and embedded systems exist, often without the
awareness of their users
– Washing machine, photocopier, mobile phone, car, aircraft, industrial
plant, microwave oven, toothbrush, CD player, medical devices, etc.
• Must be able to validate real-time systems for correctness
– Some embedded real-time systems are safety critical – i.e. if they do not
complete on a timely basis, serious consequences result
– Bugs in embedded real-time systems are often difficult or expensive to fix
Copyright © 2007 University of Glasgow
All rights reserved.
Real-Time and Embedded Systems
• This module will discuss several representative classes of real-
time and embedded system:
– Digital process control
– Higher-level command and control
– Tracking and signal processing
– Real-time databases
– Telephony and multimedia
• Algorithms for scheduling tasks such that those systems complete
in a reliable and timely fashion
• Implementation techniques, operating systems and languages for
building such systems
Copyright © 2007 University of Glasgow
All rights reserved.
Digital Process Control
• Controlling some device (the “plant”) using an actuator, based on
sampled sensor data
– y(t) is the measured state of the plant
– r(t) is the desired state of the plant
– Calculate control output u(t) as a function of y(t), r(t)
controller
reference control-law
input: r(t) A/D D/A
rk computation uk
A/D y
k
Copyright © 2007 University of Glasgow
y(t) u(t)
All rights reserved.
Sensor Plant Actuator
Digital Process Control
• Pseudo-code for the controller:
set timer to interrupt periodically with period T;
at each timer interrupt, do
do analogue-to-digital conversion of y(t) to get yk;
compute control output uk based on reference rk and yk;
do digital-to-analogue conversion of uk to get u(t);
end do;
• Effective control of the plant depends on:
• The correct control law computation and reference input
• The accuracy of the sensor measurements:
• Resolution of the sampled data (i.e. bits per sample)
• Timing of the clock interrupts (i.e. samples per second, 1/T)
Copyright © 2007 University of Glasgow
All rights reserved.
Digital Process Control
• The time T between any two consecutive measurement of y(t), r(t)
is the sampling period
– Small T better approximates the analogue behaviour
– Large T means less processor-time demands
– Must achieve a compromise
• If T is too large, oscillation will result as the system tries to adapt
Desired
Large T
y(t) umax
0 u(t)
Copyright © 2007 University of Glasgow
-umax
All rights reserved.
Measured State Control Output
Digital Process Control
• How to choose sampling period?
– Rise time – the amount of time that the plant takes to reach some small
neighbourhood around the final state in response to a step change in the
reference input
– If R is the rise time, and T is the period, a good rule of thumb is that the
ratio 10 ≤ R/T ≤ 20
• Must be chosen correctly, and accurately implemented to ensure
stability
• Multi-rate systems – system is composed of multiple sensors and
actuators, each of which require different sampling periods
– Need to run multiple control loops at once, accurately
Copyright © 2007 University of Glasgow
– Usually best to have the sampling periods for the different degrees of
freedom related in a harmonic way
All rights reserved.
Example: Helicopter Flight Control
Do the following in each 1/180-second cycle:
• Validate sensor data and select data source; on failure reconfigure the system
• Do the following 30-Hz avionics tasks, each once every 6 cycles:
– Keyboard input and mode selection
– Data normalization and coordinate transformation
– Tracking reference update
• Do the following 30-Hz computations, each once every 6 cycles
– Control laws of the outer pitch-control loop
– Control laws of the outer roll-control loop
– Control laws of the outer yaw- and collective-control loop
• Do each of the following 90-Hz computations once every 2 cycles, using
outputs produced by the 30-Hz computations
– Control laws of the inner pitch-control loop
– Control laws of the inner roll- and collective-control loop
• Compute the control laws of the inner yaw-control loop, using outputs from the
Copyright © 2007 University of Glasgow
90-Hz computations
• Output commands to control surfaces
All rights reserved.
• Carry out built-in-test
Digital Process Control
• Digital controllers make three assumptions:
– Sensor data give accurate estimates of the state-variables being monitored
and controlled - noiseless
– The sensor data gives the state of the plant – usually must compute plant
state from measured values
– All parameters representing the dynamics of the plant are known
• If any of these assumptions are not valid, a digital controller must
include a model of the correct system behaviour
– Estimate actual state based on noisy measurement each iteration of the
control loop
– Use estimated plant state instead of measured state to derive control output
– Often requires complex calculation, modelling
Copyright © 2007 University of Glasgow
• We’ll cover scheduling dynamics; the system model is domain-
All rights reserved.
specific
Higher-Level Control
• Controllers often organized in a hierarchy
– Multiple control loops, higher level controllers monitoring the behaviour of
low-level controllers
– Time-scale, complexity of decision making, increases as go up hierarchy;
Move from control to planning
– Higher level planning must State Air traffic
Estimator control
still be done in real-time,
although deadlines are less Navigation
tight State Flight
Estimator Management
State Flight
Copyright © 2007 University of Glasgow
Estimator control
All rights reserved.
Air data
Real-Time Communications
• Real-time systems are increasingly distributed, including
communication networks
– Control loop may include a communication step
– System may depend on network stimuli
• Not only does a system need to run a control law with time
constraints, it must also schedule communications, sending
and receiving messages according to deadlines
Copyright © 2007 University of Glasgow
All rights reserved.
Example: Drive by Wire
Steering Brake Accelerator Gears
Brake
actuator Controller Engine
area network controls
Wheel Engine
sensors sensors
Control
system
• All data must be delivered reliably
– Bad if you turn the steering wheel, and nothing happens
• Commands from control system have highest priority, then sensors and actuators, then
control inputs
Copyright © 2007 University of Glasgow
– Anti-lock brakes have a faster response time than the driver, so prioritise to ensure the car
doesn’t skid
• Network must schedule and prioritise communications
All rights reserved.
Example: Packet Voice
Packet switched
voice network
• Voice is digitised and sent as a sequence of packets
– Constant spacing, every 10-30ms depending on codec
• Strict timeliness requirement
– Mouth to ear delay needs to be less than approximately 150ms
– Packets must be played out with equal spacing
• Relaxed reliability requirement
Copyright © 2007 University of Glasgow
– Some small fraction of packets can be lost, and just sound like crackles on
the wire; most need to arrive
All rights reserved.
• Emergency calls may have priority
Types of Real-Time Application
• Purely cyclic • Asynchronous: mostly predictable
– Every task executes periodically – Most tasks are not periodic
– Demands in (computing, – The time between consecutive
communication, and storage) executions of a task may vary
resources do not vary significantly considerably, or the variations in
from period to period resource utilization in different
– Example: most digital controllers periods may be large
and real-time monitors – These variations have either
• Mostly cyclic bounded ranges or known statistics
– Most tasks execute periodically • Asynchronous: unpredictable
– The system must also respond to – Applications that react to
some external events (fault asynchronous events and have tasks
recovery and external commands) with high run-time complexity
asynchronously – Example: intelligent real-time
– Example: modern avionics and control systems
Copyright © 2007 University of Glasgow
process control systems
All rights reserved.
Types of Real-Time Application
• As we will see later, the type of application affects how we
schedule tasks, prove correctness
• It is easier to reason about applications that are more cyclic,
synchronous and predictable
– Many real-time systems designed in this manner
– Safe, conservative, design approach, if it works for your application
Copyright © 2007 University of Glasgow
All rights reserved.
Implementation Considerations
• Some real-time embedded systems are complex, implemented on
high-performance hardware
– Industrial plant control
– Civilian flight control
• Many must be implemented on hardware chosen to be low cost,
low power, light-weight and robust; with performance a distant
concern
– Military flight control, space craft control
– Consumer goods
• Often-times implemented in C or assembler, fitting within a few
kilobytes of memory
Copyright © 2007 University of Glasgow
– Correctness a primary concern, efficiency a close second
All rights reserved.
Summary
• Outline of the module structure, assessment, etc.
• Introduction to real-time and embedded systems
– Examples of digital control, higher-level control, communication
• Types of real-time system
– Cyclic synchronous vs. asynchronous and unpredictable
• Implementation considerations
Copyright © 2007 University of Glasgow
[Liu chapter 1]
All rights reserved.