Volume 42, Numbers 2-4, 349-388, DOI: 10.1007/s10817-009-9119-8

Proving Fairness and Implementation Correctness of a Microkernel Scheduler

Matthias Daum, Jan Dörrenbächer and Burkhart Wolff

From the issue entitled "Special Issue: Operating System Verification / Guest Edited by Gerwin Klein, Ralf Huuck and Bastian Schlich"

View Related Documents

Abstract

We report on the formal proof of a microkernel’s key property, namely that its multi-priority process scheduler guarantees progress, i.e., strong fairness. The proof architecture links a layer of behavioral reasoning over system-trace sets with a concrete, fairly realistic implementation written in C. Our microkernel provides an infrastructure for memory virtualization, for communication with hardware devices, for processes (represented as a sequence of assembly instructions, which are executed concurrently over an underlying, formally defined processor), and for inter-process communication (IPC) via synchronous message passing. The kernel establishes process switches according to IPCs and timer-events; the scheduling of process switches, however, follows a hierarchy of priorities, favoring, e.g., system processes over application processes over maintenance processes. Besides the quite substantial models developed in Isabelle/HOL and the formal clarification of their relationship, we provide a detailed analysis what formal requirements a microkernel imposes on the key ingredients (hardware, timers, machine-dependent code) in order to establish the correct operation of the overall system. On the methodological side, we show how early modeling with foresight to the later verification has substantially helped our project.

Keywords  Microkernel - Formal verification - Interactive theorem proving - Isabelle/HOL

Work partially funded by the German Federal Ministry of Education and Research (BMBF) in the framework of the Verisoft project under grant 01 IS C38.

Fulltext Preview

Image of the first page of the fulltext document