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

  Mon study week 1, 13.15 - 15.00 in Gamma

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

Lecture 2 - Real-time systems: programming paradigms

  Tue study week 1, 10.15 - 12.00 in Gamma

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

Lecture 3 - The TinyTimber kernel

  Wed study week 1, 10.15 - 12.00 in Gamma

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

Lecture 4 - Concurrent programming: problems and solutions

  Mon study week 2, 13.15 - 15.00 in Gamma

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

Lecture 5 - Concurrent programming: problems and solutions (cont'd)

  Tue study week 2, 10.15 - 12.00 in Gamma

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

Lecture 6 - Concurrent programming: guaranteeing timeliness

  Tue study week 3, 10.15 - 12.00 in Gamma 

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

Lecture 7 - Task model; Worst-case execution time

  Tue study week 4, 10.15 - 12.00 in Gamma

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

Lecture 8 - Real-time network communication

  Mon study week 5, 13.15 - 15.00 in Gamma

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

Lecture 9 - Scheduling: general concepts and performance aspects

  Tue study week 5, 10.15 - 12.00 in Gamma

In this lecture, we introduce some basic terminology relating to scheduling, optimality, feasibility test and computational complexity.

Slides

PDF, PDF_4up, PDF_3up ]

Reading

Lecture 10 - Scheduling: cyclic executives

  Fri study week 5, 10.15 - 12.00 in Gamma

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

Lecture 11 - Scheduling: static and dynamic priorities, processor utilization analysis

  Thu study week 6a, 10.15 - 12.00 in Delta

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

Lecture 12 - Scheduling: response time analysis

  Mon study week 6b, 13.15 - 15.00 in Gamma

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

Lecture 13 - Scheduling: processor demand analysis

  Tue study week 6b, 10.15 - 12.00 in Gamma

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

Lecture 14 - Scheduling: multiprocessor systems

  Tue study week 7, 10.15 - 12.00 in Gamma

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

Lecture 15 - Summary and reading hints

  Mon study week 8, 13.15 - 15.00 in Gamma

In this lecture, we summarize the contents of the course and give preparation hints for the written exam.

Slides

PDF, PDF_4up, PDF_3up ]