Practical Rely/Guarantee Verification of an Efficient Lock for seL4 on Multicore Architectures

Robert J. Colvin, Ian J. Hayes, Scott Heiner, Peter Höfner, Larissa Meinicke, Roger C. Su
{"title":"Practical Rely/Guarantee Verification of an Efficient Lock for seL4 on Multicore Architectures","authors":"Robert J. Colvin, Ian J. Hayes, Scott Heiner, Peter Höfner, Larissa Meinicke, Roger C. Su","doi":"arxiv-2407.20559","DOIUrl":null,"url":null,"abstract":"Developers of low-level systems code providing core functionality for\noperating systems and kernels must address hardware-level features of modern\nmulticore architectures. A particular feature is pipelined \"out-of-order\nexecution\" of the code as written, the effects of which are typically\nsummarised as a \"weak memory model\" - a term which includes further\ncomplicating factors that may be introduced by compiler optimisations. In many\ncases, the nondeterminism inherent in weak memory models can be expressed as\nmicro-parallelism, i.e., parallelism within threads and not just between them.\nFortunately Jones' rely/guarantee reasoning provides a compositional method for\nshared-variable concurrency, whether that be in terms of communication between\ntop-level threads or micro-parallelism within threads. In this paper we provide\nan in-depth verification of the lock algorithm used in the seL4 microkernel,\nusing rely/guarantee to handle both interthread communication as well as\nmicro-parallelism introduced by weak memory models.","PeriodicalId":501208,"journal":{"name":"arXiv - CS - Logic in Computer Science","volume":"32 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-07-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Logic in Computer Science","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2407.20559","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Developers of low-level systems code providing core functionality for operating systems and kernels must address hardware-level features of modern multicore architectures. A particular feature is pipelined "out-of-order execution" of the code as written, the effects of which are typically summarised as 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' rely/guarantee reasoning provides a compositional method for 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 verification of the lock algorithm used in the seL4 microkernel, using rely/guarantee to handle both interthread communication as well as micro-parallelism introduced by weak memory models.
在多核架构上对 seL4 的高效锁进行实际依赖/保证验证
为操作系统和内核提供核心功能的底层系统代码开发人员必须解决现代多核架构的硬件级特性。其中一个特别之处是所编写代码的流水线 "外部执行",其影响通常被概括为 "弱内存模型"--这个术语包括编译器优化可能引入的进一步复杂因素。在很多情况下,弱内存模型中固有的非确定性可以表现为微并行性,即线程内部的并行性,而不仅仅是线程之间的并行性。幸运的是,琼斯的依赖/保证推理为共享变量并发提供了一种组合方法,无论是顶层线程之间的通信还是线程内部的微并行性。在本文中,我们对 seL4 微内核中使用的锁算法进行了深入验证,该算法使用依赖/保证来处理线程间通信以及由弱内存模型引入的微并行性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信