Hide menu

TSEA81 - Computer Engineering and Real-Time Systems

TSEA81 - Computer Engineering and Real-time Systems

Course Schedule

The course consists of lectures, assigments, labs, and a written exam. The scheduling of the course hours are found in TimeEdit.

There are lecture notes, which contain summarized descriptions of the course topics, and which also provide support for the assignments and the labs. The lecture notes are described in Section Lectures.

There are 6 labs. These are performed during scheduled 2-hour sessions. The purpose of the sessions is to have scheduled occasions for feedback and approval of labs. Lab 5 - Performance analysis, may also require a short written report for its approval.

Note that the actual work required to complete the labs covers more hours than what are scheduled as sessions.

Please see Section Assignments for additional information regarding the labs.

Further information regarding the course is found on the course site.


A list of the lectures, with title, contents, week number, and chapter references to the book Realtidsprogrammering, is shown in Table 1. The Lectures page contains links to the individual Lecture notes.

Nr, Title Contents Ch
1 - Introduction Introduction to the course, Introduction to real-time systems, Interrupts, processor registers, stacks, Real-time systems and concurrency, Foreground/Background scheduling, Real-time operating systems (RTOS), Assignment 1 - Introduction, Shared Resources 2, 3
2 - Shared resources Shared resources, Critical Regions, Mutual Exclusion, Semaphores, Peterson's Algorithm, Hardware support for Mutual Exclusion, More about RTOS, RTOS for different processor architectures 4.1, 5.1
3 - Task synchronization Asymmetric synchronization, Time synchronization, Assignment 2 - Alarm Clock, Asymmetric synchronization and interrupt handlers, Symmetric synchronization, Producers and Consumers, Buffers, Protecting a buffer, Conditional critical regions, Condition variables 5.2, 4.2, 6
4 - Monitors, Message passing Condition variables, Data abstraction, Monitors, Assignment 3 - Lift with Monitors, Communication using messages, Message passing, Mailboxes 6, 7, 8
5 - Real-time kernel Assignment 4 - Lift with Message Passing, Tasks, Data structures for tasks, Task creation, Task start 8, 10, 15
6 - Real-time operating system Task switch, Clock interrupts, Semaphores, Condition variables, Message passing, Assignment 5 - Modification of a Real-time Kernel 10, 15
7 - Scheduling Real-time requirements, Time-driven scheduling, Priority based scheduling, Preemption, Priority Inversion, Periodic tasks, Scheduling algorithms 9
8 - Realtime tasks in Linux + exam info Real-time Linux, Programming with pthreads, -

Table 1. The lectures in the course with chapter references to the book Realtidsprogrammering.


A list of the assignments, with title, contents, and deadlines for completion, is shown in Table 2. The Assignments page contains links to the individual Assignments.

Nr, Title Contents
1 - Introduction, Shared Resources Compilation, execution, and modification of C programs which use Simple_OS, Shared resources, Mutual exclusion
2 - Alarm Clock Mutual exclusion, Asymmetric synchronization, User interface communication
3 - Lift with Monitors Semaphores, Condition variables, Monitors, Introduction to Message passing, Graphical user interface
4 - Lift with Message Passing Message passing
5 - Performance Analyze and improve performance of assignments 3 and 4
6 - Realtime Linux Task cooperation

Table 2. The assignments in the course.

Page responsible: Kent Palmkvist
Last updated: 2022-11-07