Controlled Owicki-Gries Concurrency: Reasoning about the Preemptible eChronos Embedded Operating System
June Andronick (NICTA, UNSW), Corey Lewis (NICTA), Carroll Morgan, (NICTA, UNSW)

TL;DR
This paper presents a formal framework based on the Owicki-Gries method for modeling and verifying preemptible real-time embedded operating systems, exemplified by the eChronos OS, using Isabelle/HOL.
Contribution
It adapts the Owicki-Gries concurrency method to explicitly model hardware interfaces and preemption in embedded OSs, enabling detailed verification of high-performance, interrupt-driven systems.
Findings
Framework accurately models eChronos OS behavior.
Supports explicit concurrency control for embedded systems.
Formalization in Isabelle/HOL enhances automation and reliability.
Abstract
We introduce a controlled concurrency framework, derived from the Owicki-Gries method, for describing a hardware interface in detail sufficient to support the modelling and verification of small, embedded operating systems (OS's) whose run-time responsiveness is paramount. Such real-time systems run with interrupts mostly enabled, including during scheduling. That differs from many other successfully modelled and verified OS's that typically reduce the complexity of concurrency by running on uniprocessor platforms and by switching interrupts off as much as possible. Our framework builds on the traditional Owicki-Gries method, for its fine-grained concurrency is needed for high-performance system code. We adapt it to support explicit concurrency control, by providing a simple, faithful representation of the hardware interface that allows software to control the degree of interleaving…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsReal-Time Systems Scheduling · Embedded Systems Design Techniques · Parallel Computing and Optimization Techniques
