模型检验安全性的参数化线程的制作方法

文档序号:6455829阅读:255来源:国知局
专利名称:模型检验安全性的参数化线程的制作方法
技术领域
本发明涉及计算机系统验证,更具体地说,涉及并发程序的验证, 所述并发程序开发了包括同 一硬件或软件组件的多个副本的计算机 系统的参凄史4b性质(parameterized quality)。
背景技术
为了确保计算机系统正确运作并且所获结果可信,需要计算机验 证。 一种形式的验证是测试。在测试时,对一組输入检查系统的实际 行为,并将其与预期结果进行匹配。鉴于巨大或无穷数量的可能输入, 因此证实系统在所有情形中都正确运转是不可能的。
验证试图解决这些问题。验证提供用于模拟系统行为的数学或模 型基础。定义模型及其预期行为。通常将机器建模成状态随时间演变 的系统,该模型包括对状态空间以及系统如何遍历状态空间的说明。 已表明,时序逻辑可用于表示反应式系统的行为。模型检验(model-checking)的验证方法包括取所考虑系统的数学模型并检验 模型内的时序逻辑公式的有效性。
已知,所有方法面临的主要问题是状态爆炸。状态爆炸是指,所 考虑系统的状态空间随着所用存储器(如寄存器、或程序变量、指针 等)的量的增大而快速(如按指数)增长。这限制了验证方法。
多线程是开发计算机系统的不同组件间的并行性的标准方法。因 此,并发多线程程序的使用正变得普及。实例包括操作系统、数据库、 嵌入式系统(蜂窝电话、多媒体消费型产品)等。因为验证通常不适 用于大规模并发程序,所以对平衡(leverage)静态分析技术、如用于 调试多线程程序的过程间数据流分析有着浓厚的兴趣。尽管已表明过 程间数据流分析是查找顺序程序的错误(bug)的非常有效的技术, 但是却很少有与将这种数据流分析扩展到并发域有关的工作。

发明内容
数据流分析平衡下推系统(pushdown system)的非常强大的范例 的使用,该范例是可以统一方式表示许多不同种类的数据流分析的广 义框架。对并发域的PDS的模拟是交互式PDS的模型。不幸的是, 模型检验对交互式PDS的问题只对于非常有限种类的性质是可判定 的。
近年来,下推系统(PDS)已经成为用于对顺序程序的过程间数
据流分析有效编码的强大的统一框架。PDS具有对应于程序变量的估
值的有限控制部分和提供模型递归方式的栈。然后,数据流分析利用
这样的事实PDS的模型检验问题对于极具表达力的属性(property)
种类(线性和分支时间)可判定。这种强大的框架不仅可用于对许多
不同数据流分析进行编码,而且在多种情况下,还可严格地导致比经
典的过程间数据流分析所提供的数据流框架更具表达力的数据流框
恕 木。
这突出了 (i)数据流分析与PDS的模型检验问题之间的紧密关联;以及(ii)PDS作为对程序建模的自然框架的有用性。与顺序情形 类似,并发多线程程序的过程间数据流分析可用公式表示为对交互 PDS的模型检验问题。但是,此问题不像单PDS的问题那样可坚定地 判定。实际上,关^t的不可判定性结果表明,对于只具有两个经由CCS 类型(CCS或通信系统演算是书写并发程序的语言)的成对会合 (pairwise rendezvous)同步的PDS的系统,即使是类似可达性的筒 单属性也变得不可判定。可表明,不可判定性结果即使对经由锁定进 行交互的PDS也有效。对于经由诸如锁定、成对和异步会合以及广播 的每一种标准同步原语进行交互的PDS,可精确地勾画出可判定性/ 不可判定性边界。对于经由锁定进行交互的PDS,如果锁定是嵌套式
的且正确性属性限于片段L(X,F,i),则模型检验问题可判定。但是, 如果允许PDS经由更具表达力的原语、如成对会合和广播进行交互, 则只能对(非常有限的)片段L(G, X)保证可判定性。这里使用
L(Opi,…,Opk)(其中Opi e {X,F,U,G;})来表示包含定式EF的公式的片段, 其中F是肯定范式(positive normal form)的双指数(double-indexed) 线性时序逻辑(LTL)公式(其中只否定原子命题),它是利用操作
数Opi..... Opk以及布尔连接符V和A构建而成的。
这些结果之所以有用是因为,它们精确地识别了双指数LTL的模 型检验可判定的那些片段,从而改善了对位于并发程序的数据流分析 的极其核心的重要问题的理解。但是,作为不幸的推论,我们认为, 对于经由诸如会合和广播的常用原语进行交互的PDS,无法对例如数 据竟争的可编码为成对可达性、例如定式EF(dAc2)的公式的属性进 行模型检验。这令人沮丧,因为数据竟争自由是关于并发程序的将要 检验的最基本的属性之一。对这些结果的分析显示,对交互式下推系 统进行更易于处理的分析的根本障碍是检验两种上下文无关(context free)语言的交集的非空性的不可判定性。这意味着,在包含两个PDS 的系统中,如果这两个PDS之间的耦合强到足够接受这些PDS所接 受的上下文无关语言的交集,则模型检验问题变得不可判定。
7这种强耦合可通过以下方法达到(i)使同步原语具有足够强的表 达力,例如成对会合或广播;或(ii)使正在进行模型检验的属性足够 强。原则上,这是并发程序的数据流分析的可判定性中的巨大障碍。
但是,我们利用这样一个关键观察结果实际上,系统往往是参 数化的,即系统包含几种基本类型的子组件的多个副本。值得强调的 是,由于通常没有很好的理由要非常不同地设计系统这一 简单事实, 所以这种系统设计范例(即,复制)实际上较为重要。出于经济原因, 利用和再利用同一个基本子组件的多个副本明显有优势。其中,实例 包括用于联网、高速緩存一致性、同步的重要协议以及运行多线程软 件、设备驱动程序的多核体系结构。在参数化上下文中,模型检验问 题通常称为参数化模型检验问题(PMCP),它将判定时序属性是否 对包含模板进程U的任意数量n个副本的系统ljn有效。实际上,希 望为不只包含2个或3个执行给定设备驱动程序的线程、而是包含任 意数量的线程的系统建立数据竟争自由。这显然很重要,因为具有固 定数量的线程的系统的正确性本质上并没有为任意数量的线程建立 正确性。实际上,已经有多个驱动程序实例,它们经证实对于2进程 实例是正确的,但对于3进程实例则不正确。
当可将U建模为有限状态标示转换系统时,存在PMCP情形。很 难将程序、尤其是递归如实地建模为有限状态系统。可将程序更准确 且自然地建模为PDS,对于PDS存在很少的现有工作。因此,对经由 诸如成对和异步会合、广播、锁定和布尔保护——合取(conjunctive) 和析取(disjunctive)的每一种标准通信原语进行交互的PDS考虑 PMCP。我们集中在k-阶(k-wise)可达性上,例如定式EF(dA...Ack)
的正确性,其中d..... Ck是对模板建模的PDS的控制状态。注意,
可将数据竟争表示为成对可达性。
一种用于计算计算机系统的并发程序、例如控制计算机硬件(如 磁盘驱动器、音频扬声器等)的设备驱动程序中的数据流的系统和方 法包括给定包括多个类似组件的并发程序,为并发程序间的交互初始化可达控制状态集合。基于该可达控制状态集合,去除控制状态之 间的同步构造。用内部转换取代同步构造。添加通过同步构造的去除 而揭示的新可达控制状态,其中,这些新可达控制状态是通过利用对 单线程进行模型检验而发现的。通过审查完整的可达控制状态集合来 验证上述多个并发程序的数据竟争自由。
另 一种用于计算计算机系统的计算机程序中的数据流的系统和
方法包括将并发程序建模为具有多种配置的下推系统;初始化可达 控制状态集合;基于该可达控制状态集合,去除同步构造;用内部转 换取代同步构造;对系统进行模型检验以确定上下文无关可达性,以 便找到单线程的新控制状态;添加通过模型检验所揭示的新可达控制 状态;重复进行,直到找不到新控制状态为止;以及,基于完整的可 达控制状态集合解决参数化模型检验问题。
通过结合附图阅读以下对其说明性实施例的详细描述,这些及其 它特征和优点将变得显而易见。


