Compositional, dependency-aware C++ concurrency
组合的、依赖感知的 C 并发
基本信息
- 批准号:EP/R020566/1
- 负责人:
- 金额:$ 12.59万
- 依托单位:
- 依托单位国家:英国
- 项目类别:Research Grant
- 财政年份:2018
- 资助国家:英国
- 起止时间:2018 至 无数据
- 项目状态:已结题
- 来源:
- 关键词:
项目摘要
We address a difficult technical problem that is drawn from outside of the strict bounds of academic research: we seek a solution to fundamental problems found in the standards of the C and C++ programming languages. C and C++ code is not just prevalent -- it is used to form the lowest and most trusted levels of our systems. The kernel of every mainstream operating system uses some combination of the two, including Windows, MacOS, iOS, Android, Linux and Unix, as do the swathe of embedded controllers with essential functions like engine management. Having a good specification of the language is the first step in verifying the correctness of these vital system components.-- Combatting software failure --This work is part of a larger effort to combat software failure by developing techniques to verify the correctness of software. Currently, developers of computer systems rely predominantly on testing to ensure that systems behave as they should. The system is run for some time over various inputs and monitored for failure. The hope is that this will expose enough of the flaws in the system to have it behave reliably once it is deployed. But it is increasingly expensive to achieve good coverage: systems like cars experience varied inputs, and a fleet of a particular model runs collectively for far longer than the time its computer systems are tested. Worse still, modern systems are concurrent -- using multiple communicating processors to complete a task. The delicate interplay between the concurrent processors makes the output of the system dependent on the timing of communication, so that some behaviours occur only a handfull of times in billions of runs, leaving testing little hope of finding associated bugs.There is evidence that this approach is breaking down and some bugs are evading discovery even in critical systems: for example a concurrency bug caused some of Toyota's cars to suddenly and relentlessly accelerate, killing 83 over 10 years. The wider economic cost of software failure was estimated by the U.S. National Institute of Standards and Technology to cost USD 60bn each year. Improving our approach to software failure would have substantial economic and societal impact.Verification offers an alternative to testing: one defines desirable properties of the system -- it will not crash, fuel metering will be proportional to accelerator input, and so on -- and mathematically proves that the code satisfies them. In the ideal of verification, there is no space for bugs to creep in and the mathematical proof of correctness is absolute. Unfortunately, verification techniques are invariably built above an idealised model of the computer system, e.g. the assumption that memory accesses take place in a global sequential order, so called sequential consistency (SC). The distance between the ideal and the reality leaves ample space for bugs to persist. In fact the status quo is much worse because we do not have a characterisation of the reality of the system's behaviour: our best models of programming-language behaviour are known to be broken, e.g. in C, C++ and Java.In this broad context, our project will develop a description of concurrency in the C and C++ languages that matches the reality, permitting the sorts of concurrent behaviour exhibited by compiler optimisations and the underlying concurrent processors. At the same time, we will support components written under the idealised SC assumption, enabling for the first time the use of the most powerful automatic verification techniques in a setting that correctly models the subtle concurrency behaviour of modern languages, dovetailing these previously disparate views of the system. Our work will make verification of concurrent systems more viable, helping to address the economic and social costs of software failure.
我们解决一个超出学术研究严格范围的技术难题:我们寻求 C 和 C++ 编程语言标准中发现的基本问题的解决方案。 C 和 C++ 代码不仅流行,而且还用于构成我们系统的最低和最受信任的级别。每个主流操作系统的内核都使用两者的某种组合,包括 Windows、MacOS、iOS、Android、Linux 和 Unix,以及具有引擎管理等基本功能的大量嵌入式控制器。拥有良好的语言规范是验证这些重要系统组件正确性的第一步。--对抗软件故障--这项工作是通过开发验证软件正确性的技术来对抗软件故障的更大努力的一部分。目前,计算机系统的开发人员主要依靠测试来确保系统按其应有的方式运行。系统在各种输入下运行一段时间并监视故障。希望这能够暴露系统中足够多的缺陷,以便在部署后能够可靠地运行。但实现良好覆盖的成本越来越高:像汽车这样的系统会经历不同的输入,并且特定型号的车队集体运行的时间远远超过其计算机系统的测试时间。更糟糕的是,现代系统是并发的——使用多个通信处理器来完成一项任务。并发处理器之间微妙的相互作用使得系统的输出依赖于通信的时间,因此某些行为在数十亿次运行中只发生几次,使得测试找到相关错误的希望渺茫。有证据表明这种方法正在崩溃,甚至在关键系统中,一些错误也难以被发现:例如,一个并发错误导致丰田的一些汽车突然无情地加速,在 10 年内导致 83 人死亡。据美国国家标准与技术研究所估计,软件故障每年造成的更广泛经济损失为 600 亿美元。改进我们解决软件故障的方法将产生巨大的经济和社会影响。验证提供了一种测试的替代方案:定义系统的理想属性——它不会崩溃,燃油计量将与加速器输入成正比,等等——并且从数学上证明代码满足他们的要求。在理想的验证中,没有错误潜入的空间,并且正确性的数学证明是绝对的。不幸的是,验证技术总是建立在计算机系统的理想模型之上,例如假设内存访问按照全局顺序进行,即所谓的顺序一致性 (SC)。理想与现实之间的距离,给bug留下了足够的生存空间。事实上,现状要糟糕得多,因为我们没有对系统行为的现实进行描述:众所周知,我们最好的编程语言行为模型已经被破坏了,例如在这个广泛的背景下,我们的项目将开发符合现实的 C 和 C++ 语言的并发描述,允许编译器优化和底层并发处理器表现出的并发行为。同时,我们将支持在理想化 SC 假设下编写的组件,从而首次能够在正确建模现代语言的微妙并发行为的设置中使用最强大的自动验证技术,从而将这些以前不同的观点结合起来。系统。我们的工作将使并发系统的验证更加可行,有助于解决软件故障的经济和社会成本。
项目成果
期刊论文数量(2)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
Modular Relaxed Dependencies in Weak Memory Concurrency
- DOI:10.1007/978-3-030-44914-8_22
- 发表时间:2020-04-18
- 期刊:
- 影响因子:0
- 作者:Paviotti M;Cooksey S;Paradis A;Wright D;Owens S;Batty M
- 通讯作者:Batty M
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
数据更新时间:{{ journalArticles.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ monograph.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ sciAawards.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ conferencePapers.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ patent.updateTime }}
Mark Batty其他文献
The C11 and C++11 concurrency model
C11 和 C 11 并发模型
- DOI:
- 发表时间:
2015 - 期刊:
- 影响因子:0
- 作者:
Mark Batty - 通讯作者:
Mark Batty
Library Abstraction for C / C + + Concurrency — extended version —
C/C++ 并发的库抽象 — 扩展版本 —
- DOI:
- 发表时间:
2012 - 期刊:
- 影响因子:0
- 作者:
Mark Batty;Mike Dodds - 通讯作者:
Mike Dodds
PrideMM: A Solver for Relaxed Memory Models
PrideMM:松弛内存模型的求解器
- DOI:
- 发表时间:
2018 - 期刊:
- 影响因子:0
- 作者:
Simon Cooksey;Sarah Harris;Mark Batty;Radu Grigore;Mikoláš Janota - 通讯作者:
Mikoláš Janota
Rust for Morello: Always-On Memory Safety, Even in Unsafe Code (Artifact)
Rust for Morello:即使在不安全的代码中也始终保持内存安全(Artifact)
- DOI:
10.4230/darts.9.2.25 - 发表时间:
2023 - 期刊:
- 影响因子:0
- 作者:
Sarah Harris;Simon Cooksey;M. Vollmer;Mark Batty - 通讯作者:
Mark Batty
Mark Batty的其他文献
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
{{ truncateString('Mark Batty', 18)}}的其他基金
Safe and secure COncurrent programming for adVancEd aRchiTectures (COVERT)
安全可靠的高级架构并发编程 (COVERT)
- 批准号:
EP/X015076/1 - 财政年份:2023
- 资助金额:
$ 12.59万 - 项目类别:
Research Grant
Transparent pointer safety: Rust to Lua to OS Components
透明指针安全:Rust 到 Lua 到 OS 组件
- 批准号:
EP/X021173/1 - 财政年份:2022
- 资助金额:
$ 12.59万 - 项目类别:
Research Grant
CapC: Capability C semantics, tools and reasoning
CapC:Capability C 语义、工具和推理
- 批准号:
EP/V000470/1 - 财政年份:2020
- 资助金额:
$ 12.59万 - 项目类别:
Research Grant
相似国自然基金
探寻血管内皮mTOR非依赖性AKT-Ser473激酶复合物
- 批准号:82370404
- 批准年份:2023
- 资助金额:49 万元
- 项目类别:面上项目
血管内皮细胞Mg2+/Mn2+依赖性蛋白磷酸酶1D基因突变在缺血性脑血管病中的作用机制研究
- 批准号:82371324
- 批准年份:2023
- 资助金额:49 万元
- 项目类别:面上项目
天山雪岭云杉多树轮参数气候阈值海拔依赖性研究
- 批准号:42375196
- 批准年份:2023
- 资助金额:50 万元
- 项目类别:面上项目
MRI场强依赖性时域噪声电磁机理与抑制方法研究
- 批准号:52307256
- 批准年份:2023
- 资助金额:30 万元
- 项目类别:青年科学基金项目
基于线粒体氧化应激触发自噬依赖性铁死亡探讨甲硫氨酸饥饿治疗胃癌的作用机制
- 批准号:82360591
- 批准年份:2023
- 资助金额:32 万元
- 项目类别:地区科学基金项目
相似海外基金
RNA helicases; switched paralogue dependency as an exploitable vulnerability in aggressive B cell lymphoma.
RNA解旋酶;
- 批准号:
EP/Y030303/1 - 财政年份:2024
- 资助金额:
$ 12.59万 - 项目类别:
Research Grant
Foreign Aid Dependency in the Post-Conflict States of South Asia
南亚冲突后国家对外援的依赖
- 批准号:
23K11609 - 财政年份:2023
- 资助金额:
$ 12.59万 - 项目类别:
Grant-in-Aid for Scientific Research (C)
Abiotic generation systems for organic matter in igneous rocks and their rock type dependency
火成岩中有机质的非生物生成系统及其岩石类型依赖性
- 批准号:
23K03508 - 财政年份:2023
- 资助金额:
$ 12.59万 - 项目类别:
Grant-in-Aid for Scientific Research (C)
Investigating High-Risk Epigenetic Modifying Alterations on JAK2VF Dependency and Fibrotic Progression in Myeloproliferative Neoplasms (MPNs)
研究骨髓增生性肿瘤 (MPN) 中 JAK2VF 依赖性和纤维化进展的高风险表观遗传修饰改变
- 批准号:
10723901 - 财政年份:2023
- 资助金额:
$ 12.59万 - 项目类别:
A Prostate Cancer Dependency Map to Identify Tumor Subtype-Specific Vulnerabilities
用于识别肿瘤亚型特异性漏洞的前列腺癌依赖性图
- 批准号:
10578640 - 财政年份:2023
- 资助金额:
$ 12.59万 - 项目类别: