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 - Real-time systems: characteristics and design
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 discuss 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).
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 - Real-time systems: programming paradigms
Wed study week 1, 10.00 - 11.45 in HC1
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.
Slides
[
PS,
PDF,
PDF_4up ]Reading
- Chapters 4 (except 4.7) in the course book
- Chapters 7 (except 7.3.5) in 3rd edition of the course book
Lecture 3 - Concurrent programming: problems and solutions
Thu study week 1, 13.15 - 15.00 in HC3
In this lecture, we introduce the general resource management problem, and
highlight the deadlock, starvation and mutual exclusion issues. We then take
a closer look at the mutual exclusion property and show how different
imperative languages and run-time systems offer support for mutual
exclusion. Techniques that will be described are protected objects,
monitors, semaphores and mutex methods. We also describe how mutual
exclusion is provided for at the lowest (machine) level.
Slides
[
PS,
PDF,
PDF_4up ]
Reading
- Chapter 5 (except 5.3, 5.5, 5.10) and 8 (except 8.4, 8.5) in the course book
- Chapter 8 (except 8.3, 8.5) and 11 (except 11.4, 11.5) in 3rd edition of the course book
Lecture 4 - Concurrent programming: problems and solutions (cont'd)
Thu study week 1, 15.15 - 17.00 in HC3
In this lecture, we demonstrate how to add the call-back functionality to the
mutex methods provided by the TinyTimber kernel. We then show how implement
semaphores in C using the TinyTimber kernel and the call-back functionality
add-on.
Slides
[ PS,
PDF,
PDF_4up
] + solutions [ PS,
PDF,
PDF_4up ] Reading
- Johan Nordlander, Programming with the TinyTimber kernel
[PDF]
Lecture 5 - Concurrent programming: guaranteeing timeliness
Tue study week 2, 10.00 - 11.45 in HA3
In this lecture, we show the mechanisms that are used in Ada95 and TinyTimber
to provide clocks, time, delays and task priorities. We also discuss the
priority/deadline inversion problem and discuss different methods for
avoiding/reducing the problem.
Slides
[ PS,
PDF,
PDF_4up ]
+ solutions [ PS,
PDF,
PDF_4up ] Reading
- Chapter 9. 10.2, 10.4, and 12 (except 12.4) in the
course book
- Chapter 12 (except 12.2.1, 12.7.2, 12.7.4-12.7.5, 12.8) and
13.14 in 3rd edition of the course book
Lecture 6 - The TinyTimber kernel
Wed study week 2, 10.00 - 11.45 in HC1
In this lecture, Dr. Johan Nordlander, from Luleå University of Technology,
will give an overview of the philosophy behind TinyTimber kernel, and also give
a short history of
how the kernel developed from its big brother, the Timber language, and its
predecessor O'Haskell.
Slides
[ PDF ]
Reading
- Johan Nordlander, Programming with the TinyTimber kernel
[PDF]
Lecture 7 - Design methods for real-time systems (guest lecture)
Tue study week 3, 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 ]
Reading
- TIMMO-2-USE: Methodology description
[PDF]
Lecture 8 - Design methods for real-time systems
(guest lecture)
Wed study week 3, 10.00 - 11.45 in HC1
In this lecture, Professor Jörgen Hansson from the Software Engineering
division at Chalmers will give a presentation
of software architectures, with an application to real-time systems design.
Slides
[ PDF ]
Lecture 9 - Design methods for real-time systems
Thu study week 3, 13.15 - 15.00 in HC3
In this lecture, we give an introduction to fault-tolerance and network
communication mechanisms that are used in the design of real-time systems.
Slides
[ PS,
PDF,
PDF_4up ] Reading
- Chapter 2.1 and 11.14.2 in the course book
- Chapter 5.1 and 14.7.2 in 3rd edition of the course book
Lecture 10 - Task model; Worst-case execution times
Tue study week 4, 10.00 - 11.45 in HA3
In this lecture, we introduce abstract models for the run-time system and the
tasks as a means for the formal verification of the timing correctness of
the system. We also give an overview of the problem of deriving worst-case
execution times for the code executed by a task.
Slides
[ PS,
PDF,
PDF_4up ]Reading
- Chapter 11.2.4 and 11.13 in the course book
- Chapter 13.1 and 13.7 in 3rd edition of the course book
- Section 2 in Ken Tindell, Real Time Systems and Fixed Priority Scheduling
[PDF]
Lecture 11 - Scheduling: terminology, cyclic executives
Thu study week 4, 13.15 - 15.00 in HC3
In this lecture, we introduce some basic terminology relating to scheduling
and schedulability analysis. We also describe the mechanisms used in static
scheduling (cyclic executives).
Slides
[ PS,
PDF,
PDF_4up ]
+ solutions [
PS,
PDF,
PDF_4up ]Reading
- Chapter 11.1 and 11.2.1-11.2.3 in the course book
- Chapter 13.2 in 3rd edition of the course book
- Section 1.3 and 3.3 in Ken Tindell, Real Time Systems and Fixed Priority Scheduling
[PDF]
Lecture 12 - Scheduling: static and dynamic priorities,
utilization-based analysis
Tue study week 5, 10.00 - 11.45 in HA3
In this lecture, we introduce dynamic scheduling using priorities according to
the rate-monotonic and earliest-deadline-first policies. In addition, we
describe how to check schedulability of a set of tasks using
processor-utilization analysis.
Slides
[ PS,
PDF,
PDF_4up ] + solutions [
PS,
PDF,
PDF_4up ]Reading
- Chapter 11.3, 11.4 (except 11.4.1) and 11.11.1 in the course book
- Chapter 13.3.3 and 13.4 in 3rd edition of the course book
- Section 3.2 and 4.2 in Ken Tindell, Real Time Systems and Fixed
Priority Scheduling
[PDF]
Lecture 13 - Scheduling: response-time analysis
Tue study week 6, 10.00 - 11.45 in HA3
In this lecture, we introduce the deadline-monotonic scheduling policy. In
addition, we describe how to check schedulability of a set of tasks using
response-time analysis.
Slides
[ PS,
PDF,
PDF_4up ]
+ solutions [
PS,
PDF,
PDF_4up ]Reading
- Chapter 11.5, 11.7-11.9 in the course book
- Chapter 13.5, 13.9-13.11 in 3rd edition of the course book
- Section 4.3-4.7 in Ken Tindell, Real Time Systems and Fixed Priority Scheduling
[PDF]
Lecture 14 - Scheduling: processor-demand analysis
Thu study week 6, 13.15 - 15.00 in HC3
In this lecture, we describe how to check schedulability of a set of tasks using
processor-demand analysis.
Slides
[ PS,
PDF,
PDF_4up ] + solutions [
PS,
PDF,
PDF_4up ]Reading
- Chapter 11.11.2 and 11.11.4 in the course book
- Chapter 13.11.3 in 3rd edition of the course book
Lecture 15 - Scheduling: multiprocessor systems
Tue study week 7, 10.00 - 11.45 in HA3
In this lecture, we introduce the two main approaches to multiprocessor
scheduling: partitioned scheduling and global scheduing. We also describe
the fundamental problems in finding good priority assignment policies and
schedulability tests for multiprocessor real-time systems. Finally, we
present the RM-US scheduling policy, which represents a state-of-the-art
technique for global real-time multiprocessor scheduling.
Slides
[ PS,
PDF,
PDF_4up ] + solutions [
PS,
PDF,
PDF_4up ]Reading
- Chapter 11.14 in the course book
- N.A. in 3rd edition of the course book
Lecture 16 - Summary and reading hints
Thu study week 7, 13.15 - 13.30 in HC3
In this lecture, we summarize the contents of the course and give preparation
hints for the written exam.
Slides
[ PS,
PDF,
PDF_4up ]