Lectures
The lecture notes (in the form of PowerPoint "handouts") can be
downloaded from the course home page. It is the responsibility of each
student to download and print out the material before each lecture! The
material will be available on the home page at least 48 hours before the
lecture in question.
Lecture 1 - Introduction; Design methods for real-time systems
Tue study week 1, 10.00 - 11.45 in HA3
In this lecture, we describe the general construction methods used for the
design of real-time systems. A three-stage design flow is introduced that
encompasses specification, implementation, and verification.
For the specification stage, we present application constraints particular
to real-time systems, and discuss their origin and implications. For the
implementation stage, we present an overview of critical design choices to
be made. For the verification stage, we discuss the pros and cons of ad hoc
testing and formal analysis (schedulability analysis) and also present
guidelines on how to make system designs that enable the use of formal
analysis.
Slides
[
PS,
PDF,
PDF_4up ]
Reading
- Chapter 1 in the course book
- Chapters 1 and 2 (except 2.4) in 3rd edition of the course book
Lecture 2 - Concurrent programming; Cooperating tasks; Rendezvous in Ada
95
Wed study week 1, 08.00 - 09.45 in HA3
In this lecture, we identify the desired properties of a real-time programming
language and show to what extent these properties exist in contemporary
imperative languages. We then discuss the pros and cons of a
concurrent/parallel programming paradigm and show how contemporary
imperative languages offer support for this paradigm. Finally, using an
example control application, we show that correct application behavior can
only be achieved by means of concurrent programming and synchronization, and
then show an Ada 95 solution that uses tasks and the rendezvous mechanism.
Slides
[
PS,
PDF,
PDF_4up ]Reading
- Chapters 4 (except 4.5-4.7) and 6 (except 6.7-6.8) in the course book
- Chapters 7 (except 7.3.5, 7.3.7-7.3.9) and 9 (except
9.3.1,9.4.1,9.5-9.7) in 3rd edition of the course book
Lecture 3 - Shared data structures; Mutual exclusion; Protected objects in Ada
95
Thu study week 1, 13.15 - 15.00 in HA3
In this lecture, we introduce the mutual exclusion property and show how
contemporary imperative languages offer support for this property. Then,
using a circular buffer example, we show how mutual exclusion can be
guaranteed for this data structure using the Ada 95 rendezvous mechanism.
Finally, we introduce the Ada 95 protected object mechanism and show how
mutual exclusion can be guaranteed for the circular buffer data structure
using protected objects.
Slides
[
PS,
PDF,
PDF_4up ]
+ solutions [
PS,
PDF,
PDF_4up ]Reading
- Chapter 5 (except 5.4-5.7,5.9-5.10) in the course book
- Chapter 8 (except 8.4-8.6,8.8) in 3rd edition of the course book
Lecture 4 - Clocks, time and task priorities in Ada 95
Tue study week 2, 10.00 - 11.45 in HA3
In this lecture, we first give an overview of the core and annex parts of the
Ada Reference Manual (ARM). We then describe how to use the internal clock
mechanism of Ada 95 as a means to implement periodically executing tasks.
Finally, we describe how to add priorities to tasks and also how to solve
the important problem, called priority inversion, by means of ceiling
priorities.
Slides
[ PS,
PDF,
PDF_4up
]
+ solutions [ PS,
PDF,
PDF_4up ]Reading
- Chapter 9 (except 9.2.2-9.2.4), 10.2.1, 12.2, 12.3 and 12.5 in the
course book
- Chapter 12 (except 12.2.1,12.2.3-12.2.4,12.7.2-12.7.5,12.8) and
13.14.1 in 3rd edition of the course book
Lecture 5 - Low-level programming in Ada 95
Wed study week 2, 08.00 - 09.45 in HA3
In this lecture, we demonstrate how to model bit-level data types in Ada 95,
including how to access such data types at specific memory addresses. As an
example of when to use such data types, we describe the programmer's
architecture of a serial communication unit in the laboratory system.
Slides
[ PS,
PDF,
PDF_4up ]Reading
- Chapter 14.1 and 14.3.1 in the course book
- Chapter 15.1 and 15.4.1 in 3rd edition of the course book
Resources
- MC68340 serial module data sheet
[ PDF ]
Lecture 6 - Resource management; Deadlock and starvation
Thu study week 2, 13.15 - 15.00 in HA3
In this lecture, we first show how to implement hardware interrupt handling
using protected objects with ceiling priorities in Ada 95. We then describe
how to implement general resource management, and discuss causes for, and
solutions to the problem of, deadlock and starvation in systems with shared
resources. Finally, we present an Ada 95 solution to the Dining Philosophers
problem.
Slides
[ PS,
PDF,
PDF_4up ]
+ solutions [ PS,
PDF,
PDF_4up ]Reading
- Chapter 8 in the course book
- Chapter 11 in 3rd edition of the course book
Lecture 9 - Design methods for real-time systems
(cont'd)
Tue study week 4, 10.00 - 11.45 in HA3
In this lecture, Dr. Daniel Karlsson from Volvo Technology Corp. in Göteborg, will give a presentation of the
TIMMO design methodology for embedded real-time systems.
Slides
[ PDF_4up ]
(NOTE: There are gaps in the page numbering. However, no slides are
missing)
Lecture 10 - Design methods for real-time systems
(cont'd)
Thu study week 4, 15.15 - 17.00 in HA3
In this lecture, Prof. Jörgen Hansson from Chalmers will give a presentation
of software architectures, with an application to real-time systems design.
Slides
[ PDF
]