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
EDA222 - Real time systems
 
Owner: TKDAT
5,0 Credits (ECTS 7,5)
Grading: TH - Five, Four, Three, Not passed
Level: B
Department: 37 - COMPUTER SCIENCE AND ENGINEERING


Teaching language: Swedish

Course module   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 No Sp
0106 Examination 3,0 c Grading: TH   3,0 c   20 Dec 2006 pm V,  12 Apr 2007 am V,  30 Aug 2007 pm V
0206 Laboratory 2,0 c Grading: UG   2,0 c    

In programs

TELTA ELECTRICAL ENGINEERING, Year 4 (elective)
TITEA SOFTWARE ENGINEERING, Year 3 (elective)
TITEA SOFTWARE ENGINEERING, Year 4 (elective)
TKDAT COMPUTER SCIENCE AND ENGINEERING, Year 3 (elective)
TDATA COMPUTER SCIENCE AND ENGINEERING, Year 3 (elective)
TDATA COMPUTER SCIENCE AND ENGINEERING - Interactive simulations and games, Year 4 (elective)
TDATA COMPUTER SCIENCE AND ENGINEERING - Embedded computer systems engineering, Year 4 (elective)

Examiner:

Bitr professor  Jan Jonsson


Replaces

EDA221   Real time systems


Eligibility:

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.

Aim

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. This course is intended to give basic knowledge about methods for the design and analysis of real-time systems.

Goal

After the course the students shall be able to:

  • Construct concurrently executing software for real-time applications that interface to input/output units such as sensors and actuators.
  • Describe the principles and mechanisms used for designing real-time kernels and run-time systems.
  • Describe the mechanisms used for time-critical scheduling of tasks.
  • Apply the basic analysis methods used for verifying the temporal correctness of a set of executing tasks.

Content

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.

Organisation

The course is organized as a series of lectures and a set of exercise sessions 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 is a compulsory laboratory exercise in which the students should implement the software for a realistic real-time application. Apart from the programming of cooperating concurrent processes, the exercise also encompasses advanced resource management and low-level programming of input and output devices.

Literature

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

Compendium of exercises.

Examination

Written exam.


Page manager Published: Mon 28 Nov 2016.