[发明专利]证明并发处理环境内的执行跟踪的正确性的系统和方法有效
申请号: | 201010116123.3 | 申请日: | 2010-02-09 |
公开(公告)号: | CN101894065A | 公开(公告)日: | 2010-11-24 |
发明(设计)人: | K·德拉吉塞维克;D·鲍尔;L·加斯-埃利斯 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市中咨律师事务所 11247 | 代理人: | 于静;杨晓光 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 证明 并发 处理 环境 执行 跟踪 正确性 系统 方法 | ||
背景技术
由新的多核处理器架构引入的当前计算硬件中的多个处理单元的可用性提供了使用传统算法和数据结构的程序所无法发掘的计算能力。在先前的单处理器架构中,在任何给定时间,只能执行一个执行线程,因此可以相对容易地防止两个线程同时在同一数据结构上操作以避免数据结构中出现数据损坏,同时具有最小的性能影响。
但是在使用多核处理器的情况下,通过计算机可执行代码(或简称为“代码”)编程多个线程以同时在不同的处理单元(或“核心”)上运行。阻止这些线程在数据结构上并发操作并非避免数据损坏的有效方法,因为如果最多只有一个线程运行,则资源(即,多核处理器中的核心)被浪费。需要新的算法来允许多个线程能够并发访问数据结构。这意味着重新编写实现数据结构的代码。新的代码更难以检验正确性,因为考虑多个并发执行路径而不是单个执行路径本质上更复杂。
能够检验并行算法的正确性的检验器很少,并且所有这些检验器或者仅检验数据结构的简单特性,或者检验只拥有简单特性的数据结构(参见例如Vafeiadis发表在VMCIA 2009上的Shape-value Abstraction forVerifying Linearizability(用于检验线性一致性的形状值提取)以及Fraser在2004年发表的剑桥大学技术报告Practical lock-freedom(实用的无锁特性))。因此,需要诸如正确性检验器之类的自动化工具来帮助开发人员评估已编写代码的正确性并提高效能,同时提高数据结构本身的质量和可靠性。
此外,检验并行算法的正确性历来被视为是一种计算密集型的复杂操作。因此,如果对算法的执行进行任何分析,都会受到限制。例如,给定可针对数据结构执行的所有可能原子操作(即,无法再细分为其他可见的子操作的操作),软件测试程序将使用多个并发线程以某种随机顺序重复执行这些操作。测试程序的输出是所有执行的原子操作及其结果的历史。通常,较长的测试程序历史包括更丰富的操作组合(例如,更多数量的重叠操作),并相应地改进了检验器的准确性。但是,使用传统检验方法意味着较长的历史需要更多的计算要求。因此进一步需要一种高效的检验器:其计算要求不会随着历史的长度而过分增加。
发明内容
数据结构可以根据不同的准则被定义为“正确”。在本发明的非限制方面中,本发明的一个实施例使用一个被广泛接受的正确性准则;即ACMTransactions on Programming Languages and Systems(美国计算机学会编程语言和系统汇刊)12(3):463-492(1990)上由Herlihy等人所著的“Linearizability:A Correctness Condition for Concurrent Objects(线性一致性:并发对象的正确性条件)”中所提出的“线性一致性(Linearizability)”。线性一致性特性是连续算法如何必须并行执行以确保正确的理论模型。
在下面进一步详细描述的示例性实施例中,描述了一种检验使用数据结构实现连续算法的测试程序所生成的执行历史的线性一致性特性的方法和系统。此外,本发明的实施例仅遍历一次所生成的历史结果,从而避免回溯。因此,与本发明的实施例关联的计算要求不会随着输出历史长度的增长而过分增加。
因此,本发明的一个方面提供了一种由计算设备执行的检验包括针对数据结构并行执行的操作的执行历史的正确性的方法,所述方法包括:
定义规则集,所述规则集包括定义针对所述数据结构的操作行为的操作规则集、新状态规则集以及旧状态规则集;
从存储设备读取所述执行历史;
构建包括所述执行历史中包括的每个操作的开始事件和结束事件的事件集,其中每个事件都包括基于每个操作的相应开始时间和结束时间的时间戳;
根据每个相应事件的时间戳顺序地处理所述事件集中的每个事件;
响应于所述处理而构建状态集,其中当根据所述新状态规则集中包括的新状态规则处理事件创建了新状态时,将新状态添加到所述状态集,以及当根据所述旧状态规则集中包括的旧状态规则处理事件删除了旧状态时,删除所述状态集中的旧状态;以及
当所述状态集为空时,将不正确的结果输出到存储设备或显示设备中的至少一个;其中,
当已处理每一个事件并且所述状态集包括至少一个状态时,将正确的结果输出到存储设备或显示设备中的至少一个。
本发明的另一方面提供了一种检验包括在计算设备上针对数据结构并行执行的操作的执行历史的正确性的系统,所述系统包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010116123.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:信息处理装置
- 下一篇:控制多个空气转移格栅的张开量的设备和方法