Faculty of Engineering and Natural Sciences · Computer Engineering · Undergraduate
Course Objective
This course introduces students to the fundamental problems, concepts, and approaches in the design and analysis of real-time systems. Realtime applications typically involve safety or mission critical systems where timing guarantees must be maintained. Real-time task design, dependability, communication, power and energy awareness, scheduling, and real-time control are some of the topics that will be covered. The course also presents a comprehensive description and assessment of the programming languages and operating system standards used in this domain. Particular emphasis is placed on language primitives and their role in the production of reliable, safe and dependable software.
Course Content
Programming languages intended for real time systems, Real time operating system (RTOS), scheduling, resource handling, Design and analysis of real time system software, Modelling and verification of real time systems, Reliability and fault tolerance, Interrupts, Fault recovery, Distributed real time systems, Real time communication, Real time systems for multiprocessor systems.
Course Learning Outcomes
- Enumerate the need and the challenges in the design of hard and soft real time systems.
- Recognize the characteristics of a real-time system.
- Compare different scheduling algorithms and the schedulability criteria.
- Determine schedulability of a set of periodic tasks given a scheduling algorithm.
- Integrate resource access mechanisms with the scheduling techniques and develop integrated schedulibility criteria.
Core Area Distribution
Teaching Methods
Assessment & Evaluation
ECTS / Workload
| Activity | Quantity | Duration (h) | Total Workload |
|---|---|---|---|
| Course Duration (Including Exam Week) | 14 | 3 | 42 |
| Out of Class Study Period | 0 | 0 | 0 |
| Midterm | 1 | 3 | 3 |
| Quiz | 4 | 1 | 4 |
| Assignment | 4 | 3 | 12 |
| Practice | 1 | 10 | 10 |
| Final | 1 | 3 | 3 |
Course Schedule
| Week | Subject | Preparation |
|---|---|---|
| 1 | Introduction to real-time systems. | Introduction to real-time systems. |
| 2 | Reliability and fault tolerance. | Reliability and fault tolerance. |
| 3 | Exceptions and exception handling. | Exceptions and exception handling. |
| 4 | Concurrent programming. | Concurrent programming. |
| 5 | Shared variable-based synchronization and communication. | Shared variable-based synchronization and communication. |
| 6 | Message-based synchronization and communication. | Message-based synchronization and communication. |
| 7 | Atomic actions, concurrent tasks and reliability. | Atomic actions, concurrent tasks and reliability. |
| 8 | Resource control. | Resource control. |
| 9 | Real-time facilities. | Real-time facilities. |
| 10 | Programming real-time abstractions. | Programming real-time abstractions. |
| 11 | Scheduling real-time systems. | Scheduling real-time systems. |
| 12 | Programming schedulable systems. | Programming schedulable systems. |
| 13 | Tolerating timing faults. | Tolerating timing faults. |
| 14 | Low-level programming. | Low-level programming. |
| 15 | Selected topics. | Selected topics. |
| 16 | Selected topics. | Selected topics. |


