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/cyber-physical 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 cyber-physical 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) formally model and verify cyber-physical systems, and
(4) discuss timing, scheduling and related properties.
Embedded Systems, Real-Time Systems, Cyber-Physical Systems, IoT, Real-Time Operating Systems, RTOS, Scheduling, Schedulability Analysis, Verification, Model-Checking, Timed Automata, Functional Reactive Programming
|Intercultural skills||Communication skills||Specialist 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||Modeling Cyber-Physical Systems (1): Synchronous Model||Understand modeling methods for cyber-physical systems and the concepts of the synchronous model of CPS|
|Class 8||Modeling Cyber-Physical Systems (2): Asynchronous Model||Understand the concepts of the asynchronous model of CPS|
|Class 9||Modeling Cyber-Physical Systems (3): Timed Model||Understand the concepts of the timed model of CPS|
|Class 10||Verifying Real-Time Systems (1): Model-Checking Timed-Automata||Understand methods and algorithms for model-checking timed-automata|
|Class 11||Verifying Real-Time Systems (2): Verification using UPPAAL||Understand formal verification methods using UPAAL model checker|
|Class 12||Analysis of Real-Time Systems (1): Schedulability Analysis and Static Scheduling||Understand the concepts of schedulability and static scheduling algorithms for real-time tasks|
|Class 13||Analysis of Real-Time Systems (2): Dynamic Scheduling||Understand dynamic scheduling algorithms for real-time tasks|
|Class 14||Advanced Topics (1): Reactive Programming||Understand the concepts and methods of reactive programming|
|Class 15||Advanced Topics (2): Functional Reactive Programming||Understand the concepts and methods of functional reactive programming|
None required (course materials will be provided via course website)
R. Alur, Principles of Cyber-Physical Systems, MIT Press, 2015.
E.-R. Olderog and H. Dierks, Real-Time Systems: Formal Specification and Automatic Verification, Cambridge U. Press, 2008.
Programming Project: 50%
Students must have successfully completed the related courses or have equivalent knowledge.
Students are required to have familiarity with basic Unix terminal commands.