Keeping Track of Your Deadlines in Time-Critical Systems

Speaker: Matthias Killat

Audience level: [ Beginner | Intermediate | Advanced ]

Real-time systems require that the runtime of critical code sections can be bounded. In particular, they need to guarantee that a specific algorithm does not violate its time bound. This relies on the underlying hardware, fair scheduling by the OS but also carefully crafted application code.
This talk presents a lightweight C++ monitoring API which allows to check for deadline violations in multiple threads at runtime. It also discusses time measurements when timestamps are subject to wrap-around. The implementation utilizes thread local storage and is lock-free on the regular path where the deadlines are met. It has low overhead and can be integrated in existing C++ code to introduce time constraints and gather runtime statistics.