Lectures
The lecture notes (in the form of PowerPoint "handouts") and
additional reading material will be available on the course home page at
least 48 hours before the lecture in question.
Lecture 1 - Real-time systems: characteristics and design methods
Tue study week 1, 13.15 - 15.00 in HC3
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
[
PDF,
PDF_4up,
PDF_3up
]Reading
- John Stankovic, Misconceptions About Real-Time Computing - A
Serious Problem for Next-Generation Systems
[PDF]
- Krithi Ramamritham, Where do Time Constraints Come From and
Where do They Go?
[PDF]
Lecture 2 - Real-time systems: programming paradigms
Thu study week 1, 13.15 - 15.00 in HC3
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
[
PDF,
PDF_4up,
PDF_3up ]Reading
- Excerpt from A. Burns and A. Wellings, Real-Time Systems and
Programming Languages
[PDF]
Lecture 3 - The TinyTimber kernel
Thu study week 1, 15.15 - 17.00 in HC3
In this lecture, we give an overview of the philosophy behind the
TinyTimber kernel, and also give a short history of how the kernel
developed from its big brother, the Timber language.
Slides
[
PDF,
PDF_4up,
PDF_3up ]
Reading
- The Timber Language - An Overview
[PDF]
- Johan Nordlander, Programming with the TinyTimber kernel
[PDF]
Lecture 4 - Concurrent programming: problems and solutions
Tue study week 2,
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.
Slides
[
PDF,
PDF_4up,
PDF_3up ]
Reading
- Excerpt from A. Burns and A. Wellings, Real-Time Systems and
Programming Languages
[PDF]
Lecture 5 - Concurrent programming: problems and solutions (cont'd)
Thu study week 2, 13.15 - 15.00 in HC3
In this lecture, we
first demonstrate why mutual exclusion matters using an
example involving a circular buffer. We then describe how mutual exclusion is
achieved with support from the processor hardware. Finally, we highlight the need for call-back
functionality in real-time programming, and give examples in the context of
TinyTimber.
Slides
[ PDF,
PDF_4up,
PDF_3up ]Reading
- Johan Nordlander, Programming with the TinyTimber kernel
[PDF]
Lecture 6 - Concurrent programming: guaranteeing timeliness
Tue study week 3, 13.15 - 15.00 in HC3
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
[ PDF,
PDF_4up,
PDF_3up
]Reading
- Excerpt from A. Burns and A. Wellings, Real-Time Systems and
Programming Languages
[PDF]
- Johan Nordlander, Programming with the TinyTimber kernel
[PDF]
Lecture 7 - Task model; Worst-case execution time
Fri study week 3, 13.15 - 15.00 in HC3
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
[ PDF,
PDF_4up,
PDF_3up
]Reading
- Section 2 in Ken Tindell, Real Time Systems and Fixed Priority
Scheduling [PDF]
Lecture 8 - Real-time network communication
Fri study week 4, 13.15 - 15.00 in HC3
In this lecture, we give an introduction to network communication mechanisms
that are used in the design of real-time systems. In particular, we take a
closer look at the CAN protocol.
Slides
[
PDF,
PDF_4up,
PDF_3up ]Reading
- Section 1 and 2 in R. Davis et al., Controller Area Network (CAN)
Schedulability Analysis: Refuted, Revisited and Revised [PDF]
Lecture 9 - Scheduling: general concepts and
performance aspects
Tue study week 5, 13.15 - 15.00
in HC3
In this lecture, we introduce some basic terminology relating to scheduling,
optimality, feasibility test and computational complexity.
Slides
[ PDF,
PDF_4up,
PDF_3up ]Reading
- Section 1.3 in Ken Tindell, Real Time Systems and Fixed
Priority Scheduling [PDF]
Lecture 10 - Scheduling: cyclic executives
Fri study week 5, 13.15 - 15.00 in HC3
In this lecture, we describe the run-time mechanisms and properties of cyclic executives using precalculated time tables.
Slides
[ PDF,
PDF_4up,
PDF_3up ]Reading
- Section 3.3 in Ken Tindell, Real Time Systems and Fixed
Priority Scheduling [PDF]
Lecture 11 - Scheduling: static and dynamic priorities,
processor utilization analysis
Tue study week 6, 13.15 - 15.00 in HC3
In this lecture, we describe the run-time mechanisms and properties of
pseudo-parallel execution using
static/dynamic task priorities. In that context, we introduce the rate-monotonic
(RM) and earliest-deadline-first (EDF) scheduling policies. In addition, we
describe how to check schedulability of a set of RM/EDF-scheduled tasks using
processor utilization analysis.
Slides
[ PDF,
PDF_4up,
PDF_3up ]Reading
- Section 11.3, 11.4 and 11.11.1 in A. Burns and A. Wellings, Real-Time Systems and
Programming Languages
[PDF]
- Section 3.2 and 4.2 in Ken Tindell, Real Time Systems and Fixed
Priority Scheduling [PDF]
Lecture 12 - Scheduling: response time analysis
Thu study week 6, 13.15 - 15.00 in HC3
In this lecture, we relax some assumptions of the RM policy and introduce the
more general deadline-monotonic (DM) scheduling policy. In addition, we describe how to check schedulability of a set of
DM-scheduled tasks using
response-time analysis.
Slides
[ PDF,
PDF_4up,
PDF_3up ]Reading
- Section 11.5 and 11.7 - 11.9 in A. Burns and A. Wellings, Real-Time Systems and
Programming Languages
[PDF]
- Section 4.3 - 4.7 in Ken Tindell, Real Time Systems and Fixed
Priority Scheduling [PDF]
- Section 3 in R. Davis et al., Controller Area Network (CAN)
Schedulability Analysis: Refuted, Revisited and Revised [PDF]
Lecture 13 - Scheduling: processor demand analysis
Fri study week 6, 13.15 - 15.00 in HC3
In this lecture, we relax some assumptions of the EDF policy and describe how check schedulability of a set of
EDF-scheduled tasks using
processor-demand analysis.
Slides
[ PDF,
PDF_4up,
PDF_3up
]Reading
- Section 11.11.2 - 11.11.4 in A. Burns and A. Wellings, Real-Time Systems and
Programming Languages
[PDF]
Lecture 14 - Scheduling: multiprocessor systems
Thu study week 7, 13.15 - 15.00 in HC3
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
[
PDF,
PDF_4up,
PDF_3up ]Reading
- B. Andersson, S. Baruah and J. Jonsson, Static-Priority
Scheduling on Multiprocessors [PDF]
Lecture 15 - Summary and reading hints
Tue study week 8, 13.15 - 15.00 in HC3
In this lecture, we summarize the contents of the course and give preparation
hints for the written exam.
Slides
[ ]