Embedded Software Engineering Course, Winter 2011/2012
This course provides an introduction to advanced systems software engineering: the first part covers advanced operating-system-level aspects in scheduling, memory management, and communication; the second part focuses on higher-level aspects such as real-time programming languages, coordination languages, models for real-time and embedded systems and methods for their verification. The course begins with an introduction to advanced operating system concepts using Salzburg's Tiptoe system as example. Basic real-time scheduling techniques such as rate-monotonic (RMS) and earliest deadline first (EDF) scheduling will be illustrated, followed by more advanced techniques such as Salzburg's variable-bandwidth servers (VBS). Memory management will be discussed from basic concepts to more advanced techniques such as Salzburg's Short-term Memory and Compact-fit systems. Next are real-time communication protocols such as the time-triggered protocol (TTP) and the event-triggered CAN protocol. The second half of the course emphasizes real-time programming, coordination, and verification for real-time and embedded systems. The high-level embedded programming and coordination languages Lustre, Giotto, and Salzburg's HTL will be presented. Code generation for HTL will be discussed based on a virtual machine architecture called the Embedded Machine. The end of the course will focus on more formal aspects of real-time and embedded systems, in particular, timed automata and other formalisms for modeling timed systems, and an overview of methods for their verification.
Goal of the course:
Learn how to design, implement, and evaluate systems software. Understand advanced communication protocols, programming paradigms, and runtime platforms. Implement applications with real-time requirements and verify their correctness.
Grading: 25% exam, 75% project.
Prerequisites: programming experience, basic knowledge of operating system and programming language concepts.
Course language: English.
Technical contact: Ana . Sokolova @ cs . uni-salzburg . at
Administrative contact: Adriana . Pratter @ cs . uni-salzburg . at