Abstract
Real-time systems power safety-critical applications that require strong isolation among each other. Such isolation needs to be enforced at two orthogonal levels. On the micro-architectural level, this mainly involves avoiding interference through micro-architectural states, such as cache lines. On the algorithmic level, this is usually achieved by adopting real-time partitions to reserve resources for each application. Implementations of such systems are often complex and require formal verification to guarantee proper isolation. In this paper, we focus on algorithmic isolation, which is mainly related to scheduling-induced interferences. We address earliest-deadline-first (EDF) partitions to achieve compositionality and utilization, while imposing constraints on tasks' periods and enforcing budgets on these periodic partitions to ensure isolation between each other. The formal verification of such a real-time OS kernel is challenging due to the inherent complexity of the dynamic priority assignment on the partition level. We tackle this problem by adopting a dynamically constructed abstraction to lift the reasoning of a concrete scheduler into an abstract domain. Using this framework, we verify a real-time operating system kernel with budget-enforcing EDF partitions and prove that it indeed ensures isolation between partitions. All the proofs are mechanized in Coq.
Original language | English (US) |
---|---|
Article number | 127 |
Journal | Proceedings of the ACM on Programming Languages |
Volume | 6 |
Issue number | OOPSLA2 |
DOIs | |
State | Published - Oct 31 2022 |
Externally published | Yes |
Keywords
- dynamic-priority scheduling
- earliest-deadline-first
- formal verification
- mechanized proof
- partitioned scheduling
- temporal isolation
ASJC Scopus subject areas
- Software
- Safety, Risk, Reliability and Quality