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%
Assignment: 50%
Students must have succesfully completed the related courses or have equivalent knowledge.
Students are desired to have familiarity with basic Unix terminal commands.