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

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

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

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

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

Resources

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

Lecture 7 - Monitors and semaphores; Mutual exclusion (cont'd)

  Tue study week 3, 10.00 - 11.45 in HA3

In this lecture, ...

Slides

PS, PDF, PDF_4up ]  + solutions [ PS, PDF, PDF_4up ]

Reading

Lecture 8 - Design methods for real-time systems

  Thu study week 3, 13.15 - 15.00 in HA3

In this lecture, ...

Slides

PS, PDF, PDF_4up ]

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 ]

Lecture 11 - Task model; Worst-case execution times

  Tue study week 5, 10.00 - 11.45 in HA3

In this lecture, ...

Slides

PS, PDF, PDF_4up ]

Reading

Lecture 12 - Scheduling: terminology, cyclic executives

  Thu study week 5, 13.15 - 15.00 in HA3

In this lecture, ...

Slides

PS, PDF, PDF_4up ] + solutions [ PS, PDF, PDF_4up ]

Reading

Lecture 13 - Scheduling: static and dynamic priorities, utilization-based analysis

  Tue study week 6, 10.00 - 11.45 in HA3

In this lecture, ...

Slides

PS, PDF, PDF_4up ] + solutions [ PS, PDF, PDF_4up ]

Reading

Lecture 14 - Scheduling: response-time analysis

  Tue study week 7, 10.00 - 11.45 in HA3

In this lecture, ...

Slides

PS, PDF, PDF_4up ]  + solutions [ PS, PDF, PDF_4up ]

Reading

Lecture 15 - Scheduling: processor-demand analysis

  Thu study week 7, 13.15 - 15.00 in HA3

In this lecture, ...

Slides

PS, PDF, PDF_4up ]   + solutions [ PS, PDF, PDF_4up ]

Reading

Lecture 16 - Fault-tolerance and network communication; Summary and reading hints

  Tue study week 8, 10.00 - 11.45 in HA3

In this lecture, ...

Slides

PS, PDF, PDF_4up ]

Reading