@inbook{185edc583b93445a9a2ab3034e71882e,
title = "Practical Rely/Guarantee Verification of an Efficient Lock for seL4 on Multicore Architectures",
abstract = "Developers of low-level systems code providing core functionality for operating systems and kernels must address micro-architectural features of modern multicore processors, including and especially pipelined out-of-order execution of the code as written. The effects of out-of-order execution are typically summarised by a weak memory model, a term which includes further complicating factors that may be introduced by compiler optimisations. In many cases, the nondeterminism inherent in weak memory models can be expressed as micro-parallelism, i.e., parallelism within threads and not just between them. Fortunately Jones{\textquoteright} rely/guarantee reasoning provides a compositional method for verification of shared-variable concurrency, whether that be in terms of communication between top-level threads or micro-parallelism within threads. In this paper we provide an in-depth specification and verification of the lock algorithm used in the seL4 microkernel, using rely/guarantee to handle both inter-thread communication and micro-parallelism introduced by weak memory models. The proof is machine-checked in Isabelle/HOL, building on an existing theory for rely/guarantee reasoning, extended with rules specialised for data type invariants, spin loops, and nested parallelism.",
keywords = "Concurrency, Lock algorithms, Multicore architectures, Rely/Guarantee, Verification, Weak memory models",
author = "Colvin, {Robert J.} and Hayes, {Ian J.} and Scott Heiner and Peter H{\"o}fner and Larissa Meinicke and Su, {Roger C.}",
note = "Publisher Copyright: {\textcopyright} The Author(s), under exclusive license to Springer Nature Switzerland AG 2024.",
year = "2024",
doi = "10.1007/978-3-031-66676-6_4",
language = "English",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer Science and Business Media Deutschland GmbH",
pages = "65--87",
booktitle = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
address = "Germany",
}