Conference item
Modular verification of preemptive OS kernels
- Abstract:
-
Most major OS kernels today run on multiprocessor systems and are preemptive: it is possible for a process running in the kernel mode to get descheduled. Existing modular techniques for verifying concurrent code are not directly applicable in this setting: they rely on scheduling being implemented correctly, and in a preemptive kernel, the correctness of the scheduler is interdependent with the correctness of the code it schedules. This interdependency is even stronger in mainstream kernels, such as Linux, FreeBSD or XNU, where the scheduler and processes interact in complex ways.
We propose the first logic that is able to decompose the verification of preemptive multiprocessor kernel code into verifying the scheduler and the rest of the kernel separately, even in the presence of complex interdependencies between the two components. The logic hides the manipulation of control by the scheduler when reasoning about preemptable code and soundly inherits proof rules from concurrent separation logic to verify it thread-modularly. This is achieved by establishing a novel form of refinement between an operational semantics of the real machine and an axiomatic semantics of OS processes, where the latter assumes an abstract machine with each process executing on a separate virtual CPU. The refinement is local in the sense that the logic focuses only on the relevant state of the kernel while verifying the scheduler. We illustrate the power of our logic by verifying an example scheduler, modelled on the one from Linux 2.6.11.
Actions
Access Document
- Files:
-
-
(Preview, pdf, 364.2KB, Terms of use)
-
- Publisher copy:
- http://doi.acm.org/10.1145/2034773.2034827
Authors
- Publisher:
- ACM
- Host title:
- Proceedings of the 16th ACM SIGPLAN International Conference on Functional Programming
- Publication date:
- 2011-01-01
- DOI:
- ISBN:
- 9781450308656
- UUID:
-
uuid:f3f2d73b-aa35-4937-851a-ed4fdb41c1bc
- Local pid:
-
cs:4986
- Deposit date:
-
2015-03-31
- ARK identifier:
Terms of use
- Copyright date:
- 2011
If you are the owner of this record, you can report an update to it here: Report update to this record