×

堆操作C程序的静态数据竞争分析。 (英语) Zbl 1360.68004号

塔尔图大学数学学位论文64.塔尔图:塔尔图大学出版社;塔尔图:塔尔图大学数学与计算机科学学院(Diss.)(ISBN 978-9949-19-508-4/pbk;978-9949-19-509-1/电子书)。137页。(2010).
摘要:现代计算机体系结构能够同时进行许多计算。为这样的系统编写和测试程序是众所周知的困难,因为并发执行线程之间的交互是不可预测的。共享内存并发系统中一个特别难以捉摸的缺陷是数据竞争,即多个线程可能同时尝试更新同一内存位置。这可能会导致数据损坏,并最终导致系统故障。静态程序分析是一种自动化的形式化方法,它通过求解数据流方程组来计算程序的所有可能的运行时行为。本文认为,静态分析可以用于验证真实系统中是否存在数据竞争,特别是像Linux设备驱动程序这样的操作系统模块。为此类代码开发静态分析的挑战是,数据结构和保护数据的锁都是在运行时创建的。为了解决这个问题,开发了三种新技术:用于表示地址表达式之间的等式的抽象域、基于区域的堆抽象和适用于低级程序的形状域。我们在Goblint分析仪中实现了这些技术,并用它实验验证了以下论点:通过静态分析,可以验证真实系统中的种族自由。

MSC公司:

68-02 与计算机科学有关的研究展览会(专著、调查文章)
2007年7月68日 计算机体系结构的数学问题
68甲15 编程语言理论
68甲19 其他编程范式(面向对象、顺序、并发、自动等)
68N20型 编译与解释理论
68号30 软件工程的数学方面(规范、验证、度量、需求等)
68第05页 数据结构
PDF格式BibTeX公司 XML格式引用
全文: 链接 链接