本公开将参照附图在优选实施例的以下描述中提供细节,附图

图1是根据说明性实施例示出用于解决参数化模型检验问题的系 统/方法的框图/流程图2是根据本发明原理示出用于说明操作的模板进程U的示图, 该模板进程U具有控制状态c和转换符号!和?;
图3是根据本发明原理示出定点计算的示图,其中通过数次迭代 示出进展;
图4是根据本发明原理用于说明根据另一实施例的操作的模板U 的示图,该模板U具有用于状态c之间的转换的析耳又保护;以及
图5是根据本发明原理示出定点计算的示图,其中通过数次迭代 示出进展。
具体实施例方式
本发明实施例涉及计算机系统验证,更具体地说,涉及诸如用于 控制硬件组件(如磁盘驱动器、音频扬声器等)的设备驱动程序的并 发程序的验证。在尤其有用的实施例中,开发计算机系统的参数化性 质,因为并发程序包含同一硬件或软件组件的多个副本。此外,本发 明实施例适用于其它应用,例如在诸如蜂窝电话、个人数字助理
(PDA)的移动设备中使用的嵌入式软件、数据库软件、SQL服务器、 例如web浏览器(Firefox 、 Explorer )的应用级軟件或利用并发 性的任何应用。
交互式下推系统(pushdown system)的模型检验是对并发程序进 行数据流分析时潜在的核心问题。但是,它只对非常有限的时序逻辑 片段可判定。根本的障碍是检验两种上下文无关语言的交集的非空性 的不可判定性。通过使同步原语具有足够强的表达力或使正在进行模 型检验的属性足够强而可以精确地接受这些PDS所接受的上下文无 关语言的交集来耦合两种不同的下推系统(PDS)并不难。这导致模 型检验问题的不可判定性。但是,根据本发明原理,利用将多种重要 种类的并发系统参数化,即这些种类包括几种基本类型的组件的多个 复制副本。
根据本发明原理,不需要解决这个一般难题。利用这样的事实 多个并发系统是参数化的,即它们包括同 一基本组件的多个复制副 本。实际上,对于用于联网、高速緩存一致性、同步的大多数分布式 协议,实现该协议的同一准确代码片段在不同机器上运行,从而使它 变得参数化。互联网被认为是计算机的网络,每台计算机运行TCP/IP 协议。其它实例包括具有多线程的多核体系结构。实际上,认为设备 驱动程序可正确运行而与执行它的线程的数量无关。
为参数化多线程程序提供新的有效过程间数据流分析系统和方 法。问题缩减为对交互式PDS进行模型检验的问题,其中所有PDS是彼此的副本。到目前为止,关于对参数化程序进行分析的先前工作
局限于在线程(PDS )之间没有有效通信的模型,因此很少有实际价 值。在本公开中,已考虑了更强大且现实可行的模型,其中PDS可经 由锁定、会合(例如,来自Java 的WaitNotify ())或广播(例如, 来自Java 的Wait NotifyAll ())进行交互。因此,将过程间分析扩 展到现实通信模型的参数化并发域。
在此情况下,可表明,对于安全性属性,(参数化)模型检验问 题不仅可判定,而且对于经由成对和异步会合、析取保护和嵌套锁定 进行交互的PDS有效。假设已知对经由成对会合进行交互的两个(不 同)PDS的模型检验问题对于成对可达性一一对交互式PDS进行模型 检验的基础不可判定性结果是不可判定的,这尤其令人感兴趣。这说 明,问题的参数化版本实际上更易处理。根据本发明原理,表明,对 于经由广播、非嵌套锁定和合取保护进行交互的PDS,参数化模型检 验问题(PMCP)仍不可判定,从而勾画了所有标准同步原语的安全 性属性的可判定性边界。
根据本公开,提供用于对经由配对会合、嵌套锁定和析取保护进 4亍交互的PDS判定PMCP的经i正实有效的方法。可表明,对于例如 广播、合:f又保护和非嵌套锁定的扩大原语(reaming primitive) , PMCP 不可判定。因此,我们为每种标准的同步原语精确勾画出k-阶(k-wise) 可达性的PMCP的边界。
从PDS经由成对会合进行交互的情形开始。经由成对会合进行交 互的两个PDS对于成对可达性的不可判定性是对交互式PDS进行模 型检验的不可判定性的基石。经证实,经由成对会合进行交互的PDS 的PMCP不仅可判定,而且可有效判定。这说明,切换到问题的参数 化版本实际上会使它更易处理。
应了解,各图中示出的单元可用各种形式的硬件、软件或其组合 实现。优选地,这些单元可被存储在计算机介质上,并以软件形式在 具有处理器和存储器以及输入/输出接口的一个或多个适当编程的通
ii用数字计算机上实现。软件可包括但不限于固件、常驻软件、微代码等。
本发明的实施例可采用全硬件实施例、全软件实施例、或包括硬 件和软件单元的实施例的形式。在一种优选实施例中,本发明以软件 形式实现,软件包括但不限于固件、常驻软件、微代码等。
实施例可采用可从计算机可用或计算机可读介质访问的计算机 程序产品的形式,该计算机可用或计算机可读介质提供程序代码以供 计算机或任何指令执行系统使用或与其结合使用。计算机可用或计算 机可读介质可包括存储、通信、传播、或传输程序以供指令执行系统、 装置或设备使用或与其结合使用的任何装置。该介质可以是电、磁、 光、电磁、红外或半导体系统(或装置、或设备)或传播介质。例如, 该介质可包括计算机可读介质,如半导体或固态存储器、磁带、移动
计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁 盘和光盘等。
为了使我们的新方法显得直观,回想一下,对于U是有限状态标 示转换系统(没有栈)的情形,判定参数化可达性的问题可通过已知 的简易定点法来有效解决。从包含U的初始状态的集合Ro开始,在 每次迭代时,通过添加新控制状态b而从Ri构建控制状态集合Ri+1,
其中存在定式a—b (aeRi)的内部转换,或者存在定式a二b的成对
会合发送(接收)转换和匹配的接收(发送)转换cid,其中a和c 都在Ri中。注意,如果控制状态的数量Q有限,则可保证以上过程
在IQI个步骤中终止。
但是,如果模板U是具有无限多种配置的PDS,则不能保证以上 过程奏效。此外,即使它终止了,以上过程也只考虑到由经由成对会 合的同步所引起的约束。如果给定模板是PDS,则必须另外确保定点 计算的每个步骤中包含的控制状态是上下文无关可达的。根据本发明 原理,提供考虑这两种约束的新过程。
现在参照附图,其中类似数字标号表示相同或类似单元。首先参照图1,在方框12,给定PDSU,对于包含多个类似组件的并发程序, 例如运行诸如磁盘驱动器、音频扬声器等硬件的设备驱动程序,初始 化可达控制状态集合以确定对于某个n在Un中可达的U的控制状态。 注意,由于栈无边界,所以可达配置的数量可为无穷。PDS可以是设 备驱动程序的模型,或是用于表示在其操作期间用于处理并发线程的 程序或软件代码的模型。
将co初始化为U的初始控制状态,其中co是可达控制状态集合。 执行从O到i的初始化,以初始化所有状态。从只包含U的初始状态
Co的集合R(^c^开始,然后构建一系列集合Ro..... Rm,其中Ri+1
是通过添加变得参数化可达(例如,对于某个n在Un中可达)的新控 制状态而从Ri获得的,其中假定Ri中的所有状态都是参数化可达的。 在方框14,基于可达状态集合Ci,去除由于同步构造引起的所有约束。 用内部转换取代每个约束。从U去除不能转化为内部转换的所有同步 转换。
总可满足由从Ri中的已知已参数化可达的控制状态所发出的会
合引起的所有同步约束。这允许将使得存在定式c三d的转换的定式
a二b的所有转换转化为定式a厶b的内部转换,其中p和p'是匹配的发 送和接收会合动作且ceRi 。可定义Ui+1是通过以下方法从U获得的 模板用内部转换取代上述成对会合发送/接收转换,并去除剩余的会 合发送和接收转换。
然后,在方框16,为了检验是否满足第二约束、即上下文无关可 达性,对模型检验PDS使用有效过程。确定(各个)PDS Ui中的可 达控制状态集合R:。如果Rlg《,则定义Rw-《uRi。重复以上方法, 直到到达固定点、例如定点计算。定点计算是基于已可达状态发现新 状态直到找不到新状态为止的过程。例如,从正被检验的系统的初始 状态开始。然后,查找哪些状态可从初始状态达到,并将它们标记为 可达。接着,检验哪些新状态可从初始状态以及上一步中达到的状态 达到,依此类推,直到找不到新状态,然后停止。
13注意,在每次迭代过程中,从前一次迭代添加的上下文无关可达 (内部转换)状态越多,则可去除的同步约束就越多,而这又会使更 多状态变得上下文无关可达。在方框16,将这些新控制状态添加到Ci
中,从而产生cw。可通过使用对单个PDS的模型检验来查找这些新 状态。然后,将i设为i+l。 PDS可通过例如以下方法来创建取给定 设备驱动程序的程序;并去除例如与正在被检验的无关并因此可被丟 弃的赋值语句和条件语句的信息。这称为抽象解释。在抽象解释之后, 将程序缩减成具有有限控制和递归,然后可将其转i,为具有有限控制 和栈(用于模型递归)的PDS。
在方框17,对关于是否找到任何新可达状态进行检验。如果找到 新可达状态,则路经返回到方框14;在方框14,再次去除同步构造, 并用内部转换将其取代,程序继续。如果未找到新可达状态,则路经 继续到方框18,在方框18, Ci是完整的可达状态集合。
在方框20,基于完整的可达控制状态集合,解决参数化模型检验 问题(PMCP)。这验证了某些准则,如计算机系统的其它事实的数 据竟争自由。
因此,在某种意义上,将同步检验和上下文无关可达性约束相互 吻合,例如以交错方式执行,直到因不能添加新状态而到达固定点为 止。本方法经证实是有效的,并且在经过o(luf)次后终止,其中IUI是
描述模板的PDS的大小。对于经由异步会合、析取保护和非嵌套锁定 进行交互的PDS的参数化系列,可给出类似的有效定点法。
另一考虑包括,对于经由广播、合取保护和非嵌套锁定进行交互 的PDS,该问题一般仍不可判定。本质上,之所以这样是因为,这样 的参数化系统可以模仿包括用相同原语进行交互的两个不同PDS的 系统,然后其允许采取上下文无关语言所接受的交集。
系统模型:考虑包括建模为下推系统(PDS )的模板进程(线程) U的任意数量n个副本的1jn形式的并发程序系列。PDS具有对应于 它所表示的线程的变量估值的有限控制部分和对递归建模的栈。形式上,PDS是五元组^(P,Act,r,c。,A),其中P是有限的控制位置集合,
Act是有限的动作集合,r是有限的栈字母表,且AG(Pxr)xActx(Pxr) 是有限的转换规则集合。如果(o,r),fl,(p',w))eA,贝寸(P,r)二(y,w)。 P
的配置是(p, w)对,其中PeP表示控制位置,而we广表示栈内容。 将C。称为e的初始配置。e的所有配置的集合用C表示。对于每个动
作a,将关系二^CxC定义如下对于每个ve广,如果(《,"二(《',w),
贝寸(; ,严)4(//,1^)。
用(Uf表示并发程序系列U2、 U3、...,其中lT表示模板U的m 个副本的交错并行組成。由U[i]表示的U的第i个副本经由锁定、成 对和异步会合、广播和布尔保护(合取和析取)等标准同步原语与其 它副本进行通信。成对会合是受CCS的启发,其中利用异步会合和广 播来对Java 的Wait/Notify和Wait/NotifyAll原语进行建模。Un的语 义按照常见方式定义,因此为简单起见及其省去。
对嵌套和非嵌套锁定加以区分。如果沿程序的每次计算,线程只 可释放它沿该计算获得并且尚未释放的上一次锁定,则并发程序以嵌 套方式访问锁定。
正确性属性:多线程程序中要检验的重要属性之一是数据竟争的 缺失。双重属性、例如数据竟争的存在可表示如下3n:U"|=EF(ClAc2),
其中C!和C2是与正在访问同一共享变量的程序语句对应的U的控制
位置。因此,考虑定式EF(c,,...,ACk)的属性的PMCP,其中d.....ck
是U的控制位置。形式上,该问题是判定3n:U卞EF(c,A,…,ACk)是否成 立。
成对和异步会合:从考虑经由成对会合进行交互的PDS的参数化 系统的安全性属性的模型检验问题开始。与具有甚至两个PDS的系统 的模型检验问题变得不可判定的非参数化情形不同,经证实,对于参 数化系统,模型检验问题不仅可判定,而且还可有效判定。
令(in为由建模为经由成对会合进行同步的PDS的模板进程U所定义的参数化系列。这里,U的动作符号的集合s:包括内部转换标
签的集合2^以及发送和接收成对会合转换的集合、x {!}和、x { }。假
设,同步转换、例如由、><{!}^2^><{ }中的动作所标记的那些转换不
会修改执行转换的PDS的栈。对于动作leSpr,将用l!和l 标记的一对
转换称为匹配。回想一下,对于pre2^xWu、x( ),如果在局部状态
c中存在lf的进程U[j],则在全局配置s中激活Un的进程U[i](其
中的)的转换tr" a;b ,使得在A中存在定式tr2: c-d的匹配转换。 为了执行该会合,将在一个原子步骤中同步激发(fire)成对的发送和 才姿收转换tn和tr2。
判定PMCP的策略如下。首先经证实,可将EF(c,/v.,,ACk)的PMCP 缩减为各个控制状态的可达性、例如EFe(其中,c是U的控制状态) 的PMCP。然后,给出用于判定各个控制状态的可达性的PMCP的新 有效方法。从以下定义开始。
定义1。(参数化可达性)如果对于某个n,由于控制状态c (配 置c)中的进程而存在ljn的可达全局配置s,则认为模板进程U的控 制状态c (配置c)是参数化可达的。
首先证明,如果U的配置c是参数化可达的,则给定/,对于某 个k,存在具有c的至少/个副本的Uk的可达全局状态s。换句话说, 可将U的每个参数化可达配置的多重性加大到任何任意大的值。这减 轻了跟踪U的每个配置的多重性的负担。形式上,证明如下。
命题1 。(无边界的多重性)。令R为U的所有参数化可达配置 的集合,并令R'为R的有限子集。然后,给定/,对于某个m,存在 导致全局状态s的IT的有限计算,其中具有R'中的每个配置的至少/ 个副本。
推论1。如果对于每个ie[l..k] , Ci是参数化可达的,则 3n:U"|=EF(ClA,...,ACk)。此结果将EF(c,,..., Ack)的PMCP缩减为EFC的
PMCP,其中c是U的控制状态。因此,应集中在这个问题上。
16控制状态可达性的PMCP:对于U是有限状态标示转换系统(无
栈)的情形,判定控制状态的参数化可达性的问题可通过简易定点法
来有效解决。从只包含U的初始状态的集合Ro开始。在每次迭代中, 通过添加新控制状态b而从Ri构建控制状态集合Ri+1,其中存在定式 a->b (ae《)形式的内部转换,或存在定式a-〉b的成对会合发送 (接收)转换以及匹配的接收(发送)转换c -> d,其中a和c都在 Ri中。注意,如果控制状态的数量Q有限,则可保证以上过程在IQI 个步骤中终止。
但是,如果模板U是PDS,则不能保证以上过程奏效。实际上, 考虑具有两个控制状态a和b、栈字母表《a,p)和单个内部转换tr:
a"-b的简单模板U。因为系统Un中的每个进程U[i]的栈都是从空开 始的,所以可从不执行转换tr。因此,即使在对U的控制状态执行以 上方法同时忽略栈操作时b是可达的,但b仍不是参数化可达的。除 了确保满足由成对会合施加的同步限制外,还需确保定点计算的每个 步骤中包含在Ri+1中的新控制状态可从Ri中的已有可达状态与上下文 无关地达到。
参照图2和图3,说明性地描绘用于判定参数化控制状态可达性 的PMCP的方法。考虑如图2所示的模板进程U。假设,需要判定对 于某个nEFd是否成立。从只包含U的初始状态co的集合1^={00}开 始。然后,构建一系列集合,其中Rw是通过添加变得参数化可达的 新控制状态而从Ri获得的,其中假定Rj中的所有状态均参数化可达。
如上所示,仅仅通过取Ri与控制状态b的并集并不能获得Ri+1 ,
其中还存在定式a—b的内部转换,或存在定式a二b和c二d (a、 ce《) 的一对会合发送和接收。这个步骤只能处理同步限制。另外,假设Ri 中的所有状态都是参数化可达的,还需测试所添加的控制状态是否上 下文无关可达。以相吻合的方式处理这两种限制。
首先,为了满足同步限制,将使得存在定式cid的转换的定式a二b的所有转换转化为定式a二b的内部转换,其中p和p'是匹配的发 送和接收会合动作、ceRi,且T是;中新引入的特殊动作符号。这受
到以下事实的启发因为c是参数化可达的,所以经由命题/可确保 如果a变得参数化可达(现在或在以后某次迭代中),则对于某个m
通过各自在局部状态a和c中的进程存在ir的可达全局状态。换句
话说,如果a变得可达,则总是可以激活并执行会合转换a二b。因此, 可将它像内部转换一样对待。以此方式,通过溢出(flood) Ri的所有 控制状态,可去除由源自Ri中的控制状态的成对发送或接收转换所引 起的所有同步约束。这将激活具有始于Ri中的控制状态的相匹配发送 /接收的每个会合转换。因此,可用内部转换取代这些转换。受此启发, 将Ui+1定义为是通过以下方法从Uj获得的模板用内部转换取代如上 所述的适当成对会合发送/接收转换,并去除剩余的会合发送和接收转 换。
为了^r验第二约束、例如上下文无关可达性,现在可利用对PDS 模型检验的任何过程,以便确定各个PDS Ui中可达的U的那些控制 状态的集合R:。这给出Ui中的所有上下文无关可达状态的集合R:。 如果在上一步中经由去除一些同步约束而使新控制状态变得可达,则 将它们添加到Rw中;否则,到达固定点,过程终止。
在此实例中,将Ro初始化为(Co)。这激活了两个转换c。iq和
Cq:;C8,并且因此可将它们转化为内部转换,从而产生如图3所示的
模板Ui。在第二次迭代中,注意,C5、 C6、 Cs和C9都是模板"的可达 控制状态,因此1^= {C0,C5,C6,C8,C9}。现在,因为Co和C5都在I^中,
所以会合转换q4C2和C。4C7变成被激活,并且可转化为内部转换,从
而产生模板U2。在U2中,控制状态C2、 C4和C 现在变得可达,并且
因此将其添加到R2中,从而产生R3={c0, c2, c4, c5, c6, c7, c8, c9}。最后, 因为控制状态C4和C6 e i 3,所以将会合转换c6 i c3和c4 二 Cl转化为内部
18转换,从而产生模板U3。因为d和C3是U3的可达控制位置,所以这 些控制位置现在包含在R4中,从而到达固定点而导致方法终止。下文 将在方法A中给出对该方法的描述。
对于由经由成对会合进行交互的模板PDS U组成的系统,控制状
态可达性以及因此的k-阶(k-wise)的可达性的参数化模型检验问题 可在O收r)次中判定,其中Q是U的控制状态集合。 方法A:对会合的参数化控制状态可达性
1. 初始化i二O且Ro-{c。},其中Co是U的初始状态;
2. 重复;
3. i = i+l;
4. 通过以下方法构建PDS Ui:用内部转换a二b耳又代使得存在定 式c爻d (其中ceRi.,)的相匹配接收(发送)转换的定式a二b的模板 U的每个成对发送(接收)转换,并去除剩余的成对发送或接收会合
转换;
5. 利用用于对各个PDS模型检验的过程来计算Ui的可达控制位 置的集合R!;
6. 设置《=《—,uR);
7. 直到i ,g《-,;
8. 返回Ri。
异歩会合:用于判定经由比成对会合更具表达力的异步会合进行 交互的PDS的PMCP的方法与方法A非常类似。 一个细微修改说明 异步会合的略微不同的语义。唯一的差别在于,不管是否存在匹配的
接收c么d,都可执行异步发送转换a三b。另一方面,接收转换需要当 前激活匹配的发送,然后自动同时激发发送和接收转换。现在,对方
法A中的PDS Ui的构建做出如下修改用内部转换a厶b取代模板U
的定式aib形式的每个成对发送转换。另一方面,为了用内部转换
19a—b取代定式a—b的接收转换,需要测试是否存在定式c—d的匹配发 送转换,其中ceRw。去除剩余的接收异步会合转换。该方法的时间 复杂性保持不变。
析取保护:考虑经由析取保护进行交互的PDS的PMCP。这里,
U的转换用作为定式V(C,V...VCk)的布尔表达式的保护标记,其中
c,、 ...Ck是U的控制状态。在lf中的模板U的副本U[i]中,将U的 转换a — b重写为定式a—b的转换。在ir中,如果在局部状
态d.....Cn的至少之一中存在U[i]以外的进程U[j],则在lf的全局
配置中激活U[i]的此类转换。具有经由布尔保护进行通信的进程的并 发系统受到Dijkstra的保护命令模型的启发。Dijkstra的保护命令模型 在本领域中是已知的。可证明,经由析取保护进行通信的有限状态进 程的PMCP是可有效判定的。用于判定经由析取保护进行交互的PDS 的PMCP的广义方法与经由成对会合进行交互的PDS的方法类似, 但技术细节有所不同。如上所述,通过证明无边界的多重性结果有效 而开始。
命题2。(无边界的多重性)。令R为经由析取保护进行交互的 PDS U的所有参数化可达配置的集合,并令R:为R的有限子集。然后, 给定/,对于某个m,存在导致具有R:中的每个配置的至少/个副本 的全局状态s的IT的有限计算。因此,如同经由成对会合进行交互 的PDS的情形,该问题现在缩减为判定控制状态可达性的PMCP。通 过 一 个简单实例来说明该过程。
参照图4和图5,示出说明性模板进程U。假设希望判定对于某 个n, U"卜EF^是否成立。从只包含U的初始状态Co的集合R(r(C(^开
始。然后,构建一系列集合Ro.....Rm,其中Rw是通过添加变得参
数化可达的新控制状态而从Rj所获得的,其中假定Ri中的所有状态 都是参数化可达的。
当从Ri构建Rw时,需要确保只有新控制状态在由(i)经由析取保护的同步和(ii)上下文无关可达性所施加的约束下是可达时才将它添
加到Rw中。为此,将定式a一'"b的所有转换转化为定式a二b的内部转换,其中对于某个j, Cj^Rj。这受到以下事实的启发因为Cj是
参数化可达的,所以通过经由命题2确保对于某个j在局部状态Cj中
存在进程,可总是激活转换a — b。然后,如上所述,通过溢出Ri的所有控制状态,可去除由析取保护引起的所有同步约束,其中析取保护具有在Ri中出现的状态之一作为析取项(disjunct)。这将激活用这种保护所标记的每个转换,因此可以用内部转换取代。受此启发,令Ui+1是通过以下方法从U获得的模板用内部转换取代如上所述用析取保护所标记的适当转换,并去除剩余的用保护所标记的转换。然后,通过利用所述模型检验PDS的有效过程,确定(各个)PDS Ui中的可达控制状态的集合Rl。如果R^i ,.,则定义Ri+产《uR:。
在此实例中,将Ro初始化为(coh这激活了转换c。4Cs,因此可将它转化为内部转换,从而导致如图5所示的模板Ui。在第二次迭代
中,注意,C0、 C6和Cs是模板Ui的可达控制状态,并且因此R产(Co,C6,
C8}。现在,因为c。eR,,所以转换c。^C7变得被激活,并且可转化为
内部转换,从而产生模板U2。在U2中,控制状态C4、 C5和C 现在变
得可达,因此将其添加到R2中,从而产生R3={c0, d, c4, c5, c6, c7, c8}。
因为C^R;,所以将转换C6二A转化为内部转换,从而产生模板U3,
由此到达固定点,并导致方法终止。注意,控制状态C!和C2不是参数
化可达的。下文给出对方法B的描述。
方法B:析取保护的参数化控制状态可达性
1. 初始化i-O且Ro二 {co},其中co是U的初始状态;
2. 重复;
3. i = i+l;
4. 通过以下方法构建PDS Uj:用内部转换a二b取代定式a — b的U的每个转换,其中对于某个j, CjERw;并去除剩余的用析取保护所标记的转换;
5. 计算Ui的可达控制位置的集合R:;
6. 设置i ,.!uR:;
7. 直到《g《—,;
8. 返回Ri。
方法B返回U的参数化可达控制状态的集合。复杂性分析如上所述,整个方法B在0(l2「)中运行。对于由经由析取保护进行交互的模板PDS U组成的系统,可在O(lef)时间中判定控制状态可达性以及因此的k-阶(k-wise)可达性的参数化模型检验问题,其中Q是U的控制状态的集合。
锁定:考虑经由锁定进行交互的PDS的EF(c,A,…,ACk)的PMCP。
该问题对于具有嵌套锁定的PDS可判定,但对于具有非嵌套锁定的PDS则不可判定。这表明,尽管考虑具有成对会合的PDS的模型^r验问题的参数化版本时其变得可判定,但对于锁定,情况并非如此。从嵌套锁定的情形开始。为简单起见,考虑定式EF(c,A(^)的属性的PMCP。我们^人为,-于于11>2,如果lj2卜EF(c! ac2),贝寸Un|=EF(ClAc2)。这将判定EF(c,AcJ的PMCP的问题缩减为具有经由嵌套锁定进行交互的两个PDS的系统的标准模型检验问题,该问题表明是可有效判定的。我们认为,EF(c,,...,acJ的PMCP是可判定的。对于非嵌套锁定的情形,对于经由非嵌套锁定进行交互的PDS, EF(c,C2)的PMCP是不可判定的。
广播:对于包括经由广播进行交互的模板的系统的参数化系列,判定参数化控制状态可达性的问题、例如3n:U"卜EFc (其中c是U的控制状态)是不可判定的。判定经由广播进行交互的PDS的参数化成对可达性的问题是不可判定的。
合取保护:对于其中PDS经由合取保护进行交互的参数化系统,判定参数化控制可达性的问题是不可判定的。
本发明原理包括一种用于对参数化并发软件进行过程间数据流分析的新方法。有两个主要优点。首先,与假定线程间没有任何有效通信或使用如加宽的过近似试探法的现有技术相比,这些系统和方法适用于现实可行且具有表达力的通信^^型。其次,本发明的系统和方法比现有技术更具扩展性和有效性,因为它们将对具有多个线程的程序的分析缩減为各个线程的扩充版本。
此外,本发明实施例经证实是有效且准确的,例如是健全和完备的。我们将对包括经由锁定进行通信的多个线程的并发程序的过程间数据流分析缩减为可靠性问题的多个实例,例如分析程序的给定的状态集合是否可从另一个给定状态达到。本质上,为了执行可达性,需要测试(l)满足线程间的同步原语所施加的约束,以及(2)上下文无关可达性(由递归引起)有效。我们按相吻合(即,交错)的方式这样进行。
该新验证方法的价值包括1 )将过程间数据流分析扩展到线程间通信的现实可行模型的参数化并发域。本发明实施例对所有的标准Java通信原语建模。现有技术只考虑无任何有效通信的模型。2)本发明的系统和方法比现有技术快速,其中时间复杂度是一个线程(一个PDS)的大小的多项式。3)本发明实施例更具扩展性,即,可潜在地验证比现有技术大的程序。这是通过避免构建给定程序的全局状态空间、从而绕过状态爆炸问题来实现的。分析从并发多线程程序缩减到其各个线程。4)本发明实施例既健全又完备,从而避免由不太精确的技术产生的伪造错误踪迹(trace)。从商业角度看,这很重要,因为现实中的验证所花费的大多数资源是用于检测/避免伪造错误踪迹的。本发明实施例易于实现,并且可以容易地结合于现有工具流中。
在描述完对安全性模型检验参数化线程的系统和方法的优选实施例(它们用于说明而非限制)之后,注意,鉴于以上教导,本领域技术人员可做出修改和改变。因此,将了解,可对所公开的这些特定实施例做出改变,而这些改变在如随附权利要求所概述的本发明的范围和精神内。因此,在用专利法所要求的细节和详情描述完本发明的各个方面之后,专利证书所要求的和旨在保护的内容如随附权利要求所述。
权利要求
1. 一种用于计算计算机系统的并发程序中的数据流的方法,包括给定并发程序,初始化(12)可达控制状态集合;基于所述可达控制状态集合,去除(14)所述控制状态之间的同步构造;用内部转换取代(14)所述同步构造;添加(16)通过所述同步构造的所述去除所揭示的新可达控制状态,其中,利用对单线程的模型检验来发现所述新可达控制状态;以及通过审查完整的可达控制状态集合来验证(20)所述多个并发程序的数据竞争自由。
2. 如权利要求1所述的方法,还包括检验(16)所述控制状态的 上下文无关可达性。
3. 如权利要求1所述的方法,还包括重复进行(17)直到找不到 新控制状态为止。
4. 如权利要求l所述的方法,其中,基于在所述程序中是否存在 只包含从初始状态开始的内部转换的路径而发现(16)新控制状态。
5. 如权利要求l所述的方法,其中,取代所述同步构造包括用 所述内部转换取代从已经达到的控制状态开始的会合发送(接收)转 换以及同样从已经达到的控制状态开始的匹配接收(发送)转换。
6. 如权利要求l所述的方法,其中,所述系统包括同一下推系统 (PDS)的多个副本,并且验证数据竟争自由(20)包括经由成对和异步会合、析取保护和嵌套锁定进行交互以计算单PDS的可达状态。
7. 如权利要求l所述的方法,其中,所述系统包括多个下推系统 (PDS),并且所述PDS经由成对会合进行交互,其中所述PDS之间的交互对于成对可达性是可判定的。
8. 如权利要求1所述的方法,其中,验证(20 )数据竟争自由包 括-睑证不同程序的控制状态的成对可达性。
9. 一种用于计算并发程序中的数据流的计算机介质,包括计算机 可读程序,其中,所述计算机可读程序在计算机上执行时使所述计算机执行以下步骤给定并发程序,初始化(12)可达控制状态集合; 基于所述可达控制状态集合,去除(14)所述控制状态之间的同步构造;用内部转换取代(14)所述同步构造;添加(16)通过所述同步构造的所述去除而揭示的新可达控制状 态,其中,利用对单线程的模型检验来发现所述新可达控制状态;以 及通过审查完整的可达控制状态集合来验证(20)所述多个并发程 序的数据竟争自由。
10. —种用于计算计算机系统的计算机程序中的数据流的方法, 包括将并发程序建模(12)为具有多种配置的下推系统; 初始化(12)可达控制状态集合; 基于所述可达控制状态集合,去除U4)同步构造; 用内部转换取代(14 )所述同步构造;对所述系统进行模型检验(16)以确定上下文无关可达性,以便 查找单线程的新控制状态;添加(16)通过所述模型检验而揭示的新可达控制状态; 重复进行(17),直到找不到新控制状态为止;以及 基于完整的可达控制状态集合解决(20)参数化模型检验问题。
11. 如权利要求IO所述的方法,其中,所述内部转换包括控制状 态之间的3各径。
12. 如权利要求IO所述的方法,其中,所述内部转换包括控制状态集合中的会合发送(接收)转换以及匹配接收(发送)转换。
13. 如权利要求IO所述的方法,其中,用内部转换取代所述同步 构造包括去除(14)未转变为内部转换的所有同步构造。
14. 如权利要求IO所述的方法,所述解决包括对不同程序的控制 状态验证(20 )数据竟争自由。
15. 如权利要求14所述的方法,其中,所述验证(20)包括对成 对会合、异步会合、析取保护和嵌套锁定确定可判定交互。
16. 如权利要求IO所述的方法,其中,所述系统包括多个下推系 统(PDS),并且所述PDS经由成对会合进行交互,其中,所述PDS 之间的交互对于成对可达性是可判定的。
17. 如权利要求IO所述的方法,其中,所述系统包括同一下推系 统(PDS)的多个副本,并且解决(20)参数化模型检验问题包括经 由成对和异步会合、析取保护和嵌套锁定的交互验证数据竟争自由, 以计算单PDS的可达状态。
18. —种用于计算计算机程序中的数据流的计算机介质,包括计 算机可读程序,其中,所述计算机可读程序在计算机上执行时使所述 计算机执行以下步骤将并发程序建模(12)为具有多种配置的下推系统; 初始化(12)可达控制状态集合; 基于所述可达控制状态集合,去除U4)同步构造; 用内部转换取代(14)所述同步构造;对所述系统进行模型检验(16)以确定上下文无关可达性,以便 查找单线程的新控制状态;添加(16)通过所述模型检验所揭示的新可达控制状态; 重复进行U7),直到找不到新控制状态为止;以及 基于完整的可达控制状态集合解决(20)参数化模型检验问题。
全文摘要
用于计算计算机系统的并发程序、例如控制计算机硬件、如磁盘驱动器、音频扬声器等的设备驱动程序中的数据流的系统和方法,包括给定包括多个类似组件的并发程序,对于并发程序之间的交互初始化(12)可达控制状态集合。基于该可达控料状态集合,去除(14)这些控制状态之间的同步构造。用内部转换取代(14)这些同步构造。添加(16)通过同步构造的去除所揭示的新可达控制状态,其中,使用对单线程的模型检验而查找这些新可达控制状态。通过审查完整的可达控制状态集合来验证(20)上述多个并发程序的数据竞争自由。
文档编号G06F9/06GK101512481SQ200780032884
公开日2009年8月19日 申请日期2007年10月4日 优先权日2006年10月5日
发明者V·卡隆 申请人:美国日本电气实验室公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1