• Requirements on embedded software
• Prerequisites for the development of predictable embedded software
• Inter-process communication
• Hard- and soft real-time systems
• Modeling real-time systems
• Schedulability analysis
• Modeling and analyzing systems with shared resources
• Aperiodic and sporadic jobs
• Multiprocessor real-time systems
• Real-time operating systems
• Languages and models for the design of predictable embedded software
After the course the student shall
• have a good understanding of the special character of embedded software
• understand to what extent the predictability of embedded software depends on the underlying hardware architecture
• be able to distinguish and evaluate different mechanisms for inter-process communication
• be able to model an embedded software application so that it can be analyzed with respect to real-time behavior
• be able to use different techniques to analyze if a software application meets its deadline
• be able to model and analyze the effect of shared resources
• be able to recognize restrictions of idealized models and scheduling algorithms and to take practical factors into account
• understand the mechanisms of a real-time operating system and be aware of their impact on development of embedded software
• be able to evaluate different languages and approaches to embedded software design
• be able to study scientific articles in the topic area and to apply novel ideas to own research problems