CN101438234B - 参数化并发软件的过程间数据流分析 - Google Patents
参数化并发软件的过程间数据流分析 Download PDFInfo
- Publication number
- CN101438234B CN101438234B CN2007800122238A CN200780012223A CN101438234B CN 101438234 B CN101438234 B CN 101438234B CN 2007800122238 A CN2007800122238 A CN 2007800122238A CN 200780012223 A CN200780012223 A CN 200780012223A CN 101438234 B CN101438234 B CN 101438234B
- Authority
- CN
- China
- Prior art keywords
- cutoff
- parameterized
- rendezvous
- concurrent
- concurrent program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000004458 analytical method Methods 0.000 title description 9
- 238000000034 method Methods 0.000 claims abstract description 97
- 230000007704 transition Effects 0.000 claims abstract description 51
- 230000002123 temporal effect Effects 0.000 claims abstract description 17
- 238000006243 chemical reaction Methods 0.000 claims description 39
- 230000001960 triggered effect Effects 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 41
- 230000003993 interaction Effects 0.000 description 16
- 230000004224 protection Effects 0.000 description 16
- 230000009466 transformation Effects 0.000 description 15
- 238000012795 verification Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 239000000203 mixture Substances 0.000 description 8
- 238000012360 testing method Methods 0.000 description 8
- 238000000844 transformation Methods 0.000 description 7
- 238000005206 flow analysis Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000010276 construction Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000014616 translation Effects 0.000 description 5
- 241001516311 Watermelon virus A Species 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 230000005477 standard model Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000004880 explosion Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000008450 motivation Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- OAICVXFJPJFONN-UHFFFAOYSA-N Phosphorus Chemical compound [P] OAICVXFJPJFONN-UHFFFAOYSA-N 0.000 description 1
- 239000007983 Tris buffer Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000009416 shuttering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/08—Probabilistic or stochastic CAD
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
用于在计算机系统的并发程序中计算数据流的系统和方法,包括在给定线程族(U1,...,Um)和线性时态逻辑(LTL)属性f时为并发程序计算(12)LTL属性f的截止,其中,如果对于大于或等于c的所有n,在Uc满足f时Un满足f,则c称为截止。截止通过使用(14)线程内部转换的加权多自动机计算得出。执行对截止数量进程的模型检验(16)以验证并发程序中的竞争自由度。
Description
相关申请信息
本申请要求具有2007年1月9日提交的临时专利申请编号60/884,048,该申请通过引用结合于本文中。本申请还要求具有2006年10月5日提交的临时专利申请编号60/828,246,该申请通过引用结合于本文中。
本申请涉及当前一起提交,题为“安全性模型检验参数化线程”(MODEL CHECKING PAEAMETERIZED THREADS FOR SAFETY)(代理人案号06049(449-4))的美国申请序号(TBD),该申请通过引用结合于本文。
背景
技术领域
本发明涉及计算机系统验证,并且更具体地说,涉及并发程序验证,而并发程序利用了由相同硬件或软件组件许多复制组成的计算机系统参数化质量。
背景技术
需要执行计算机验证以确保计算机系统正常操作并且获得的结果值得信任。一种验证形式是测试。在测试中,在装置上检查有关输入的系统实际行为,并且将行为与预期结果进行对比。由于大量或无限量的可能输入,因此,确认系统在所有环境下正确工作是不可能的。
验证尝试解决这些问题。验证为模拟系统行为提供了数学或模型基础。模型及其预计行为已定义。机器通常建模为其状态随时间演变的系统,模型包括状态空间规格及系统可如何遍历它。时态逻辑已显示对表述反应系统行为有用。验证的模型检验方案包括采用所考虑的系统数字模型,并检查在模型内时态逻辑公式的有效性。
所有方法面临的主要问题是状态爆炸。状态爆炸指考虑的系统状态空间随使用的存储量(例如,寄存器或程序变量、指针等)而迅速(例如,呈指数)增长。这限制了验证方法。
多线程是利用计算机系统不同组件之间并发化的一种标准方式。因此,对并发多线程程序的使用正变得普遍。示例包括操作系统、数据库、嵌入式系统(蜂窝电话、多媒体消费品)等。由于验证一般不针对大型并发程序扩展,因此,人们在利用象过程间数据流分析等静态分析技术调试多线程程序方面有着浓厚的兴趣。虽然过程间数据流分析已证明是为顺序程序查找缺陷的极为有效的技术,但在将此类数据流分析扩展到并发域上所做的工作却很少。
发明内容
具有例如运行相同段代码的许多重复线程的并发程序出现在许多重要的应用程序中。除其它之外,这些并发程序包括用于组网、高速缓存一致性、同步和运行多线程软件的多核架构的协议实现。作为一个具体的示例,我们考虑LinuxTM装置驱动程序。可假设驱动程序代码正常工作,而不考虑执行它的线程数量。对于此类应用程序,目标是确立形式程序的正确性,而不考虑如为驱动程序Ui执行代码的线程数量ni所测量的程序大小。在技术领域,这经常称为参数化模型检验问题(PMCP)。很明显,由于具有固定数量线程的系统正确性通常不能对于任意数量确立正确性,因此,这很重要。
但在实际上,判定PMCP被视为是一个难题。因此,一般遵循的方案是先处理似乎更简单的问题,尝试确立具有固定数量(一般为2)重复线程的程序正确性。但是,我们得到多少有点令人惊讶的结果:确立固定数量(即使为2)重复组件的正确性在许多重要情况下其易处理性可证明低于确立参数化正确性。
这至少有两个含意。首先,在推理参数化递归程序时,重要的是尝试直接推理参数化正确性,而不是尝试确立包括小的固定数量重复线程并随后增加复制数量的特殊情况的正确性。为示出第二个更重要的实际意义结论,我们假定最终目标不是参数化推理,而是确立具有固定数量(可能不同)的线程的程序的正确性。
假设我们要确立在由运行两个可能不同的装置驱动程序的线程U1和U2组成的程序U1‖U2中不存在数据竞争。随后,如果我们确立在由U1和U2任意多复制组成的参数化系统中不存在数据竞争,则它自动为U1‖U2确立数据竞争自由度(data race freedom)。一个要点是我们显示在许多关注情况下,证明推理U1‖U2是不可判定的,而PMCP可高效地判定。
我们考虑用于形式的并发程序的PMCP,并发程序由通过使用象成对(pairwise)和异步会合(asynchronous rendezvous)、锁(locks)、广播(broadcast)和析取性保护(disjunctive guards)等标准同步原语相互交互作用的任意数量ni的模板线程Ui复制组成。我们将线程建模为下推系统(PDS),而下推系统已形成为用于分析递归程序的自然、功能强大的框架。正确性属性使用多索引LTL\X表示。注意,缺少“next-time”算子X会使逻辑模糊不灵敏(stutteringinsensitive),这通常出现在推理参数化系统时。为便于解释,我们将我们用于具有单个模板PDS的系统和用于双索引LTL\X属性的结果公式化。本领域的技术人员将理解到具有多个模板和k索引属性(其中k>2)的系统的扩展。
我们的新结果显示PMCP的可判定性取决于正确性属性中允许的时序算子集合,由此提供了表征PMCP可判定的双索引LTL分段的自然方式。我们使用L(Opl,…,Opk)(其中Opi∈{F,U,G})表示由Ef形式公式组成的分段,其中,f是肯定范式(positive normal form)(PNF)的双索引LTL\X公式,即,只有原子命题被否定,通过使用时序算子Opl,...,Opk和布尔联结符∨和∧建立。此处,F“有时(sometimes)”,U“直至(until)”和G“始终(always)”表示标准时序算子,并且E是“存在路径量词(existential path quantifier)”。L(U,G)是充分发展的双索引LTL\X。
在此公开内容中,我们为每个标准同步原语精确地描绘了用于双索引LTL\X的PMCP可判定性/不可判定性边界。具体而言,我们显示了以下内容。
(a)用于L(F,G)和L(U)的PMCP通常是不可判定的,即使对于PDS根本不相互交互作用的系统也是如此。上述结果暗示,要获得交互作用与否的PDS的PMCP可判定性,我们要将自身限于亚逻辑L(F)或亚逻辑L(G)。对于这些亚逻辑,PMCP的可判定性取决于PDS使用的同步原语。
(b)对于亚逻辑L(F),我们显示对于经成对或异步会合、析取性保护和嵌套锁交互作用的PDS,PMCP可高效地判定,但对于广播和非嵌套锁仍保持不可判定。如果由经成对会合交互作用以实现可达性(reachability)的两个PDS(即使它们相互同构)组成的模型检验系统有不可判定性-对交互作用的PDS进行模型检验的基础的不可判定性结果,那么成对会合(及实际上异步会合和析取性保护)的可判定性是令人吃惊的。我们的新结果显示经成对会合交互作用的PDS的PMCP不但可判定,而且可高效地判定。由于它示出对于成对会合(及异步会合和析取性保护),切换到问题的参数化形式将使其更易于处理,因此,这特别令人感兴趣。
(c)对于分段L(G),我们显示PMCP对于成对和异步会合、析取性保护和锁(即使是非嵌套锁)是可判定的。这使PMCP满足所有标准同步原语。
假设{Un}是由经成对会合交互作用的模板PDS U定义的系统参数化族。要得到L(F)的可判定性,我们先阐述新的有效过程,以计算参数化可达的U的控制状态集合,例如,在用于某一n的Un中可达。这经固定点计算实现,该计算从包含U初始状态的集合R0开始,并在假设Ri中所有状态均参数化可达的情况下,在第i次迭代中构成变为参数化可达的控制状态集合Ri+1。要点是在向Ri添加新控制状态c时,我们要不但确保满足由会合产生的同步约束,而且要确保新添加的状态从现有参数化可达状态是上下文无关可达。两个约束的检验是吻合的,即,以交织方式执行,直至到达其中未发现新状态的固定点。接着,我们经洪泛式变元(flooding argument)显示,用于L(F)的公式f的PMCP简化为用于具有PDS UR的两个非交互作用复制的系统的标准模型检验,其中,UR是我们通过只保持U的参数化可达控制状态,并将此类状态之间的所有成对会合转变为内部转换而从U得到的模板。最后的问题已知为可高效判定,为我们提供可判定性结果。具有异步会合和析取性保护的PDS的可判定性经类似的过程执行。
要得到L(G)的可判定性,我们先显示截止结果。我们假设如果对于m≥c,在Uc|=f时,就有Um|=f,则c是用于公式f的截止(cutoff)。通过利用加权多自动机(Multi-Automata),我们提供新过程,以便为经成对和异步会合交互作用的PDS计算用于L(F)和L(G)公式的截止。对于经锁交互作用的PDS,此截止对于k-索引属性已知为k。截止的存在将PMCP简化为对具有有限多PDS的系统进行模型检验,而我们显示了该PMCP对于析取性和(非嵌套)锁是可判定的,并且该PMCP已知为对于经成对和异步会合交互作用的PDS是可判定的。对于经析取性保护交互作用的PDS,我们经洪泛式变元显示用于L(G)公式f的PMCP简化为用于具有简化的PDS UR两个(非交互作用)复制的系统的标准模型检验。最后的问题已知为可高效判定,为我们提供可判定性结果。
用于计算计算机系统并发程序中数据流的系统和方法包括在已知并发程序线程族(U1,...,Um)和线性时态逻辑(LTL)属性f时,计算LTL属性f的截止,其中,如果对于大于或等于c的所有n,在Uc满足f时Un就满足f,则c称为截止。截止通过使用用于线程内部转换的加权多自动机计算得出。执行对截止数量进程的模型检验以验证并发程序中的竞争自由度。
结合附图阅读下面说明性实施例的详细说明,将明白本发明的这些和其他特性和优点。
附图说明
本公开内容将参照以下图形,在下面的优选实施例说明中提供详情,其中:
图1是方框/流程图,示出根据说明性实施例,用于解决并发程序中数据流计算的系统/方法;
图2是示出具有控制状态c和带!与?的转换指定的模板进程U的图形,用于演示根据本发明原理的操作;以及
图3是示出根据本发明原理的固定点计算的图形,示出通过几次迭代的进展。
具体实施方式
所示实施例涉及计算机系统验证,并且更具体地说,涉及并发程序验证,如用于控制象硬盘驱动器、音频扬声器等硬件组件的装置驱动程序。在特别有用的实施例中,利用了计算机系统的参数化性质,其中,并发程序由许多个相同硬件或软件组件的复制组成。另外,所示实施例适用于其它应用程序,如,在象蜂窝电话、个人数字助理(PDA)等移动装置中使用的嵌入式软件、数据库软件、SQL服务器、象web浏览器(FirefoxTM、ExplorerTM)等应用级软件或使用并发的任何应用程序。
交互作用下推系统的模型检验是构成并发程序数据流分析基础的核心问题。但是,它只对非常受限制的时态逻辑分段可判定。基本的障碍是两种上下文无关语言交集非空的检验的不可判定性。通过使同步原语表达充分,或者模型检验的属性足够强,可精确接受这些PDS接受的上下文无关语言的交集,从而耦合两个不同下推系统(PDS)并不难。这产生了模型检验问题的不可判定性。但是,根据本发明原理,利用了将并发系统许多重要类参数化,即类由少数基本类型组件的许多重复复制组成。
根据本发明原理,一般困难的问题无需解决。我们利用了许多并发程序参数化的事实,即,由相同基本组件的许多重复复制组成。实际上,对于用于组网、高速缓存一致性、同步的大多数分布式协议,实现协议的完全相同的代码段在不同机器上运行,从而使其参数化。因特网可视为计算机网络,每个计算机运行TCP/IP协议。其它示例包括具有多线程的多核架构。实际上,假设装置驱动程序准确运行,而不考虑执行它的线程数量。
提供了新的有效过程间数据流分析系统和方法用于参数化多线程程序。问题简化为对交互作用PDS进行模型检验的问题,其中,所有PDS是相互的复制。迄今有关分析参数化程序的在先工作限于在线程(PDS)之间无有效通信且因此实用价值低的模型。在本公开内容中,我们考虑了更强大和现实的模型,其中,PDS可经锁、会合(例如,来自JavaTM的WaitNotify())或广播(例如,来自JavaTM的WaitNotifyAll())交互作用。因此,过程间分析扩展到用于现实通信模型的参数化并发域。
我们考虑由有限但任意多的线程固定集合的复制组成的并发程序的模型检验问题,这经常称为参数化模型检验问题(PMCP)。将每个线程建模为PDS,我们为每个标准同步原语描绘了用于索引线性时态逻辑(LTL)的PMCP可判定性边界。我们的结果得出了令人吃惊的结论:在许多关注情况下,PMCP,即便看起来是更难的问题,也比对固定数量PDS进行模型检验的问题更易于处理。例如,对于经成对会合交互作用的PDS,用于可达性(存在数据竞争)的PMCP可高效地判定,而对具有两个此类(即使同构)PDS的系统进行模型检验却是不可判定。高效判定PMCP对于例如象LinuxTM装置驱动程序等参数化应用程序是非常重要的。然而,我们结果的更广泛现实意义在于即使我们不关注参数化推理,而只关注对具有固定数量的可能不同的线程U1,...,Um的系统U1‖…‖Um进行模型检验,因此,在许多情况下,为具有任意多U1,...,Um复制的对应参数化系统考虑PMCP也会更有用。
根据本发明原理的实际应用包括用于调试并发多线程软件的应用,考虑问题的参数化形式更易于处理。例如,如果我们要检测具有两个LinuxTM装置驱动程序T1和T2的并发程序T1||T2中的数据竞争,则考虑具有任意数量T1和T2复制的系统T1 n||T2 m的相同问题将更高效且更易于处理。令人吃惊的是虽然这看似较困难的问题,但实现上却更易于处理得多。
应理解,图中所示的要素可以硬件、软件或其组合的各种形式实现。优选是这些要素可存储在计算机介质上,并且以软件形式,在具有处理器和存储器和输入/输出接口的一个或多个适当编程的通用数字计算机上实现。软件可包括但不限于固件、常驻软件、微代码等。
本发明的实施例可采取完全硬件实施例、完全软件实施例或包括硬件和软件要素的实施例形式。在优选实施例中,本发明通过软件实现,软件包括但不限于固件、常驻软件、微代码等。
实施例可采取可从计算机可用或计算机可读介质存取的计算机程序产品形式,介质提供程序代码以便供计算机或任何指令执行系统使用或与其结合使用。计算机可用或计算机可读介质可包括存储、传递、传播或传送程序以便供指令执行系统、设备或装置使用或与其结合使用的任何设备。介质可以为电子、磁性、光学、电磁、红外或半导体系统(或设备或装置)或传播介质。例如,介质可包括计算机可读介质,如半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘等。
现在参照附图,附图中类似的标号表示相同或类似的要素,并且从图1开始,它以示意图方式示出显示用于验证并发程序的系统/方法的方框/流程图。假定有由任意数量ni的模板线程Ui的复制组成的形式系统族。每个模板Ui可建模为下推系统(PDS)。PDS具有有限控制部分和为递归建模的栈。形式上,PDS是五元组P=(P,Act,Γ,CO,Δ),其中,P是控制状态的有限集合,Act是包含空动作e的动作有限集合,r是有限栈字母表,以及 是转换规则的有限集合。如果((p,γ),a,(p′,w))∈Δ,则我们得出P的配置(configuration)是一对(p,w),其中,p∈P表示控制位置,并且w∈Γ*表示栈内容。我们称c0为p的初始配置。p的所有配置集合表示为C。对于每个动作a,我们定义关系如下:如果则对于每个ν∈Γ*,
我们使用{Ul,...,Um}表示由ni个模板Ui的复制的交织并发组合形成的并发程序(或线程)族第j个Ui复制表示为Uj[i],经标准同步原语与其它线程通信,这些原语有锁、成对或异步会合、广播和析取性布尔保护。成对会合由通信系统的演算(CCS)启发(例如,用于撰写并发程序的语言),而异步会合和广播用于为JavaTM的Wait/Notify和Wait/NotifyAll原语建模。的语义以通常方式定义,并因此被忽略。为简明起见,我们将用于具有单个模板的参数化系统和用于双索引属性的结果公式化。在已知Un的全局计算x的情况下,我们使用x[i,j]表示通过将x投射到线程U[i]和U[j]的局部计算序列而产生的序列。
正确性属性。已知模板U,我们考虑ΛijEg(i,j)形式的双索引属性,其中,g(ij)是在复制U[i]和U[j]局部控制状态范围解释的LTL\X属性。注意,由于对称原因,因此,在Un|=Eg(1,2)时,Un|=Λi,jEg(i,j)。我们因此限制自身为Eg(1,2)形式的属性。对于此逻辑,我们基于如上所述正确性属性中允许的时序算子,遵循分类L(Opl,…,Opk)。我们观察到双索引LTL\X是可将许多关注属性编码的一种丰富逻辑。例如,存在数据竞争可用公式表示为双索引公式EF(c1∧d2)。
已知PDS族,对于由许多类似组件(如运行象磁盘驱动器、音频扬声器等硬件的装置驱动程序)和逻辑时序属性f组成的并发程序,在方框12计算f的截止。如果对于所有n≥c,在Uc满足f时Un满足f,则c称为截止。这将问题简化为调试具有最多截止数量进程的系统。
在方框14,要计算这些截止,采用加权多自动机。这些截止的计算简化为加权自动机的封闭前(pre* closure)计算,这些计算可以在源代码大小的多项式时间中高效地执行。一旦截止已计算,在方框16便可对截止大小的结果系统进行模型检验。使用的技术取决于线程使用的通信原语,并且技术可能已知。
本发明实施例将过程间数据流分析扩展到线程之间通信的实际模型的参数化并发域。所有标准JavaTM通信原语均可建模。所示实施例可扩展性更强,即,可潜在验证比现有技术更大的程序,并通过避免给定程序的全局状态空间构造,由此绕过了状态爆炸问题而实现此验证。分析从并发多线程程序简化为其各个线程。
方法不但合理而且完整,由此避免了可由更不精确技术产生的伪错误痕迹(bogus error traces)。从商业角度而言,这很重要,因为现实验证中消耗的大多数资源是用于检测/避免伪错误痕迹。
不可判定性障碍:我们先为由甚至不相互交互作用的PDS组成的系统的PMCP显示两个不可判定性结果。
PMCP的可判定性取决于正确性属性中允许的时序算子集合,由此提供了表征PMCP可判定的双索引LTL分段的自然方式。在一个示例中,我们使用L(Opl,…,Opk)(其中Opi∈{F,U,G})表示由Ef形式的公式组成的分段,其中,f是肯定范式(PNF)中的双索引LTL\X公式,即,只有原子命题被否定,通过使用时序算子Opl,...,Opk和布尔连接∨和∧建立。此处,F“有时”,U“直至”和G“始终”表示标准时序算子,并且E是“存在路径量词”。L(U,G)是充分发展的双索引LTL\X。
对于由非交互作用PDS组成的系统,用于L(U)和L(G,F)的PMCP不可判定。它的重要影响是对于其中PDS使用一些同步机制交互作用、更富于表达的系统,我们只需要关注剩余分段,例如,L(F)和L(G)。
成对和异步会合:假设{U}为由建模为经成对会合同步的PDS的模板进程U定义的参数化族。此处,∑是U的动作符号集合,由内部转换标记的集合∑in、分别为发送和接收成对会合转换的集合∑pr×{!}和∑pr×{7}组成。我们假设同步转换,即由∑pr×{!}∪∑pr×{?}中动作标记的那些转换不修改执行转换的PDS栈。对于动作l∈∑pr,标记有l!和l?的一对转换称为匹配。我们记得,对于r∈∑pr×{!}∪∑pr×{?},如果在局部状态c存在Un的进程U[j],则Un的进程U[i]的转换在全局状态s中启用,其中j≠i,使得在Δ中存在形式的匹配转换。为执行会合,成对发送和接收转换tr1和tr2均必须在一个原子步骤(atomic step)中同时触发(fire)。
我们为经成对和异步会合交互作用的PDS呈现了用于L(F)和L(G)的PMCP的判定过程。我们先呈现用于计算U的所有参数化可达控制位置集合、可证明有效的过程。这不但是阐述用于L(F)和L(G)的过程所需要的,而且也单独受到关注,因为检测存在数据竞争可简化为判定参数化可达性。
参数化可达性:我们假设,如果对于某一n,进程在控制状态c(配置c)时存在Un的可达全局状态s,则模板进程U的控制状态c(配置c)参数化可达。
可以看到,如果U的配置c参数化可达,则已知l的情况下,对于某一k,存在具有至少l个c复制的Uk的可达全局状态s。换而言之,我们可以将U的每个参数化可达配置的重数增至任何任意大的值。这减轻了我们跟踪U的每个配置重数的负担。
无限制重数:假设R为U的所有参数化可达配置的集合,并且假设R′为R的有限子集。随后,已知l,对于某一m,存在Um的有限计算,导致具有R′中每个配置至少l个复制的全局状态s。
虽然对于U是有限状态标记转换系统的情况,计算参数化可达控制状态可经简单的固定点计算完成,但对于PDS,由于要同时满足由同步原语和栈引入的上下文无关可达性而产生的约束,计算会变得复杂。
参照图2,它示出了用于确定可达性的示例模板进程。考虑模板进程U。假设我们要判定对于某一n,是否有 我们从只包含U的初始状态c0的集合R0={c0}开始。随后,我们构建一系列集合R0,...,Rm,其中,Ri+1是在假设Ri中所有状态均参数化可达的情况下,通过添加变为参数化可达的新控制状态而从Ri获得。在从Ri构建Ri+1中,我们需要确保两个约束均得到满足,即(i)同步原语和(ii)上下文无关可达施加的约束。我们以吻合的方式实现此需要。
首先,为满足同步约束,我们转变形式的所有转换,使得存在形式的转换,其中,p和p′是匹配的发送和接收会合动作,c∈Ri,将所有转换转变为型的内部转换,其中,τ是∑in中的新引入特定内部动作符号。激发此转变的情况是由于c是参数化可达,因此,我们可确保如果α变为参数化可达(现在或某一将来迭代中),则对于某一m,存在Um的可达全局状态,进程每个在局部状态α和c。换而言之,如果α变为可达,则会合转换可始终被启用和执行。因此,它可类似于内部转换来对待。这样,通过涌出(flooding)Ri的所有控制状态,我们可移除由源于Ri中控制状态的成对发送或接收转换产生的所有同步约束。这将允许每个会合转换具有从Ri中控制状态开始的匹配发送/接收。此类转换因此可由内部转换替换。受此激发,我们通过将如上所述适当的成对会合发送/接收转换用内部转换替换,并移除剩余会合发送和接收转换,来将Ui+1定义为我们从原模板U获得的模板。
要检验满足第二约束,即上下文无关可达性,我们现在可使用对单个PDS进行模型检验的任何过程,以确定在单个PDS Ui中可达的U的那些控制状态的集合这为我们提供了在Ui中所有上下文无关可达状态的集合如果经移除以前集合中的一些同步约束后,新控制状态变为可达,则它们添加到Ri+1;否则,我们到达了固定点,并且过程终止。
参照图3,在示例中,R0初始化为{c0}。这允许实现两种转换和因此,它们均可转变为内部转换,产生模板U1。在第二次迭代(U2)中,我们注意到c5、c6、c8和c9全部为模板U1的可达控制状态,因此,R1={c0,c5,c6,c8,c9}。现在,由于c0和c5均在R1中,因此,会合转换和可启用,并且可转变为内部转换,产生模板U2。在U2中,控制状态c2、c4和c7现在变为可达,并且因此添加到R2,从而产生R3={c0,c2,c4,c5,c6,c7,c8,c9}。最后,由于控制状态c4和c6均是∈R3,因此,会合转换和转变为内部转换,产生模板U3。由于c1和c3是U3的可达控制位置,因此,这些控制位置现在包括在R4中,由此达到固定点,并导致过程终止。由于c1∈R4,因此,我们断定c1是参数化可达。下面提供了方法A的形式描述。方法A返回U的参数化可达控制状态集合。
方法A:初始化i=0和R0={c0},其中,c0是U的初始状态。接着,i=i+1。通过替换形式的模板U的每个成对发送(接收)转换,使得存在形式的匹配接收(发送)转换,其中,c∈Ri-1,将这些转换替换为内部转换并移除剩余成对发送或接收会合转换,构建PDS Ui。使用用于对单个PDS进行模型检验的过程,计算Ui的上下文无关可达控制位置的集合集合 除了初始化步骤之外,执行这些步骤直至返回Ri。
复杂性分析:我们先注意到在方法A的每次迭代中,我们添加至少一个新控制状态到Ri。因此,方法最多|Q|次终止,其中,Q是U的控制状态集合。在第i次迭代期间,我们需要为Q、Ri中的每个控制状态判定其是否在Ui+1中为上下文无关可达,这可通过使用用于PDS的模型检验过程,在O(U|3)时间内实现,其中,|U|是U的大小。每个步骤因此最多占用O(|U|1)时间。因此,整个方法在O(|U|3)内运行。控制状态可达性的参数化模型检验问题,及因此用于由经成对会合交互作用的模板PDSU组成的系统的EF(c1∧...∧ck)(数据竞争)可在O(|U|5)时间内判定,其中,|U|是U的大小。
异步会合:用于判定经异步会合交互作用的PDS的PMCP的过程基本上与方法A相同,异步会合比成对会合更富于表达。需要进行小的修改以考虑到异步会合稍微不同的语义。该唯一的差别在于异步发送转换可在无论是否存在匹配接收的情况下执行。另一方面,接收转换确实要求当前启用的匹配发送,发送和接收转换随后以原子方式(atomically)触发。现在,在方法A中构建PDSUi修改如下:我们将形式的模板U的每个异步发送转换替换为内部转换另一方面,要将形式的接收转换替换为内部转换我们需要测试是否存在形式的匹配发送转换,作cRi-1剩余的接收异步会合转换被移除。方法的时间复杂性保持相同。
扩展到多个模板:首先,R0包含每个模板U1,...,Um的初始控制状态。集合Ri现在跟踪在任何模板中直至第i次迭代检测到的参数化可达控制状态并集。最后,在方法A中,对于每个1≤j≤m,我们通过将在模板Uj中具有在任何模板中形式的已启用匹配接收/发送转换的每个会合发送/接收转换替换为内部转换其中c∈Ri-1,从而构建PDSUj。
用于L(F)的模型检验过程:从给定模板U=(P,Act,Г,cn,Δ),我们定义新模板R=(PR,Act,Г,c0,ΔR),其中,PR是U的参数化可达控制状态集合,并且ΔR是在PR状态之间U的转换集合,每个成对会合发送或接收转换转变为内部转换。假设f为Eg(1,2)形式公式,其中,g(1,2)是双索引LTL\X公式,具有在U[1]和U[2]上的原子命题。随后,如果我们将关于f的推理限制到有限计算路径,则对于某一n,如果就有,其中,仅在有限路径上量化(quantify)。
在将PMCP简化为二进程实例之后的直觉是由无限制重数结果产生的洪泛式变元。如果f具有长度l的有限计算x,如作为模型,则至多l个成对发送或接收转换沿x触发。通过无限制重数引理,对于某一m,存在计算y,对于某一m导致Um的可达状态,具有UR的每个控制状态的至少l个复制。在具有Um+2个进程的系统中,我们先假设进程U3,...,Um+2执行y以涌出重数至少l的UR所有控制状态。随后,我们得到的保证是在长度不大于l的U[1,2]任何计算x中,会合转换可始终经与进程U3,...,Um+1之一的同步触发,并因此可视为内部转换。
因此,我们得出:(二元简化结果)。对于Un的任何有限计算x,其中,n≥2,存在的有限计算y,使得y模糊等效(stutteringequivalent)于x[1,2]。作为一个直接推论,得出如果f具有对于某一m为Um有限计算的模型,则对于某一k,如果 则Uk|=f。具体而言:
推论对于L(F)的任何公式f,对于某一m,
如果 则Um|=f。
注意,上述结果为经成对或异步会合交互作用的PDS将用于L(F)的PMCP简化为仅由已知可高效判定的两个非交互作用PDS组成的系统的(标准)模型检验。作为一个推论,我们得出,用于L(F)的PMCP在U大小的多项式时间中是可判定的。
计算截止:我们假设如果对于m≥cut,在Ucut|=f时,Um|=f,则cut是时态逻辑公式f和由模板U定义的参数化族的截止。存在公式f的截止是有用的,因为它将用于f的PMCP简化为用于具有最多截止数量U复制的系统的有限数量标准模型检验问题。假设B(F)为使用时序算子AF、布尔算子∨和∧及原子命题建立的分支时间公式(branching time formulae)集合。我们显示如何为L(F)公式计算截止,并随后将此扩展到处理B(F)公式。计算截止的一个动机在于它是用于L(G)公式的PMCP的判定过程中的一个步骤。当然,也可以使用截止方案也对L(F)公式进行模型检验。
用于L(F)公式的截止:我们首先观察到用于L(F)公式f的截止cut与沿满足f的有限计算触发的会合转换数量有关。假设x是对于某一n的Un的有限计算,满足f。对于U的每个会合转换tr,假设ntr是tr沿x[1,2]触发的次数。在不失一般性的情况下,我们假设每个会合发送/接收转换tr在U中具有表示为tr的唯一的匹配接收/发送转换。对于每个控制状态c,假设Trc是c→d形式的成对会合发送或接收转换tr的集合,使得tr沿x[1,2]触发。此外,对于U的每个控制状态c,假设随后,可根据nc的值得出用于f的截止。
作为朝向该方向的第一步骤,我们显示如果cut使得存在具有每个控制状态c至少nc个复制的Ucut可达全局状态,则通过使用洪泛式变元,我们得出:cut′+2是用于f的截止。接着,我们从nc估计cut的上限。我们将方法A的第一次迭代表示为ic,其中U的控制状态c先添加到Ri。随后,我们得出Um|=EFc,其中, 对于U的每个控制状态c,假设Nc为用于EFc的截止。因此,cut≤∑ceRncNc。
计算cut的问题因而简化为计算ntr和Nc的限制(bounds)。我们从ntr开始,这是对于某一m,沿Um的计算触发的成对会合转换数量,满足给定L(F)公式。我们先考虑L(F)公式是单索引的情况,即,原子命题只在一个进程范围解释。为此,在不失一般性的情况下,我们假设U的每个控制状态是参数化可达,否则,我们只移除不可达状态和相关联转换。此外,通过使用相同的洪泛式变元,我们得出U的每个控制状态可通过任意重数涌出。因此,在推理有限计算时,我们可将每个会合转换视为内部转换。这简化了分析,因为只推理单个模板U便已足够,无需推理参数化族{U}。
用于PDS的这些限制计算由于栈引入的上下文无关可达性而变得复杂。要处理该计算,我们可利用加权多自动机(WMA)的概念,这是每个其转换标记为非负整数的多自动机(MA)。WMA以前已用于数据流分析。但是,它们在此处用于不同的目的,例如,用于估计在两个控制状态之间转换中触发的成对会合转换数量限制。直观上,标记WMA转换s→t的权值指示需要触发以便获得从s到t的会合转换数量上限。
加权多自动机(WMA)可定义如下。已知PDS P=P,Γ,co,Δ),加权多自动机是元组M=(Γ,Q,δ,w,I,F),其中,M′=(Γ,Q,δ,I,F)是多自动机,并且W:δ→Z是将M的每个转换映射到非负整数的函数。M的有限路径x的权值定义为沿x出现的所有转换的权值之和。已知M的状态s和t,我们使用表示在M中有从s到t、标记为u且具有权值b的路径。要估计沿满足f的计算触发的会合转换数量限制,我们继续为f构建WMA Mf,这将捕捉满足f的U所有配置的(正规)集合。随后,如果b是用于Mf中(c0,⊥)的接受路径的权值,则我们显示存在U的路径,沿该路径,最多触发b次成对会合转换。
由于L(F)公式是使用算子F、∨和∧建立的,因此,为了构建Mf,已知用于g和h的WMA,显示如何构建用于Fg的WMA、g∧h和g∨h便已足够。随后,已知L(F)公式f,从用于f原子命题的WMA开始,由内向外这些构造的重复应用可提供Mf。
定义:
多自动机:假设为下推系统,其中,P={pl,...,pm}。P多自动机(简称为P-MA)是元组A=(Γ,Q,δ,I,F),其中,Q是状态的有限集合, 是转换集合, 是初始状态集合,以及 是最终状态集合。每个初始状态si对应于P的控制状态pi。我们将转换关系 定义为满足以下要求的最小关系:
多自动机可视为一种数据结构,用于简洁地表示(可能无限的)给定PDS配置正规集合。为此,我们假设如果对于某一q∈F,则多自动机A接受配置(pi,w)。由A识别的配置集合表示为Conf(A)。配置集合由某一MA识别时是正规的。
交替下推系统:假设P=(P,Act,Γ,c0,Δ)为下推系统。APDS是五元组P=(P,Γ,Δ),其中,P是控制位置的有限集合,Г是有限栈字母表,以及是转换规则的有限集合。对于(P,γ,S)∈Δ,每个后续(successor)集合为{(p1,w1),...,(pn,wn)}∈S形式,表示P转换,并且表示为(p,γ){(p1,w1),...,(pn,wn)}。由于不确定性原因,可能每对控制状态p和栈字母表γ有多个后续集合,所有这些对均由集合S捕捉。P的配置是一对(p,w),其中,p∈P表示控制位置,并且w∈Γ表示栈内容。P的所有配置的集合表示为C。如果(p,γ){(p1,w1),...,(pn,wn}},则对于每个w∈Γ*,配置(p,γw)是集合(p1,w1w,...,pn2wnw)的直接前趋(predecessor),此集合称为(p,γw)的直接后继。我们使用→表示直接后继关系。注意,从配置(p,γw)触发转换(p,γ){(p1,w1),...,(pn,wn)}会使APDS转移到配置(p1,w1w,...,pn,wnw)中。
用于初始配置c的一连串P是根为c的配置树,使得节点c′的子项是属于其直接后继之一的配置。我们定义在配置与配置集合之间的可达性关系非正式的情况是:仅在C是从c开始的一连串P的有限边界时, 正式的情况是,是的最小子集,因此,
·对于每个c∈P×Γ*,
·如果c是C的直接前趋,则
·对于每个1≤i≤n,如果 和 则
交替多自动机:假设P=(P,Γ,Δ)是APDS系统,其中,P={p1,...,pm}。交替P多自动机(简称为P-AMA)是元组A=(Γ,Q,δ,I,F),其中,Q是状态的有限集合, 是转换集合, 是初始状态集合,以及 是最终状态集合。我们将转换关系 定义为满足以下要求的最小关系:
如果对于某一 ,则AMAA接受配置(pi,w)。由A识别的配置集合表示为Conf(A)。已知有限序列w∈Γ*和状态q∈Q,从q开始在w上的一连串A是有限树,其节点由Q中的状态标记,并且其边由Γ中的符号标记,从而使根由q标记,并且其它节点的标记与δ一致。在此类树中,可观察到,从根到叶的边的每个序列用w标记。配置集合由某一AMA识别时是正规的。
用于∨的加权自动机。假设M1=(Γ,Q1,δ1,w1,I1,F1)和M2=(Γ,Q2,δ3,w3,I2,F2)为两个WMA。随后,我们可以通过首先重命名M1的每个初始状态s为s′,M2的每个初始状态s为s″,构建接受由M1和M2接受的配置并集的WMA M。随后,我们经标准并集构成 定义多自动机M=Ml∨M1,其中,对于转换ir∈Ri,δ(lr)=δ1(tr)、和I是新引入初始状态sl,...,sm的集合,这些状态对应于模板U的控制状态pl,...,pm,并且δ12是零权值转换∪l 和的集合。
用于∧的加权自动机。假设M1=(Γ,Q1,δ1,w1,I1,F1)和M2=(Γ,Q2,δ2,w2,I2,F2)为两个WMA。随后,我们可以经标准积构成M=(Γ,Q1×Q2,δ,w,I1×I2,F1×F2)构建接受M1和M2交集的WMAM,其中,如果和并且w是w1和w2的最大值,则状态(si,si)重命名为si以便确保对于U的每个控制状态Pi,有M的初始状态。
用于Fg的加权多自动机:假设M0为接受满足g的U的正规配置集合的给定WMA。从M0开始,我们构建一系列WMA M0,…,Mm,从而产生了WMA Mm。从MA的定义,我们记得对于U的每个控制状态pi,有M0的初始状态si。我们通过表示Mk的转换关系。随后,对于每个k≥0,通过保持状态集合并如下添加新转换,从Mk获得Mk+1:(i)对于每个内部转换Pl→Pl,我们添加具有权值0的转换(ii)对于每个成对会合发送或接收转换Pl→Pl,我们添加具有权值1的转换(iii)对于U的每个栈转换如果在Mk中存在从状态Sj到t、标记为u的路径x,则我们添加转换其中,wu是沿x发生的转换的权值和。注意,如果存在不止一个此类路径,我们可采用wu作为在所有此类路径上的最小加权。
对于U的配置s和t,假设表示存在从s到t的路径,沿该路径最多触发b次成对会合转换。随后,我们得出:如果则对于某一pk和v,因此其中,b=b1+b2。另外,如果q是初始状态si,则pk=pi,并且v=ε。用于f∨g和f∧g的WMA构成类似于用于自动机的标准并集和交集构成。
已知L(F)公式f,我们通过构建原子命题的MA并将其所有转换的权值设为0,先为f的每个原子命题构建WMA。接着,我们通过从原子命题开始由内向外遍历公式f,执行上述运算。假设Mf为结果WMA。使用上述结果,我们假设U的配置(q,u)为Mf接受,并且假设b是从q开始且标记为u的M的接受路径的权值。因此,存在从(q,u)开始并满足f的U的有限路径,使得沿该路径最多触发b次成对会合转换。
双索引公式:我们将计算双索引L(F)公式f的截止问题简化为单索引公式。在不失一般性的情况下,f的每个原子命题可假设为形式c或c,其中,c是U的控制位置。改写c为析取除c外U所有(有限多)控制状态,我们可从f移除所有否定。假设f=Eg。随后,通过尽可能抬高(driving up)g中的∨算子,我们可表示为g=gl∨...∨gk,其中,对于每个i,gi不包含∨算子。随后,用于Egl...Egk的截止最小值为用于Eg的截止。因此,计算用于Eg(1,2)的截止便足够,其中,g(1,2)是使用F、∧建立的公式,但未使用和作为Un中U[1]和U[2]控制状态的原子命题。
注意,通过g(1,2),我们可以关联(ci,dj)形式有序对的有限序列集合Seq,其中,c1(d1)为真,或者是发生在g(1,2)中的U[1](相应地为U[2]等)的控制状态,该集合捕捉满足ci∧di的全局状态可沿满足g(1,2)的计算路径出现的所有可能顺序。例如,通过公式其中,在U[j]当前处于局部控制状态ci时为真,我们可以关联序列 和 因此,如果在Seq和计算路径x中存在序列π:(c1,d1),...,(ck,dk),沿该路径存在以所列顺序满足cl∧dl,…,ck∧dk的全局状态,即x:gπ=cl∧dl∧F(c2∧d2∧F(…)),则∪n|=Eg(1,2)随后,用于fπ的截止限制最小值可提供所需的截止,其中,π∈Seq。最后,用于fπ的截止限制计算可经以下结果简化为单索引L(G)公式的计算。已知公式f=c1∧d1∧F(c3∧d3∧F(...)),用于f1=c1∧F(c2∧F(...))和f2=d1∧F(d2∧F(...))的截止和为用于f的截止限制。
计算Nc。已知U的控制状态c,我们现在显示如何计算Nc,即,用于EFc的截止。假设c为方法A第i次迭代中首先包括在Ri中。Nc的计算归纳在i上。如果i=0,即,c是U的初始状态,则Nc=1。现在,假设Nc对每个c∈Ri已知,其中,i>0。假设c∈Ri+1,Ri。因此,存在由导致c的Ri状态组成的Ui+1路径。通过使用WMA,我们可以为每个会合转换tr计算有关ntr的限制、沿满足EFc的Ui+1路径触发的次数tr。此外,由于通过归纳假设,我们知道用于Ri每个c的Nc值,因此,可确定用于EFc的截止,从而完成归纳步骤。
计算截止的示例:cut+2是用于f的截止。一旦所有控制状态c通过使用进程U3,...,Uk+2涌出,进程U1和U2便可执行x[1,2],其中,由U1或U2触发的每个会合转换与进程U3,...,Uk+2之一同步。对于U的控制状态c,假设Nc为EFc的截止,则 由于Nc是EFc的截止,因此,存在导致全局状态的的计算xc,进程在局部状态c中。为获得具有c的至少nc个复制的全局状态,我们假设的进程U[1],...,U[Nc]执行xc以达到具有c的至少一个复制的全局状态s1。接着,从s1开始,我们假设进程U[Nc+1],...,U[Nc+nc]执行xc以达到具有c的至少两个复制的全局状态s2。重复此进程nc次,产生具有c的至少nc个复制的全局状态为每个控制状态c重复此进程,随后提供所需的结果。
用于B(F)的截止。要生成用于B(F)公式的截止,我们先调用标准过程以便为μ算子(mu-calculus)公式进行PDS模型检验。我们先为给定公式f取给定PDS U与交替自动机/tableaux的积。此类积可建模为交替下推系统(APDS)。随后,用于f的模型检验简化为用于结果APDS配置正规集合的封闭前计算。这些正规集合可建模为交替多自动机(AMA)。
计算用于B(F)公式截止的过程类似于用于L(F)的过程,唯一的不同在于我们使用加权交替多自动机(WAMA)来捕捉公式的分支性质(branching nature),其中,状态现在可具有后继集合而不是只一个后继。因此,在标准AMA中,每个转换是集合(Q×Γ)×2Q的成员。注意,由于f是分支时间属性,因此,用于f的模型是U的计算树。因此,在执行封闭前计算的同时,我们需要跟踪沿至此遇到的计算树的每个分支触发的成对会合数量。但是,沿计算树不同分支触发的成对会合数量一般可能不同,并且因此,对于每个状态,需要为向外转换指定不同的权值。因此,每个转换现在均是集合(Q×Γ)×2Q×2的成员。
在封闭前期间更新权值,以便在已知用于g的WAMA条件下计算用于AFg的WAMA,可以如用于L(F)公式的类似方式执行,唯一的不同在于需要为每个后继更新权值。假设M0为接受正规配置集合的给定WAMA。从M0开始,我们构建一系列的WAMAM0,...,MP,从而产生了WAMA MP。我们通过→k表示Mk的转换关系。随后,对于每个k≥0,通过保持状态集合并如下添加新转换,从Mk获得Mk+1:(i)对于每个内部转换我们添加具有权值0的转换(ii)对于各成对会合发送或接收转换我们添加具有权值1的转换(iii)对于每个转换和每个集合我们添加新转换其中,对于每个j,bj是所有brj的最大值。其中,prj=qj。
用于L(G)的模型检验过程:推理具有无限模型的双索引LTL公式一般比推理具有有限模型的公式更难。这是因为现在要确保对于某一m存在Um的无限计算,沿该计算会合转换不但可无限次循环,而且可在保持上下文无关可达性时也是如此。但是,我们利用的事实是L(G)公式的对偶是属于Ag形式,其中,g使用时序算子F和布尔连接∧与∨建立。此类公式具有有限树状模型。但是,注意,如果 则 因此,如果我们采用f的对偶,则结果问题不再是PMCP。用于L(G)的PMCP方法因而如下:1.已知L(G)公式f,构建等效于f的B(F)公式g,即,如果Um|=g,则Un|=f。2.计算用于g的截止cut。3.对于每个m≤cut,检查是否Um|=g。
上面给出了用于为B(F)公式计算截止的过程。对于步骤3,检查对于每个m≤cut,是否Um|=g便足够,其中,f=g是L(G)公式。但对于具有经成对或异步会合交互作用的有限数量PDS的系统,用于L(G)公式的模型检验问题已经知道为可判定。因此,可示出如何构建等效于f的B(F)公式g。
析取性保护:我们考虑用于经析取性保护交互作用的PDS的PMCP。此处,U的转换标记为V(cl∨...∨ck)形式布尔表达式的保护,cl,...,ck是U的控制状态。在Un中模板U的复制U[i]中,U的转换改写为形式的转换。在Un中,如果存在除U[i]外的进程U[j]处于s中局部状态cl,...,ck至少之一,则U[i]的此类转换在Un的全局状态s中启用。具有经布尔保护通信的进程的并发系统通过Dijkstra的保护命令模型激发。用于经析取性保护通信的有限状态进程的PMCP已显示可高效判定。正如对成对会合一样,无限制重数结果成立。因此,如前面一样,可高效计算参数化可达控制状态集合。过程类似于用于经成对会合交互作用的PDS的过程,不同之处在于在从Ri构建Ri+1以便处理同步限制时,我们将形式的所有转换转变为形式的内部转换,其中,对于某一j∈[l,k]:cj∈Ri。激发此转变的情况是由于cj是参数化可达,因此,通过经无限制重数结果和洪泛式变元确保对于某一j,存在处于局部状态cj的进程,从而可始终启用转换我们得出:用于由经析取性保护交互作用的模板PDS U组成的系统的控制状态可达性的参数化模型检验问题可在O(|U|5)时间内判定,其中,|U是U的大小。
用于线性时间公式的PMCP:假设UR是我们从U获得的PDS,获得方式是只保持参数化可达控制状态和它们之间为内部转换或标记有析取性保护的所有转换,析取性保护转换具有至少一个参数化可达控制状态为析取。但是,我们将标记有析取性保护的每个此类转换替换为使得UR非交互作用的内部转换。我们先经洪泛式变元示出,对于任何双索引LTL\X公式g,对于某一n,如果 则 通过无限制重数属性,对于某一m,存在计算y,导致具有U的每个参数化可达控制状态至少一个复制的Um全局状态。在具有Um+2进程的系统中,我们先假设进程U3,...,Um+2执行y以涌出重数至少一的U的所有控制状态。随后,我们得到保证,在U[1,2]的任何计算x(有限或无限)中,因为在U3,...,Um+1中有进程处于每个可达控制状态,可始终触发标记有析取性保护的转换。所有此类转换因此可视为内部转换。
二元简化结果:对于Un的任何计算x,其中,n≥2,存在的计算y,使得y模糊等效于x[1,2]。注意,上述结果将用于任何双索引LTL\X公式f的PMCP简化为对具有用于f的两个非交互作用PDS的系统进行模型检验。得出的结果是我们只需要考虑分段L(F)和L(G)。对于这些分段,对具有非交互作用PDS的系统进行模型检验的问题已知为可高效判定。因此,用于经析取性保护交互作用的PDS的PMCP对于分段L(F)和L(G)可高效判定,对于分段L(U)和L(F,G)不可判定。
锁:我们考虑用于经锁交互作用的PDS的PMCP。利用上述确定的截止结果,我们得出,对于n≥2,如果U2|=f,则Un|=f,其中,f是双索引LTL\X公式。这将判定用于f的PMCP的问题简化为用于由经锁交互作用的两个PDS组成的系统的(标准)模型检验问题。
我们现在区分嵌套锁(nested lock)和非嵌套锁。PDS如果只可释放它获得且尚未释放的最后锁,则它以嵌套方式访问锁。对于具有经嵌套锁交互作用的两个PDS的系统,用于具有两个PDS的系统的模型检验问题已知为对关注的两个分段,即,L(F)和L(G)均可高效判定。因此,对于经嵌套锁交互作用的PDS,用于L(F)和L(G)的PMCP在给定模板U的控制状态数量的多项式时间中和在U的锁数量的指数时间中可判定。
对于非嵌套锁的情况,我们显示PMCP对于L(G)是可判定的,但对于L(F)不可判定。对于L(F),通过从系统的模型检验问题的简化可得出不可判定性结果,而系统由经用于已知为不可判定的公式EF(cl∧cl)的非嵌套锁交互作用的两个PDSP1和P2组成。
用于EF(c1∧c2)及因此用于L(F)的PMCP对于经非嵌套锁交互作用的PDS是不可判定的。对于L(G),可示出具有经用于L(G)公式f的锁交互作用的PDS的系统进行模型检验的问题可简化为用于两个非交互作用PDS的备用公式f′进行模型检验。已知模板U经锁ll,...,lk交互作用,我们构建具有(c,ml,...,mk)形式控制状态的新模板V。想法是在比特mi中存储U的复制当前是否拥有锁li,该比特在Ui拥有或不拥有li时分别相应地设为1或0。随后,我们可以通过从V移除所有锁,并转为假设获得/释放li的V每次转换设置mi为1/0,来将V转变为非交互作用PDS。但是,移除锁使得在U2中互斥的控制状态在V2中同时可达。为恢复锁语义,在为Eg形式的L(G)属性进行模型检验的同时,我们转为检验修改的L(G)属性E(g∧g′),其中,原子命题在全局状态s中评估为真,条件是在局部控制状态中,进程Vj在s中, 注意,g′确保在V1和V2的控制状态中,对于每个i,与锁li对应的mi项不可同时对V[1]和V[2]为1,即,U[1]和U[2]不可均保持同一锁li。随后,问题简化为对用于已知为可判定的L(G)公式的两个非交互作用PDS进行模型检验。这得出用于L(G)的PMCP对于经非嵌套锁交互作用的PDS可高效判定。
广播:我们考虑用于经广播通信的PDS的PMCP。此处,∑是U的动作符号集合,由内部转换标记的集合∑in以及分别为发送和接收广播转换的集合∑pr×{!!}和∑pr×{??}组成。象异步会合一样,启用的广播发送转换始终可触发。广播接收转换仅在存在已启用的匹配广播发送转换时才可触发。广播与异步会合不同之处在于执行广播发送转换不是只强迫一个进程触发,而是强迫具有匹配接收的所有其它进程触发。可以看到,对于经广播交互作用的PDS,用于成对可达性的PMCP,即EF(c1∧c2),是不可判定的。随后,得出的一个直接推论是用于L(F)的不可判定性结果。用于L(F)的PMCP对于经广播交互作用的PDS是不可判定的。
我们考虑对于广泛的时间属性类,用于经每个标准同步原语交互作用的PDS的PMCP。具体而言,我们已描述对于双索引LTL,用于经每个标准同步原语交互作用的PDS的PMCP可判定性边界。我们也演示了在许多关注的重要情况下,PMCP比标准模型检验问题更易于处理。新结果的现实意义在于在象LinuxTM装置驱动程序的许多应用程序中,考虑PMCP比标准模型检验问题会更有用。
在描述了用于参数化并发软件过程间数据流分析的系统和方法优选实施例(旨在说明而非限制)后,要注意,鉴于上述示教,本领域的技术人员可进行修改和变化。因此,要理解可对公开的特定实施例进行更改,这些更改如随附权利要求书概述的一样在本发明的范围和精神内。在如此描述了具有专利法要求的细节和特征的本发明各方面后,在随附权利要求书中陈述了受专利证书保护的专利权项范围。
Claims (12)
1.一种用于在计算机系统的并发程序中计算数据流的计算机实现方法,包含:
在给定线程的族(U1,...,Um)和线性时态逻辑属性f时为并发程序计算所述线性时态逻辑属性f的截止,其中,如果对于大于或等于c的所有n,在Uc满足f时Un满足f,则c称为所述截止,所述截止通过使用用于所述线程的内部转换的加权多自动机计算;以及
对截止数量的线程进行模型检验以验证所述并发程序中的数据竞争自由度,其中c和n是自然数。
2.如权利要求1所述的方法,其中所述模型检验步骤包括在具有至少两个不同驱动程序的并发程序中确立数据竞争自由度,每个所述至少两个不同驱动程序运行各自的线程,所述并发程序中确立数据竞争自由度是通过在由多个所述各自的线程复制组成的参数化系统中确立数据竞争自由度进行的。
3.如权利要求1所述的方法,其中所述模型检验步骤包括通过在包括不可判定并发程序的参数化系统中确立数据竞争自由度,从而在所述不可判定并发程序中确立数据竞争自由度。
4.如权利要求1所述的方法,其中所述线程被建模为下推系统。
5.如权利要求1所述的方法,其中所述线程使用同步原语相互交互作用。
6.如权利要求5所述的方法,其中所述同步原语包括成对会合、异步会合、析取性保护、广播、嵌套锁和非嵌套锁至少之一。
7.如权利要求1所述的方法,其中f是双索引线性时态逻辑属性。
8.如权利要求1所述的方法,其中为所述线程的内部转换使用加权多自动机包括估计在两个控制状态之间过渡时触发的转换数量的限制。
9.一种在计算机系统的计算机程序中计算数据流的计算机实现方法,包括:对于并发程序,在已知建模为下推系统、通过同步原语交互作用的线程族(U1,...,Um)和线性时态逻辑属性f时,通过计算在所述并发程序可达控制状态之间沿线程计算触发的转换数量的限制,计算所述线性时态逻辑属性f的截止,其中,通过在所述线程的内部转换上使用加权多自动机计算所述限制;以及
通过参数化模型检验,对截止数量的线程进行模型检验以验证所述并发程序中的数据竞争自由度,其中c和n是自然数。
10.如权利要求9所述的方法,其中所述模型检验步骤包括在具有至少两个不同驱动程序的并发程序中确立数据竞争自由度,每个所述至少两个不同驱动程序运行各自的线程,所述并发程序中确立数据竞争自由度是通过在由多个所述各自的线程复制组成的参数化系统中确立数据竞争自由度进行的。
11.如权利要求9所述的方法,其中所述模型检验步骤包括通过在包括不可判定并发程序的参数化系统中确立数据竞争自由度,从而在所述不可判定并发程序中确立数据竞争自由度。
12.如权利要求9所述的方法,其中所述同步原语包括成对会合、异步会合、析取性保护、广播、嵌套锁和非嵌套锁至少之一。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60/828,256 | 2006-10-05 | ||
US88404807P | 2007-01-09 | 2007-01-09 | |
US60/884,048 | 2007-01-09 | ||
PCT/US2007/080393 WO2008043007A1 (en) | 2006-10-05 | 2007-10-04 | Inter-procedural dataflow analysis of parameterized concurrent software |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101438234A CN101438234A (zh) | 2009-05-20 |
CN101438234B true CN101438234B (zh) | 2013-08-21 |
Family
ID=48964014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800122238A Expired - Fee Related CN101438234B (zh) | 2007-01-09 | 2007-10-04 | 参数化并发软件的过程间数据流分析 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101438234B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110113285A1 (en) * | 2009-11-10 | 2011-05-12 | Internationals Business Machines Corporation | System and method for debugging memory consistency models |
US9195436B2 (en) * | 2013-10-14 | 2015-11-24 | Microsoft Technology Licensing, Llc | Parallel dynamic programming through rank convergence |
CN103729523B (zh) * | 2014-01-22 | 2017-01-25 | 中国人民解放军国防科学技术大学 | 一种面向参数化系统的自动验证方法 |
CN108829905B (zh) * | 2018-04-03 | 2023-04-14 | 桂林电子科技大学 | 一种基于布尔代数和自由度分析的基准体系合理性检验方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1640018A (zh) * | 2002-01-08 | 2005-07-13 | Ipr特许公司 | 在无线通信系统的反向链路中维持保持信道 |
CN1719410A (zh) * | 2004-07-09 | 2006-01-11 | 微软公司 | 面向对象语言中并发程序的实现 |
-
2007
- 2007-10-04 CN CN2007800122238A patent/CN101438234B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1640018A (zh) * | 2002-01-08 | 2005-07-13 | Ipr特许公司 | 在无线通信系统的反向链路中维持保持信道 |
CN1719410A (zh) * | 2004-07-09 | 2006-01-11 | 微软公司 | 面向对象语言中并发程序的实现 |
Non-Patent Citations (2)
Title |
---|
FINKEL et al.A Direct Symbolic Approach to Model Checking Pushdown Systems(extended abstract).《Electronic Notes in Theoretical Computer Science》.1997,第9卷1-14. * |
YAHAV et al.LTL Model Checking for Systems with Unbounded Number of Dynamically Created Threads and Objects.《Technical Report TR-1424,Computer Sciences Department,University of Wisconsin,Madison》.2001,1-22. * |
Also Published As
Publication number | Publication date |
---|---|
CN101438234A (zh) | 2009-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Padon et al. | Ivy: safety verification by interactive generalization | |
Ma et al. | I4: incremental inference of inductive invariants for verification of distributed protocols | |
US8380483B2 (en) | Inter-procedural dataflow analysis of parameterized concurrent software | |
Konur et al. | Combined model checking for temporal, probabilistic, and real-time logics | |
Abd Elkader et al. | Automated circular assume-guarantee reasoning | |
Namjoshi et al. | On the completeness of compositional reasoning methods | |
Zhang et al. | A cylinder computation model for many-core parallel computing | |
Lomuscio et al. | Bounded model checking for knowledge and real time | |
CN101438234B (zh) | 参数化并发软件的过程间数据流分析 | |
Meyer et al. | Embedding hindsight reasoning in separation logic | |
Attie et al. | An abstract framework for deadlock prevention in BIP | |
Fokkink et al. | Cones and foci: A mechanical framework for protocol verification | |
Dong et al. | Towards verification of computation orchestration | |
Zhou et al. | Model based verification of dynamically evolvable service oriented systems | |
Molnár et al. | Component-wise incremental LTL model checking | |
Banda et al. | Analysis of linear hybrid systems in CLP | |
Tran | Symbolic Verification of TLA+ Specifications with Applications to Distributed Algorithms | |
Mokadem et al. | A new modality for almost everywhere properties in timed automata | |
Siirtola et al. | Algorithmic verification with multiple and nested parameters | |
Dsouza et al. | Generating BDD models for process algebra terms | |
Zhang et al. | Constraint-based automatic symmetry detection | |
Foo et al. | Protocol Conformance with Choreographic PlusCal | |
Kaufmann et al. | Global State Checker: Towards SAT-Based Reachability Analysis of Communicating State Machines. | |
Alur | Timed automata | |
Mannilthodi | Implementation of Multi-Valued Büchi Automata in the SpinJa Model Checker |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: NEC CORP. Free format text: FORMER OWNER: NEC LAB AMERICA INC. Effective date: 20131112 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20131112 Address after: Tokyo, Japan Patentee after: NEC Corp. Address before: New jersey, USA Patentee before: NEC Lab America Inc. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130821 Termination date: 20181004 |