Search course

Use the search function to find more information about the study programmes and courses available at Chalmers. When there is a course homepage, a house symbol is shown that leads to this page.

Graduate courses

Departments' graduate courses for PhD-students.

​​​​
​​

Syllabus for

Academic year
EDA222 - Real time systems
 
Syllabus adopted 2015-02-11 by Head of Programme (or corresponding)
Owner: MPCSN
7,5 Credits
Grading: TH - Five, Four, Three, Not passed
Education cycle: Second-cycle
Major subject: Computer Science and Engineering, Electrical Engineering, Information Technology
Department: 37 - COMPUTER SCIENCE AND ENGINEERING


Teaching language: English
Open for exchange students
Block schedule: B
Maximum participants: 90

Course module   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 Summer course No Sp
0106 Examination 4,5c Grading: TH   4,5c   14 Mar 2016 am M,  08 Apr 2016 pm M,  22 Aug 2016 pm M
0206 Laboratory 3,0c Grading: UG   3,0c    

In programs

TKDAT COMPUTER SCIENCE AND ENGINEERING, Year 3 (elective)
TKITE SOFTWARE ENGINEERING, Year 3 (elective)
MPALG COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Year 1 (elective)
MPALG COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Year 2 (elective)
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 1 (compulsory elective)
MPEES EMBEDDED ELECTRONIC SYSTEM DESIGN, MSC PROGR, Year 1 (compulsory elective)
MPSOF SOFTWARE ENGINEERING, MSC PROGR, Year 2 (elective)

Examiner:

Bitr professor  Jan Jonsson


Replaces

EDA221   Real time systems


  Go to Course Homepage

Eligibility:


In order to be eligible for a second cycle course the applicant needs to fulfil the general and specific entry requirements of the programme that owns the course. (If the second cycle course is owned by a first cycle programme, second cycle entry requirements apply.)
Exemption from the eligibility requirement: Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling these requirements.

Course specific prerequisites

Preparatory courses in concurrent programming and operating systems.

Aim

An embedded system is a computer system designed to perform one or a few dedicated functions. It is embedded in the sense that it is part of a complete device, often including electrical hardware and mechanical parts. For reasons of safety and usability, some embedded systems have strict constraints on non-functional behavior such as computational delay and periodicity. Such systems are referred to as real-time systems. Examples of real-time systems are control systems for cars, aircraft and space vehicles as well as computer games and multimedia applications. This course is intended to give basic knowledge about methods for the design and analysis of real-time systems.

Learning outcomes (after completion of the course the student should be able to)

After the course the students shall be able to:
  • Formulate requirements for embedded systems with strict constraints on computational delay and periodicity.
  • Reflect and argue in writing on the choice of system implementation vis-á-vis ethical aspects of data integrity 
  • Categorize and describe the different layers in a system architecture for embedded real-time systems.
  • Construct concurrently-executing tasks (software units) for real-time applications that interface to hardware devices (sensors/actuators).
  • Describe the principles and mechanisms used for designing run-time systems and communication networks for real-time applications.
  • Apply the basic analysis methods used for verifying the temporal correctness of a set of executing tasks.

Content

Due to the extremely high costs associated with late discovery of problems in embedded systems, it is important to follow a good design methodology during the development of the software and hardware. One means for that is to use a system architecture that offers good component abstractions and facilitates simple interfacing of components. The course gives an overview of some state-of-the-art system architectures being used in the design of embedded systems, for example, EAST-ADL, AUTOSAR and AADL.

The system architecture philosophy dictates that the software of an embedded system is organized into multiple concurrently-executing tasks, where each task (or group of tasks) implements a specific functionality in the system. This approach allows for an intuitive way of decomposing a complex system into smaller software units that are simple to comprehend, implement and maintain. The software environment used in the course is based on the C programming language, enhanced with a software library that provides support for programming of concurrent tasks with timing (delay and periodicity) constraints. To that end, a main objective of the course is to demonstrate how the enhanced C programming language is used for implementing communication/synchronization between tasks, 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 C to implement interrupt-driven interaction with hardware 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 Ada and Java.

In order to execute a program containing concurrent tasks there is a run-time system (real-time kernel) that distributes the available capacity of the microprocessor(s) among the tasks. The course shows how a simple run-time system is organized. The run-time system determines the order of execution for the tasks 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 task priorities. In addition, protocols for the management of shared hardware and software resources are presented. Since many contemporary real-time applications are distributed over multiple computer nodes, the course also presents topologies and medium access mechanisms for some commonly-used communication networks.

In real-time systems, where tasks have 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 tasks using static or dynamic priorities: utilization-based analysis, 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 task.

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 assignment in which the students should implement the software for an embedded real-time application running on a hardware system consisting of multiple computer nodes interconnected by a bus network. Apart from the programming of cooperating concurrent tasks with strict timing constraints, the laboratory assignment also encompasses low-level programming of hardware devices such as timers and network controllers.

Literature

Lecture notes. Selected research publications from journals and conference proceedings. Compendium of exercises.

Examination

Written exam and approved laboratory assignment.


Page manager Published: Thu 04 Feb 2021.