The development of real-time software requires special methods and techniques. In this intensive 5-day course participants will learn design aspects of real-time (embedded) programs, in particular timeliness and concurrency.
€ 2.750,00 excl. VAT
5 consecutive days
18-06-2018 | 09:00 - 17:00
19-06-2018 | 09:00 - 17:00
20-06-2018 | 09:00 - 17:00
21-06-2018 | 09:00 - 17:00
22-06-2018 | 09:00 - 17:00
After successful completion of the course, the participant will be able to reason about timeliness and concurrency aspects of real-time (embedded) software. More specifically, they will:
- Be able to apply methods for designing concurrent programs in a systematic way
- Be able to deal with time considerations and real-time scheduling
- Be able to apply techniques for modelling real-time software
- Be acquainted with R-T operating systems that support concurrency and scheduling
Hardware and software engineers, system analysts and designers who develop real-time software in the area of embedded systems, CAM, laboratories etc.
- Experience in software development
- Knowledge of the fundamentals of computing science
- Knowledge of general operating system policies and mechanisms
Part 1: Real-time systems characteristics, concurrency, synchronization and communication (days 1 and 2)
Fundamentals and concepts of real-time embedded software systems. Concurrency primitives.
Multitasking issues. Programming models. Communication and synchronization. RT Operating systems.
Introduction to scheduling. Scheduling analysis with periodic, sporadic and aperiodic events. Rate Monotonic Scheduling with and without resource contention. Response-time calculations. Deadline Monotonic vs Rate Monotonic scheduling. Fixed priority vs dynamic priority.
Part 3: Design issues in real-time systems (day 4)
Why is real-time different from non-real-time? General aspects, abstraction levels, methodological aspects of RT design (object orientation and real-time, RT object oriented languages, modeling RT systems in UML2.
Part 4: Interactive workshop (day 5)
Requirements, design of structure (applying general and task structuring heuristics), specification of behaviour, analyzing timing contraints, analyzing schedulability (assigning priorities, identifying resources, priority inheritance and priority ceiling), programming model dependencies.
Lectures, discussions and exercises. On the last day there is an intensive interactive workshop to practice presented techniques. Course material: book, course notes, handouts, articles.