This course presents an overview of time as it relates engineering complex software systems including embedded systems. In this course, basic concepts, terminology, and issues of embedded/real-time systems are examined.
The course aims to ensure that students not only acquire the knowledge and technique required for embedded/real-time system development, but also gain skills to formally model/verify simple real-time systems.
By the end of the course students should be able to:
(1) define what it means to be a real-time system,
(2) design and develop simple embedded/real-time programs on RTOS,
(3) discuss timing, scheduling and related properties, and
(4) formally model and verify simple real-time systems.
Embedded Systems, Real-Time Systems, Real-Time Operating Systems, RTOS, Scheduling, Schedulability Analysis, Verification, Model-Checking, Timed Automata
✔ Specialist skills | Intercultural skills | Communication skills | Critical thinking skills | Practical and/or problem-solving skills |
Classroom learning and programming exercises
Course schedule | Required learning | |
---|---|---|
Class 1 | Course Introduction and Overview, Overview of Real-Time Systems | Understand some important characteristics and definitions of real-time systems |
Class 2 | RTOS (1): Overview, Roles of RTOS Kernels, Real-Time Tasks | Understand the roles of RTOS kernels and real-time tasks |
Class 3 | RTOS (2): Synchronization Mechanisms in RTOS | Understand the concepts and algorithms of synchronization in RTOS |
Class 4 | RTOS (3): Priorities and Scheduling | Understand the concepts of priorities and scheduling algorithms of real-time tasks |
Class 5 | RTOS Programming (1): Overview, RTOS Programming in C/C++ | Understand how to construct real-time programs in C/C++ for an RTOS |
Class 6 | RTOS Programming (2): Abstractions Mechanisms for Real-Time Processing | Understand the usages of abstraction mechanisms in an RTOS |
Class 7 | Analysis of Real-Time Systems (1): Schedulability Analysis | Understand the concepts of schedulability and methods of schedulability analysis |
Class 8 | Analysis of Real-Time Systems (2): Static Scheduling | Understand static scheduling algorithms for real-time tasks |
Class 9 | Analysis of Real-Time Systems (3): Dynamic Scheduling | Understand dynamic scheduling algorithms for real-time tasks |
Class 10 | Modeling Real-Time Systems (1): Overview | Understand modeling methods for real-time systems |
Class 11 | Modeling Real-Time Systems (2): Timed-Automata | Understand the concepts and definitions of Timed Automata |
Class 12 | Verifying Real-Time Systems (1): Model-Checking Timed-Automata | Understand methods and algorithms for model-checking timed-automata |
Class 13 | Verifying Real-Time Systems (2): Verification using UPPAAL | Understand formal verification methods using UPAAL model checker |
Class 14 | Advanced Topics (1): Formal Specification of an RTOS Kernel | Understand practical specification methods applicable to some parts of an RTOS |
Class 15 | Advanced Topics (2): Formal Verification of an RTOS Kernel | Understand practical verification methods applicable to some parts of an RTOS |
None required (course materials will be provided via course website)
H. Kopetz, Real-Time Systems: Design Principles for Distributed Embedded Applications (2nd Ed.), Springer, 2011.
E.-R. Olderog and H. Dierks, Real-Time Systems: Formal Specification and Automatic Verification, Cambridge U. Press, 2008.
Assignment: 50%
Programming Project: 50%
Students must have successfully completed the related courses or have equivalent knowledge.
Students are desired to have familiarity with basic Unix terminal commands.