1. Introduction to embedded real-time systems.
Definition of terms and concepts. What are embedded real-time systems and what are not? Examples of such systems.
Why embedded real-time systems? 2. Real-time operating systems (RTOS).
Comparison to general-purpose OS. RTOS functionality, system calls, error-handling, etc. 3.
Scheduling in real-time systems and response time analysis. 3.1. Dynamic and static scheduling 3.2.
Rate-monotonic scheduling 3.3. Dead-line monotonic scheduling 3.4.
Earliest deadline first scheduling 3.5. Processor demand analysis 3.6.
Comparison of Rate-monotonic a Earliest deadline first 3.7. Shared resources, blocking, priority inheritance protocol, priority ceiling protocol, response time analysis when blocking is used. 3.8.
Offline scheduling 3.9. Aperiodic servers 3.10.
Multi-processor scheduling 3.11. Soft real-time systems 4.
Design of embedded real-time systems. Design methods.
Specification of temporal requirements. Case-study. 5.
Model-based design using dedicated tools and simulations. 6. Communication in real-time systems.
Communication protocols (CAN-bus, TTP).
The course gives an introduction to embedded and real-time systems. It covers the basic theory and concepts, scheduling, design, communication and distributed embedded real-time systems.
The course assumes basic knowledge in operating systems and C-language programming.