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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 ]