Search programme

​Use the search function to search amongst programmes at Chalmers. The study programme and the study programme syllabus relating to your studies are generally from the academic year you began your studies.

Syllabus for

Academic year
EDA300 - Real-time systems
Owner: TAUTA
4,0 Credits (ECTS 6)
Grading: TH - Five, Four, Three, Not passed
Level: A

Teaching language: Swedish

Course module   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 No Sp
0196 Examination 3,0 c Grading: TH   3,0 c   15 Dec 2005 am V,  20 Apr 2006 am V,  31 Aug 2006 pm V
0296 Laboratory 1,0 c Grading: UG   1,0 c    

In programs



Bitr professor  Jan Jonsson


For single subject courses within Chalmers programmes the same eligibility requirements apply, as to the programme(s) that the course is part of.

Course specific prerequisites

Basic knowledge in programming and computer organisation


To give knowledge about metods for design and analysis of real-time systems. A real-time system is a computer system in which the
correctness of the system depends on the time when results are generated. Real-time systems interact with a more or less time-critical environment. Examples
of real-time systems are control systems for cars, aircraft and space vehicles, manufacturing system, financial transaction systems, computer games and multimedia applications.


Specifically, the course shall give knowledge about:

- program design of real-time applications using concurrent programming;
- design principles for real-time kernels;
- handling of input och output units such as sensors and actuators;
- scheduling of parallel processes and response time analysis.

Laboratory assignments give practical experience in programming of real-time systems.


In the design of real-time systems it is practical to implement the application software as multiple concurrently executing processes, there each process is responsible for a given task in the system. The concept of multiple processes provides for an intuitive way of decomposing a complex system into smaller parts that are simple to comprehend and implement.

This course uses Ada as the main programming language because of its powerful support for programming of concurrent processes. In particular, the course demonstrates how language constructs such as rendezvous and protected objects are used for implementing communication/synchronization between processes, resource management and mutual exclusion. Since other programming languages uses monitors or semaphores to implement these functions, the course also contains a presentation of such techniques. In addition, the course demonstrates how to use low-level programming in Ada to handle interrupt-driven communication with input and output devices. To demonstrate the general principles in real-time programming, the course also gives examples of how these techniques are implemented in other programming languages, such as C and Java.

In order to execute a program containing multiple concurrent processes there is a real-time kernel (run-time system) that distributes the available capacity of the microprocessor among the processes. The course shows how a simple real-time kernel is organized.

The real-time kernel determines the order of execution for the processes by means of a scheduling algorithm. To that end, the course presents techniques based on cyclic time-table based scheduling as well as scheduling techniques using static or dynamic process priorities. In addition, protocols for the management of shared hardware and software resources are presented.

In real-time systems with strict timing constraints it is necessary to make a pre-run-time analysis of the system schedulability. The course presents three different analysis methods for systems that schedule processes using static or dynamic priorities: utilization-based analys, response-time analysis, and processor-demand analysis. In conjunction with this, the course also gives an account on how to derive the maximum resource requirement (worst-case execution time) of a process.


The course is organized as a series of lectures consisting of 28 lecture hours in total. In addition, there are 14 hours of exercise where the programming techniques and theories presented at the lectures are put into practice. The course material is examined by means of a final written exam. In addition, there are two compulsory laboratory exercises in which the students should implement real-time systems of cooperating concurrent processes using the Ada programming language. In the second laboratory exercise the students should implement a realistic real-time application that, apart from concurrent processes, also requires advanced resource management and low-level programming of input and output devices.


Burns and Wellings: Real-Time Systems and Programming Languages, Third Edition, Addison-Wesley 2001, ISBN 0-201-72988-1.

Compendium of exercises.


Written exam.

Page manager Published: Mon 28 Nov 2016.