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 have not only acquired the knowledge and technique required for embedded/real-time system development, but also gain ability 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
Classroom learning and programming exercises
|第1回||Course Introduction and Overview, Real-Time Characteristics and Definitions||Real-Time Characteristics and Definitions|
|第2回||Real-Time Operating Systems (1): Kernels, Tasks and Priorities||RTOS Kernels, Tasks, Priorities|
|第3回||Real-Time Operating Systems (2): Synchronization, Communication and Memory Management||Mutex, Semaphore, Message Passing, Mailbox, Memory Pools|
|第4回||Real-Time Operating Systems (3): Scheduling||Task Scheduling, Interrupts, Priority Inversion, Priority Inheritance|
|第5回||Real-Time System Programming (1): RTOS Programming in C/C++||Programming Abstractions in RTOS|
|第6回||Real-Time System Programming (2): Abstractions for Real-Time Systems||Abstractions and Language Mechanisms for Real-Time Systems|
|第7回||Analysis of Real-Time Systems (1): Schedulability Analysis||Schedulability Analysis, Periodic Tasks, Aperiodic Tasks|
|第8回||Analysis of Real-Time Systems (2): Static Scheduling||Static Scheduling, Rate-Monotonic Scheduling|
|第9回||Analysis of Real-Time Systems (3): Dynamic Scheduling||Dynamic Scheduling, Earliest Deadline First Scheduling|
|第10回||Modeling Real-Time Systems (1): Modeling Timed Systems, Real-Time UML||Modeling Timed Systems, Real-Time UML|
|第11回||Modeling Real-Time Systems (2): Timed Automata||Timed Automata|
|第12回||Verifying Real-Time Systems (1): Model-Checking Timed Automata||Model-Checking Timed Automata|
|第13回||Verifying Real-Time Systems (2): Using UPAAL||UPAAL|
|第14回||Advanced Topics (1): Verifying RTOS Kernels||Verifying RTOS Kernels (case study)|
|第15回||Advanced Topics (2): Functional Reactive Programming||Functional Reactive Programming for Embedded Systems|
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.
RTOS Programming Project: 50%
Students must have succesfully completed the related courses or have equivalent knowledge.
Students are desired to have familiarity with basic Unix terminal commands.