Real-time and Embedded Systems 4 (2003-2004)
Real-time, reactive and embedded systems are widely and increasingly
used throughout society (e.g. flight control, railway signalling, medical
devices). An understanding of the fundamentals of real-time & embedded
systems is essential for the development of process control systems and
should be a pre-requisite for anyone developing software for
safety-critical applications. This module provides in-depth study of key
techniques used in designing, programming and analysing concurrent
reactive real-time and embedded systems.
This module contrasts with the Safety Critical Systems Development 4
module, which takes a much wider ranging view of safety-critical systems.
The emphasis in this module is on the technical foundations of reactive,
real-time and embedded systems as used in safety-critical applications.
Real-Time & Embedded Systems 4 was designed in conjunction with, and is
usually intended to be taken alongside, the Modelling Reactive Systems 4
module. However, these two modules are not formally co-requisites as they
develop different skills and knowledge and can stand freely of one
another.
Aims and Objectives
To introduce and explore the programming language and operating systems
facilities that are essential in implementing real-time, reactive,
embedded and safety-critical systems. To present the practical engineering
issues raised by the design and programming of reactive real-time embedded
systems.
By the end of this module the student should be able to:
-
clearly differentiate issues that arise in soft and hard real-time,
concurrent, reactive, safety-critical, and embedded systems;
-
explain the various concepts of time that arise in real-time systems;
-
identify the main sources of faults in software systems;
-
use a variety of error avoidance and recovery techniques in developing
fault-tolerant, reactive, real-time software for safety-critical
applications;
-
describe and carry out the main stages of development involved in the
construction of software for embedded systems;
-
perform simple probabilistic performance and risk analyses using, for
example, naive algebraic models, and evaluate average and worst case
absolute performance;
-
describe the design and implementation of systems that support real-time
applications;
-
analyse and apply a variety of static and dynamic scheduling mechanisms
suitable for soft and hard real-time systems;
-
justify and critique the facilities provided by real-time operating
systems;
-
explain the effect of application and system design decisions on the
behaviour of simple concurrent reactive real-time systems;
-
explain the additional problems caused by distribution in real-time
systems;
-
design, construct and analyse a small, concurrent, safety-critical,
reactive, real-time system --- selecting and using appropriate engineering
techniques.
As part of the module coursework, the student will have: designed,
constructed and analysed a tiny, concurrent, safety-critical, reactive,
real-time system, using appropriate design techniques; and, if facilities
permit, designed and implemented a small embedded system.
Prerequisites
Advanced Programming 3, Professional Software Development 3 and Operating Systems 3.
Although not a formal co-requisite, students are strongly encouraged to
also attend Modelling Reactive Systems 4, which presents the formal
process modelling techniques which complement the engineering issues
addressed in this module.
Timetable
The module will consist of 20 lectures and associated tutorials and laboratory sessions.
It runs in semester 2.
Recommended Reading
-
Jane W. S. Liu, Real-Time Systems, Pearson, 2000, ISBN 0-13-099651-31 (required).
-
Real-Time Systems and Programming Languages by Burns & Wellings, Addison-Wesley,
3rd Edition, 2001, ISBN 0-201-729881 (Recommended).
-
Real-Time Programming by Grehan et al, Addison-Wesley, 1st, 1998, ISBN
0-201-485400 (Background).
Credits
This is a 10-credit level 4 course.
Assessment
Assessment is by assessed coursework (25%) and examination (75%).
There will be two assessed problem sets in weeks 1-5, and a single
assessed programming exercise in weeks 6-10.
Lecture Slides
Tutorials
Coursework
Past exam papers