Working with Deadlines
Deadlines in Lingua Franca serve three purposes: they specify real-time requirements, guide scheduling, and provide fault handlers to invoke when real-time requirements are not met. But they can be subtle to use, and, do not guide scheduling as much as we would like. This blog outlines the current state of affairs and lays out ongoing work to improve the situation.
A deadline specifies that the physical time at which a reaction starts minus the logical time of that reaction (a time difference called the lag) should not exceed some threshold. If it does, then the deadline violation handler is invoked rather than the regular reaction.
Deadlines expose a number of scheduling subtleties because unrelated reactions can cause a deadline violation. Moreover, many users wonder why the deadline refers to the physical time at which a reaction starts rather than the time at which it ends. Here, we explain some of the subtleties.