CN101512481A - 模型检验安全性的参数化线程 - Google Patents
模型检验安全性的参数化线程 Download PDFInfo
- Publication number
- CN101512481A CN101512481A CNA2007800328847A CN200780032884A CN101512481A CN 101512481 A CN101512481 A CN 101512481A CN A2007800328847 A CNA2007800328847 A CN A2007800328847A CN 200780032884 A CN200780032884 A CN 200780032884A CN 101512481 A CN101512481 A CN 101512481A
- Authority
- CN
- China
- Prior art keywords
- state
- control
- pds
- conversion
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Complex Calculations (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
用于计算计算机系统的并发程序、例如控制计算机硬件、如磁盘驱动器、音频扬声器等的设备驱动程序中的数据流的系统和方法,包括:给定包括多个类似组件的并发程序,对于并发程序之间的交互初始化(12)可达控制状态集合。基于该可达控料状态集合,去除(14)这些控制状态之间的同步构造。用内部转换取代(14)这些同步构造。添加(16)通过同步构造的去除所揭示的新可达控制状态,其中,使用对单线程的模型检验而查找这些新可达控制状态。通过审查完整的可达控制状态集合来验证(20)上述多个并发程序的数据竞争自由。
Description
相关申请信息
本申请要求2006年10月5日提交的临时申请序列号60/828246的优先权,通过引用将其结合于本文。本申请还要求2007年1月9日提交的临时申请序列号60/884048的优先权,通过引用将其结合于本文。
本申请与其一同提交的美国申请序列号(待定)有关,该申请题为《参数化并发软件的过程间数据流分析》(“INTER-PROCEDURALDATAFLOW ANALYSIS OF PARAMETERIZED CONCURRENTSOFTWARE)(代理人案号06071(449-6)),并通过引用将其结合于本文。
技术领域
本发明涉及计算机系统验证,更具体地说,涉及并发程序的验证,所述并发程序开发了包括同一硬件或软件组件的多个副本的计算机系统的参数化性质(parameterized quality)。
背景技术
为了确保计算机系统正确运作并且所获结果可信,需要计算机验证。一种形式的验证是测试。在测试时,对一组输入检查系统的实际行为,并将其与预期结果进行匹配。鉴于巨大或无穷数量的可能输入,因此证实系统在所有情形中都正确运转是不可能的。
验证试图解决这些问题。验证提供用于模拟系统行为的数学或模型基础。定义模型及其预期行为。通常将机器建模成状态随时间演变的系统,该模型包括对状态空间以及系统如何遍历状态空间的说明。已表明,时序逻辑可用于表示反应式系统的行为。模型检验(model-checking)的验证方法包括:取所考虑系统的数学模型并检验模型内的时序逻辑公式的有效性。
已知,所有方法面临的主要问题是状态爆炸。状态爆炸是指,所考虑系统的状态空间随着所用存储器(如寄存器、或程序变量、指针等)的量的增大而快速(如按指数)增长。这限制了验证方法。
多线程是开发计算机系统的不同组件间的并行性的标准方法。因此,并发多线程程序的使用正变得普及。实例包括操作系统、数据库、嵌入式系统(蜂窝电话、多媒体消费型产品)等。因为验证通常不适用于大规模并发程序,所以对平衡(leverage)静态分析技术、如用于调试多线程程序的过程间数据流分析有着浓厚的兴趣。尽管已表明过程间数据流分析是查找顺序程序的错误(bug)的非常有效的技术,但是却很少有与将这种数据流分析扩展到并发域有关的工作。
发明内容
数据流分析平衡下推系统(pushdown system)的非常强大的范例的使用,该范例是可以统一方式表示许多不同种类的数据流分析的广义框架。对并发域的PDS的模拟是交互式PDS的模型。不幸的是,模型检验对交互式PDS的问题只对于非常有限种类的性质是可判定的。
近年来,下推系统(PDS)已经成为用于对顺序程序的过程间数据流分析有效编码的强大的统一框架。PDS具有对应于程序变量的估值的有限控制部分和提供模型递归方式的栈。然后,数据流分析利用这样的事实:PDS的模型检验问题对于极具表达力的属性(property)种类(线性和分支时间)可判定。这种强大的框架不仅可用于对许多不同数据流分析进行编码,而且在多种情况下,还可严格地导致比经典的过程间数据流分析所提供的数据流框架更具表达力的数据流框架。
这突出了:(i)数据流分析与PDS的模型检验问题之间的紧密关联;以及(ii)PDS作为对程序建模的自然框架的有用性。与顺序情形类似,并发多线程程序的过程间数据流分析可用公式表示为对交互PDS的模型检验问题。但是,此问题不像单PDS的问题那样可坚定地判定。实际上,关键的不可判定性结果表明,对于只具有两个经由CCS类型(CCS或通信系统演算是书写并发程序的语言)的成对会合(pairwise rendezvous)同步的PDS的系统,即使是类似可达性的简单属性也变得不可判定。可表明,不可判定性结果即使对经由锁定进行交互的PDS也有效。对于经由诸如锁定、成对和异步会合以及广播的每一种标准同步原语进行交互的PDS,可精确地勾画出可判定性/不可判定性边界。对于经由锁定进行交互的PDS,如果锁定是嵌套式的且正确性属性限于片段L(X,F,),则模型检验问题可判定。但是,如果允许PDS经由更具表达力的原语、如成对会合和广播进行交互,则只能对(非常有限的)片段L(G,X)保证可判定性。这里使用L(Opi,...,Opk)(其中Opi∈{X,F,U,G,})来表示包含定式EF的公式的片段,其中F是肯定范式(positive normal form)的双指数(double-indexed)线性时序逻辑(LTL)公式(其中只否定原子命题),它是利用操作数Op1、...、Opk以及布尔连接符∨和∧构建而成的。
这些结果之所以有用是因为,它们精确地识别了双指数LTL的模型检验可判定的那些片段,从而改善了对位于并发程序的数据流分析的极其核心的重要问题的理解。但是,作为不幸的推论,我们认为,对于经由诸如会合和广播的常用原语进行交互的PDS,无法对例如数据竞争的可编码为成对可达性、例如定式EF(c1∧c2)的公式的属性进行模型检验。这令人沮丧,因为数据竞争自由是关于并发程序的将要检验的最基本的属性之一。对这些结果的分析显示,对交互式下推系统进行更易于处理的分析的根本障碍是检验两种上下文无关(contextfree)语言的交集的非空性的不可判定性。这意味着,在包含两个PDS的系统中,如果这两个PDS之间的耦合强到足够接受这些PDS所接受的上下文无关语言的交集,则模型检验问题变得不可判定。
这种强耦合可通过以下方法达到:(i)使同步原语具有足够强的表达力,例如成对会合或广播;或(ii)使正在进行模型检验的属性足够强。原则上,这是并发程序的数据流分析的可判定性中的巨大障碍。
但是,我们利用这样一个关键观察结果:实际上,系统往往是参数化的,即系统包含几种基本类型的子组件的多个副本。值得强调的是,由于通常没有很好的理由要非常不同地设计系统这一简单事实,所以这种系统设计范例(即,复制)实际上较为重要。出于经济原因,利用和再利用同一个基本子组件的多个副本明显有优势。其中,实例包括用于联网、高速缓存一致性、同步的重要协议以及运行多线程软件、设备驱动程序的多核体系结构。在参数化上下文中,模型检验问题通常称为参数化模型检验问题(PMCP),它将判定时序属性是否对包含模板进程U的任意数量n个副本的系统Un有效。实际上,希望为不只包含2个或3个执行给定设备驱动程序的线程、而是包含任意数量的线程的系统建立数据竞争自由。这显然很重要,因为具有固定数量的线程的系统的正确性本质上并没有为任意数量的线程建立正确性。实际上,已经有多个驱动程序实例,它们经证实对于2进程实例是正确的,但对于3进程实例则不正确。
当可将U建模为有限状态标示转换系统时,存在PMCP情形。很难将程序、尤其是递归如实地建模为有限状态系统。可将程序更准确且自然地建模为PDS,对于PDS存在很少的现有工作。因此,对经由诸如成对和异步会合、广播、锁定和布尔保护——合取(conjunctive)和析取(disjunctive)的每一种标准通信原语进行交互的PDS考虑PMCP。我们集中在k-阶(k-wise)可达性上,例如定式EF(c1∧...∧ck)的正确性,其中c1、...、ck是对模板建模的PDS的控制状态。注意,可将数据竞争表示为成对可达性。
一种用于计算计算机系统的并发程序、例如控制计算机硬件(如磁盘驱动器、音频扬声器等)的设备驱动程序中的数据流的系统和方法包括:给定包括多个类似组件的并发程序,为并发程序间的交互初始化可达控制状态集合。基于该可达控制状态集合,去除控制状态之间的同步构造。用内部转换取代同步构造。添加通过同步构造的去除而揭示的新可达控制状态,其中,这些新可达控制状态是通过利用对单线程进行模型检验而发现的。通过审查完整的可达控制状态集合来验证上述多个并发程序的数据竞争自由。
另一种用于计算计算机系统的计算机程序中的数据流的系统和方法包括:将并发程序建模为具有多种配置的下推系统;初始化可达控制状态集合;基于该可达控制状态集合,去除同步构造;用内部转换取代同步构造;对系统进行模型检验以确定上下文无关可达性,以便找到单线程的新控制状态;添加通过模型检验所揭示的新可达控制状态;重复进行,直到找不到新控制状态为止;以及,基于完整的可达控制状态集合解决参数化模型检验问题。
通过结合附图阅读以下对其说明性实施例的详细描述,这些及其它特征和优点将变得显而易见。
附图说明
本公开将参照附图在优选实施例的以下描述中提供细节,附图中:
图1是根据说明性实施例示出用于解决参数化模型检验问题的系统/方法的框图/流程图;
图2是根据本发明原理示出用于说明操作的模板进程U的示图,该模板进程U具有控制状态c和转换符号!和?;
图3是根据本发明原理示出定点计算的示图,其中通过数次迭代示出进展;
图4是根据本发明原理用于说明根据另一实施例的操作的模板U的示图,该模板U具有用于状态c之间的转换的析取保护;以及
图5是根据本发明原理示出定点计算的示图,其中通过数次迭代示出进展。
具体实施方式
本发明实施例涉及计算机系统验证,更具体地说,涉及诸如用于控制硬件组件(如磁盘驱动器、音频扬声器等)的设备驱动程序的并发程序的验证。在尤其有用的实施例中,开发计算机系统的参数化性质,因为并发程序包含同一硬件或软件组件的多个副本。此外,本发明实施例适用于其它应用,例如在诸如蜂窝电话、个人数字助理(PDA)的移动设备中使用的嵌入式软件、数据库软件、SQL服务器、例如web浏览器(FirefoxTM、ExplorerTM)的应用级软件或利用并发性的任何应用。
交互式下推系统(pushdown system)的模型检验是对并发程序进行数据流分析时潜在的核心问题。但是,它只对非常有限的时序逻辑片段可判定。根本的障碍是检验两种上下文无关语言的交集的非空性的不可判定性。通过使同步原语具有足够强的表达力或使正在进行模型检验的属性足够强而可以精确地接受这些PDS所接受的上下文无关语言的交集来耦合两种不同的下推系统(PDS)并不难。这导致模型检验问题的不可判定性。但是,根据本发明原理,利用将多种重要种类的并发系统参数化,即这些种类包括几种基本类型的组件的多个复制副本。
根据本发明原理,不需要解决这个一般难题。利用这样的事实:多个并发系统是参数化的,即它们包括同一基本组件的多个复制副本。实际上,对于用于联网、高速缓存一致性、同步的大多数分布式协议,实现该协议的同一准确代码片段在不同机器上运行,从而使它变得参数化。互联网被认为是计算机的网络,每台计算机运行TCP/IP协议。其它实例包括具有多线程的多核体系结构。实际上,认为设备驱动程序可正确运行而与执行它的线程的数量无关。
为参数化多线程程序提供新的有效过程间数据流分析系统和方法。问题缩减为对交互式PDS进行模型检验的问题,其中所有PDS是彼此的副本。到目前为止,关于对参数化程序进行分析的先前工作局限于在线程(PDS)之间没有有效通信的模型,因此很少有实际价值。在本公开中,已考虑了更强大且现实可行的模型,其中PDS可经由锁定、会合(例如,来自JavaTM的WaitNotify())或广播(例如,来自JavaTM的Wait NotifyAll())进行交互。因此,将过程间分析扩展到现实通信模型的参数化并发域。
在此情况下,可表明,对于安全性属性,(参数化)模型检验问题不仅可判定,而且对于经由成对和异步会合、析取保护和嵌套锁定进行交互的PDS有效。假设已知对经由成对会合进行交互的两个(不同)PDS的模型检验问题对于成对可达性——对交互式PDS进行模型检验的基础不可判定性结果是不可判定的,这尤其令人感兴趣。这说明,问题的参数化版本实际上更易处理。根据本发明原理,表明,对于经由广播、非嵌套锁定和合取保护进行交互的PDS,参数化模型检验问题(PMCP)仍不可判定,从而勾画了所有标准同步原语的安全性属性的可判定性边界。
根据本公开,提供用于对经由配对会合、嵌套锁定和析取保护进行交互的PDS判定PMCP的经证实有效的方法。可表明,对于例如广播、合取保护和非嵌套锁定的扩大原语(reaming primitive),PMCP不可判定。因此,我们为每种标准的同步原语精确勾画出k-阶(k-wise)可达性的PMCP的边界。
从PDS经由成对会合进行交互的情形开始。经由成对会合进行交互的两个PDS对于成对可达性的不可判定性是对交互式PDS进行模型检验的不可判定性的基石。经证实,经由成对会合进行交互的PDS的PMCP不仅可判定,而且可有效判定。这说明,切换到问题的参数化版本实际上会使它更易处理。
应了解,各图中示出的单元可用各种形式的硬件、软件或其组合实现。优选地,这些单元可被存储在计算机介质上,并以软件形式在具有处理器和存储器以及输入/输出接口的一个或多个适当编程的通用数字计算机上实现。软件可包括但不限于固件、常驻软件、微代码等。
本发明的实施例可采用全硬件实施例、全软件实施例、或包括硬件和软件单元的实施例的形式。在一种优选实施例中,本发明以软件形式实现,软件包括但不限于固件、常驻软件、微代码等。
实施例可采用可从计算机可用或计算机可读介质访问的计算机程序产品的形式,该计算机可用或计算机可读介质提供程序代码以供计算机或任何指令执行系统使用或与其结合使用。计算机可用或计算机可读介质可包括存储、通信、传播、或传输程序以供指令执行系统、装置或设备使用或与其结合使用的任何装置。该介质可以是电、磁、光、电磁、红外或半导体系统(或装置、或设备)或传播介质。例如,该介质可包括计算机可读介质,如半导体或固态存储器、磁带、移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘等。
为了使我们的新方法显得直观,回想一下,对于U是有限状态标示转换系统(没有栈)的情形,判定参数化可达性的问题可通过已知的简易定点法来有效解决。从包含U的初始状态的集合R0开始,在每次迭代时,通过添加新控制状态b而从Ri构建控制状态集合Ri+1,其中存在定式a→b(a∈Ri)的内部转换,或者存在定式 的成对会合发送(接收)转换和匹配的接收(发送)转换 ,其中a和c都在Ri中。注意,如果控制状态的数量Q有限,则可保证以上过程在|Q|个步骤中终止。
但是,如果模板U是具有无限多种配置的PDS,则不能保证以上过程奏效。此外,即使它终止了,以上过程也只考虑到由经由成对会合的同步所引起的约束。如果给定模板是PDS,则必须另外确保定点计算的每个步骤中包含的控制状态是上下文无关可达的。根据本发明原理,提供考虑这两种约束的新过程。
现在参照附图,其中类似数字标号表示相同或类似单元。首先参照图1,在方框12,给定PDS U,对于包含多个类似组件的并发程序,例如运行诸如磁盘驱动器、音频扬声器等硬件的设备驱动程序,初始化可达控制状态集合以确定对于某个n在Un中可达的U的控制状态。注意,由于栈无边界,所以可达配置的数量可为无穷。PDS可以是设备驱动程序的模型,或是用于表示在其操作期间用于处理并发线程的程序或软件代码的模型。
将c0初始化为U的初始控制状态,其中c0是可达控制状态集合。执行从0到i的初始化,以初始化所有状态。从只包含U的初始状态c0的集合R0={c0}开始,然后构建一系列集合R0、...、Rm,其中Ri+1是通过添加变得参数化可达(例如,对于某个n在Un中可达)的新控制状态而从Ri获得的,其中假定Ri中的所有状态都是参数化可达的。在方框14,基于可达状态集合ci,去除由于同步构造引起的所有约束。用内部转换取代每个约束。从U去除不能转化为内部转换的所有同步转换。
总可满足由从Ri中的已知已参数化可达的控制状态所发出的会合引起的所有同步约束。这允许将使得存在定式 的转换的定式 的所有转换转化为定式 的内部转换,其中p和p′是匹配的发送和接收会合动作且c∈Ri。可定义Ui+1是通过以下方法从U获得的模板:用内部转换取代上述成对会合发送/接收转换,并去除剩余的会合发送和接收转换。
然后,在方框16,为了检验是否满足第二约束、即上下文无关可达性,对模型检验PDS使用有效过程。确定(各个)PDS Ui中的可达控制状态集合。如果 ,则定 。重复以上方法,直到到达固定点、例如定点计算。定点计算是基于已可达状态发现新状态直到找不到新状态为止的过程。例如,从正被检验的系统的初始状态开始。然后,查找哪些状态可从初始状态达到,并将它们标记为可达。接着,检验哪些新状态可从初始状态以及上一步中达到的状态达到,依此类推,直到找不到新状态,然后停止。
注意,在每次迭代过程中,从前一次迭代添加的上下文无关可达(内部转换)状态越多,则可去除的同步约束就越多,而这又会使更多状态变得上下文无关可达。在方框16,将这些新控制状态添加到ci中,从而产生ci+1。可通过使用对单个PDS的模型检验来查找这些新状态。然后,将i设为i+1。PDS可通过例如以下方法来创建:取给定设备驱动程序的程序;并去除例如与正在被检验的无关并因此可被丢弃的赋值语句和条件语句的信息。这称为抽象解释。在抽象解释之后,将程序缩减成具有有限控制和递归,然后可将其转译为具有有限控制和栈(用于模型递归)的PDS。
在方框17,对关于是否找到任何新可达状态进行检验。如果找到新可达状态,则路经返回到方框14;在方框14,再次去除同步构造,并用内部转换将其取代,程序继续。如果未找到新可达状态,则路经继续到方框18,在方框18,ci是完整的可达状态集合。
在方框20,基于完整的可达控制状态集合,解决参数化模型检验问题(PMCP)。这验证了某些准则,如计算机系统的其它事实的数据竞争自由。
因此,在某种意义上,将同步检验和上下文无关可达性约束相互吻合,例如以交错方式执行,直到因不能添加新状态而到达固定点为止。本方法经证实是有效的,并且在经过O(|U|4)次后终止,其中|U|是描述模板的PDS的大小。对于经由异步会合、析取保护和非嵌套锁定进行交互的PDS的参数化系列,可给出类似的有效定点法。
另一考虑包括,对于经由广播、合取保护和非嵌套锁定进行交互的PDS,该问题一般仍不可判定。本质上,之所以这样是因为,这样的参数化系统可以模仿包括用相同原语进行交互的两个不同PDS的系统,然后其允许采取上下文无关语言所接受的交集。
系统模型:考虑包括建模为下推系统(PDS)的模板进程(线程)U的任意数量n个副本的Un形式的并发程序系列。PDS具有对应于它所表示的线程的变量估值的有限控制部分和对递归建模的栈。形式上,PDS是五元组P=(P,Act,Г,c0,Δ),其中P是有限的控制位置集合,Act是有限的动作集合,Г是有限的栈字母表,且 是有限的转换规则集合。如果((p,γ),a,(p′,w))∈Δ,则 P的配置是(p,w)对,其中p∈P表示控制位置,而w∈Г*表示栈内容。将c0称为P的初始配置。P的所有配置的集合用C表示。对于每个动作a,将关系 定义如下:对于每个v∈Г*,如果 则
用{U}n表示并发程序系列U2、U3、...,其中Um表示模板U的m个副本的交错并行组成。由U[i]表示的U的第i个副本经由锁定、成对和异步会合、广播和布尔保护(合取和析取)等标准同步原语与其它副本进行通信。成对会合是受CCS的启发,其中利用异步会合和广播来对JavaTM的Wait/Notify和Wait/NotifyA1l原语进行建模。Un的语义按照常见方式定义,因此为简单起见及其省去。
对嵌套和非嵌套锁定加以区分。如果沿程序的每次计算,线程只可释放它沿该计算获得并且尚未释放的上一次锁定,则并发程序以嵌套方式访问锁定。
正确性属性:多线程程序中要检验的重要属性之一是数据竞争的缺失。双重属性、例如数据竞争的存在可表示如下:其中c1和c2是与正在访问同一共享变量的程序语句对应的U的控制位置。因此,考虑定式EF(c1∧,...,∧ck)的属性的PMCP,其中c1、...、ck是U的控制位置。形式上,该问题是判定是否成立。
成对和异步会合:从考虑经由成对会合进行交互的PDS的参数化系统的安全性属性的模型检验问题开始。与具有甚至两个PDS的系统的模型检验问题变得不可判定的非参数化情形不同,经证实,对于参数化系统,模型检验问题不仅可判定,而且还可有效判定。
令{Un}为由建模为经由成对会合进行同步的PDS的模板进程U所定义的参数化系列。这里,U的动作符号的集合∑包括内部转换标签的集合∑in以及发送和接收成对会合转换的集合∑pr×{!}和∑pr×{?}。假设,同步转换、例如由∑pr×{!}∪∑pr×{?}中的动作所标记的那些转换不会修改执行转换的PDS的栈。对于动作1∈∑pr,将用1!和1?标记的一对转换称为匹配。回想一下,对于pr∈∑pr×{!}∪∑pr×{?},如果在局部状态c中存在Un的进程U[j],则在全局配置s中激活Un的进程U[i](其中i≠j)的转换 使得在Δ中存在定式 的匹配转换。为了执行该会合,将在一个原子步骤中同步激发(fire)成对的发送和接收转换tr1和tr2。
判定PMCP的策略如下。首先经证实,可将EF(c1∧,...,∧ck)的PMCP缩减为各个控制状态的可达性、例如EFc(其中,c是U的控制状态)的PMCP。然后,给出用于判定各个控制状态的可达性的PMCP的新有效方法。从以下定义开始。
定义1。(参数化可达性)如果对于某个n,由于控制状态c(配置c)中的进程而存在Un的可达全局配置s,则认为模板进程U的控制状态c(配置c)是参数化可达的。
首先证明,如果U的配置c是参数化可达的,则给定l,对于某个k,存在具有c的至少l个副本的Uk的可达全局状态s。换句话说,可将U的每个参数化可达配置的多重性加大到任何任意大的值。这减轻了跟踪U的每个配置的多重性的负担。形式上,证明如下。
命题1。(无边界的多重性)。令R为U的所有参数化可达配置的集合,并令R′为R的有限子集。然后,给定l,对于某个m,存在导致全局状态s的Um的有限计算,其中具有R′中的每个配置的至少l个副本。
控制状态可达性的PMCP:对于U是有限状态标示转换系统(无栈)的情形,判定控制状态的参数化可达性的问题可通过简易定点法来有效解决。从只包含U的初始状态的集合R0开始。在每次迭代中,通过添加新控制状态b而从Ri构建控制状态集合Ri+1,其中存在定式a->b(a∈Ri)形式的内部转换,或存在定式a->b的成对会合发送(接收)转换以及匹配的接收(发送)转换c->d,其中a和c都在Ri中。注意,如果控制状态的数量Q有限,则可保证以上过程在|Q|个步骤中终止。
但是,如果模板U是PDS,则不能保证以上过程奏效。实际上,考虑具有两个控制状态a和b、栈字母表{α,β}和单个内部转换tr: 的简单模板U。因为系统Un中的每个进程U[i]的栈都是从空开始的,所以可从不执行转换tr。因此,即使在对U的控制状态执行以上方法同时忽略栈操作时b是可达的,但b仍不是参数化可达的。除了确保满足由成对会合施加的同步限制外,还需确保定点计算的每个步骤中包含在Ri+1中的新控制状态可从Ri中的已有可达状态与上下文无关地达到。
参照图2和图3,说明性地描绘用于判定参数化控制状态可达性的PMCP的方法。考虑如图2所示的模板进程U。假设,需要判定对于某个nEFc1是否成立。从只包含U的初始状态c0的集合R0={c0}开始。然后,构建一系列集合,其中Ri+1是通过添加变得参数化可达的新控制状态而从Ri获得的,其中假定Ri中的所有状态均参数化可达。
如上所示,仅仅通过取Ri与控制状态b的并集并不能获得Ri+1,其中还存在定式a→b的内部转换,或存在定式 和 (a、c∈Ri)的一对会合发送和接收。这个步骤只能处理同步限制。另外,假设Ri中的所有状态都是参数化可达的,还需测试所添加的控制状态是否上下文无关可达。以相吻合的方式处理这两种限制。
首先,为了满足同步限制,将使得存在定式 的转换的定式 的所有转换转化为定式 的内部转换,其中p和p′是匹配的发送和接收会合动作、c∈Ri,且τ是∑in中新引入的特殊动作符号。这受到以下事实的启发:因为c是参数化可达的,所以经由命题1可确保如果a变得参数化可达(现在或在以后某次迭代中),则对于某个m通过各自在局部状态a和c中的进程存在Um的可达全局状态。换句话说,如果a变得可达,则总是可以激活并执行会合转换 。因此,可将它像内部转换一样对待。以此方式,通过溢出(flood)Ri的所有控制状态,可去除由源自Ri中的控制状态的成对发送或接收转换所引起的所有同步约束。这将激活具有始于Ri中的控制状态的相匹配发送/接收的每个会合转换。因此,可用内部转换取代这些转换。受此启发,将Ui+1定义为是通过以下方法从Ui获得的模板:用内部转换取代如上所述的适当成对会合发送/接收转换,并去除剩余的会合发送和接收转换。
为了检验第二约束、例如上下文无关可达性,现在可利用对PDS模型检验的任何过程,以便确定各个PDS Ui中可达的U的那些控制状态的集合。这给出Ui中的所有上下文无关可达状态的集合。如果在上一步中经由去除一些同步约束而使新控制状态变得可达,则将它们添加到Ri+1中;否则,到达固定点,过程终止。
在此实例中,将R0初始化为{c0}。这激活了两个转换 和 并且因此可将它们转化为内部转换,从而产生如图3所示的模板Ui。在第二次迭代中,注意,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中,从而到达固定点而导致方法终止。下文将在方法A中给出对该方法的描述。
对于由经由成对会合进行交互的模板PDS U组成的系统,控制状态可达性以及因此的k-阶(k-wise)的可达性的参数化模型检验问题可在O(|Q|4)次中判定,其中Q是U的控制状态集合。
方法A:对会合的参数化控制状态可达性:
1.初始化i=0且R0={c0},其中c0是U的初始状态;
2.重复;
3.i=i+1;
4.通过以下方法构建PDS Ui:用内部转换 取代使得存在定式 (其中c∈Ri-1)的相匹配接收(发送)转换的定式 的模板U的每个成对发送(接收)转换,并去除剩余的成对发送或接收会合转换;
5.利用用于对各个PDS模型检验的过程来计算Ui的可达控制位置的集合
6.设置
7.直到
8.返回Ri。
异步会合:用于判定经由比成对会合更具表达力的异步会合进行交互的PDS的PMCP的方法与方法A非常类似。一个细微修改说明异步会合的略微不同的语义。唯一的差别在于,不管是否存在匹配的接收 都可执行异步发送转换 另一方面,接收转换需要当前激活匹配的发送,然后自动同时激发发送和接收转换。现在,对方法A中的PDS Ui的构建做出如下修改:用内部转换 取代模板U的定式 形式的每个成对发送转换。另一方面,为了用内部转换 取代定式 的接收转换,需要测试是否存在定式 的匹配发送转换,其中c∈Ri-1。去除剩余的接收异步会合转换。该方法的时间复杂性保持不变。
析取保护:考虑经由析取保护进行交互的PDS的PMCP。这里,U的转换用作为定式∨(c1∨...∨ck)的布尔表达式的保护标记,其中c1、...ck是U的控制状态。在Un中的模板U的副本U[i]中,将U的转换重写为定式的转换。在Un中,如果在局部状态c1、...、cn的至少之一中存在U[i]以外的进程U[j],则在Un的全局配置中激活U[i]的此类转换。具有经由布尔保护进行通信的进程的并发系统受到Dijkstra的保护命令模型的启发。Dijkstra的保护命令模型在本领域中是已知的。可证明,经由析取保护进行通信的有限状态进程的PMCP是可有效判定的。用于判定经由析取保护进行交互的PDS的PMCP的广义方法与经由成对会合进行交互的PDS的方法类似,但技术细节有所不同。如上所述,通过证明无边界的多重性结果有效而开始。
命题2。(无边界的多重性)。令R为经由析取保护进行交互的PDS U的所有参数化可达配置的集合,并令为R的有限子集。然后,给定l,对于某个m,存在导致具有中的每个配置的至少l个副本的全局状态s的Um的有限计算。因此,如同经由成对会合进行交互的PDS的情形,该问题现在缩减为判定控制状态可达性的PMCP。通过一个简单实例来说明该过程。
参照图4和图5,示出说明性模板进程U。假设希望判定对于某个n,Un|=EFc1是否成立。从只包含U的初始状态c0的集合R0={c0}开始。然后,构建一系列集合R0、...、Rm,其中Ri+1是通过添加变得参数化可达的新控制状态而从Ri所获得的,其中假定Ri中的所有状态都是参数化可达的。
当从Ri构建Ri+1时,需要确保只有新控制状态在由(i)经由析取保护的同步和(ii)上下文无关可达性所施加的约束下是可达时才将它添加到Ri+1中。为此,将定式的所有转换转化为定式 的内部转换,其中对于某个j,cj∈Rj。这受到以下事实的启发:因为cj是参数化可达的,所以通过经由命题2确保对于某个j在局部状态cj中存在进程,可总是激活转换然后,如上所述,通过溢出Ri的所有控制状态,可去除由析取保护引起的所有同步约束,其中析取保护具有在Ri中出现的状态之一作为析取项(disjunct)。这将激活用这种保护所标记的每个转换,因此可以用内部转换取代。受此启发,令Ui+1是通过以下方法从U获得的模板:用内部转换取代如上所述用析取保护所标记的适当转换,并去除剩余的用保护所标记的转换。然后,通过利用所述模型检验PDS的有效过程,确定(各个)PDS Ui中的可达控制状态的集合。如果 ,则定义
在此实例中,将R0初始化为{c0}。这激活了转换因此可将它转化为内部转换,从而导致如图5所示的模板U1。在第二次迭代中,注意,c0、c6和c8是模板U1的可达控制状态,并且因此R1={c0,c6,c8}。现在,因为c0∈R1,所以转换变得被激活,并且可转化为内部转换,从而产生模板U2。在U2中,控制状态c4、c5和c7现在变得可达,因此将其添加到R2中,从而产生R3={c0,c1,c4,c5,c6,c7,c8}。因为c7∈R3,所以将转换转化为内部转换,从而产生模板U3,由此到达固定点,并导致方法终止。注意,控制状态c1和c2不是参数化可达的。下文给出对方法B的描述。
方法B:析取保护的参数化控制状态可达性:
1.初始化i=0且R0={c0},其中c0是U的初始状态;
2.重复;
3.i=i+1;
6.设 ;
7.直到 ;
8.返回Ri。
方法B返回U的参数化可达控制状态的集合。复杂性分析:如上所述,整个方法B在O(|Q|4)中运行。对于由经由析取保护进行交互的模板PDS U组成的系统,可在O(|Q|4)时间中判定控制状态可达性以及因此的k-阶(k-wise)可达性的参数化模型检验问题,其中Q是U的控制状态的集合。
锁定:考虑经由锁定进行交互的PDS的EF(c1∧,...,∧ck)的PMCP。该问题对于具有嵌套锁定的PDS可判定,但对于具有非嵌套锁定的PDS则不可判定。这表明,尽管考虑具有成对会合的PDS的模型检验问题的参数化版本时其变得可判定,但对于锁定,情况并非如此。从嵌套锁定的情形开始。为简单起见,考虑定式EF(c1∧c2)的属性的PMCP。我们认为,对于n≥2,如果U2|=EF(c1∧c2),则Un|=EF(c1∧c2)。这将判定EF(c1∧c2)的PMCP的问题缩减为具有经由嵌套锁定进行交互的两个PDS的系统的标准模型检验问题,该问题表明是可有效判定的。我们认为,EF(c1∧,...,∧ck)的PMCP是可判定的。对于非嵌套锁定的情形,对于经由非嵌套锁定进行交互的PDS,EF(c1∧c2)的PMCP是不可判定的。
合取保护:对于其中PDS经由合取保护进行交互的参数化系统,判定参数化控制可达性的问题是不可判定的。
本发明原理包括一种用于对参数化并发软件进行过程间数据流分析的新方法。有两个主要优点。首先,与假定线程间没有任何有效通信或使用如加宽的过近似试探法的现有技术相比,这些系统和方法适用于现实可行且具有表达力的通信模型。其次,本发明的系统和方法比现有技术更具扩展性和有效性,因为它们将对具有多个线程的程序的分析缩减为各个线程的扩充版本。
此外,本发明实施例经证实是有效且准确的,例如是健全和完备的。我们将对包括经由锁定进行通信的多个线程的并发程序的过程间数据流分析缩减为可靠性问题的多个实例,例如分析程序的给定的状态集合是否可从另一个给定状态达到。本质上,为了执行可达性,需要测试:(1)满足线程间的同步原语所施加的约束,以及(2)上下文无关可达性(由递归引起)有效。我们按相吻合(即,交错)的方式这样进行。
该新验证方法的价值包括:1)将过程间数据流分析扩展到线程间通信的现实可行模型的参数化并发域。本发明实施例对所有的标准JavaTM通信原语建模。现有技术只考虑无任何有效通信的模型。2)本发明的系统和方法比现有技术快速,其中时间复杂度是一个线程(一个PDS)的大小的多项式。3)本发明实施例更具扩展性,即,可潜在地验证比现有技术大的程序。这是通过避免构建给定程序的全局状态空间、从而绕过状态爆炸问题来实现的。分析从并发多线程程序缩减到其各个线程。4)本发明实施例既健全又完备,从而避免由不太精确的技术产生的伪造错误踪迹(trace)。从商业角度看,这很重要,因为现实中的验证所花费的大多数资源是用于检测/避免伪造错误踪迹的。本发明实施例易于实现,并且可以容易地结合于现有工具流中。
在描述完对安全性模型检验参数化线程的系统和方法的优选实施例(它们用于说明而非限制)之后,注意,鉴于以上教导,本领域技术人员可做出修改和改变。因此,将了解,可对所公开的这些特定实施例做出改变,而这些改变在如随附权利要求所概述的本发明的范围和精神内。因此,在用专利法所要求的细节和详情描述完本发明的各个方面之后,专利证书所要求的和旨在保护的内容如随附权利要求所述。
Claims (18)
1.一种用于计算计算机系统的并发程序中的数据流的方法,包括:
给定并发程序,初始化(12)可达控制状态集合;
基于所述可达控制状态集合,去除(14)所述控制状态之间的同步构造;
用内部转换取代(14)所述同步构造;
添加(16)通过所述同步构造的所述去除所揭示的新可达控制状态,其中,利用对单线程的模型检验来发现所述新可达控制状态;以及
通过审查完整的可达控制状态集合来验证(20)所述多个并发程序的数据竞争自由。
2.如权利要求1所述的方法,还包括检验(16)所述控制状态的上下文无关可达性。
3.如权利要求1所述的方法,还包括重复进行(17)直到找不到新控制状态为止。
4.如权利要求1所述的方法,其中,基于在所述程序中是否存在只包含从初始状态开始的内部转换的路径而发现(16)新控制状态。
5.如权利要求1所述的方法,其中,取代所述同步构造包括:用所述内部转换取代从已经达到的控制状态开始的会合发送(接收)转换以及同样从已经达到的控制状态开始的匹配接收(发送)转换。
6.如权利要求1所述的方法,其中,所述系统包括同一下推系统(PDS)的多个副本,并且验证数据竞争自由(20)包括经由成对和异步会合、析取保护和嵌套锁定进行交互以计算单PDS的可达状态。
7.如权利要求1所述的方法,其中,所述系统包括多个下推系统(PDS),并且所述PDS经由成对会合进行交互,其中所述PDS之间的交互对于成对可达性是可判定的。
8.如权利要求1所述的方法,其中,验证(20)数据竞争自由包括验证不同程序的控制状态的成对可达性。
9.一种用于计算并发程序中的数据流的计算机介质,包括计算机可读程序,其中,所述计算机可读程序在计算机上执行时使所述计算机执行以下步骤:
给定并发程序,初始化(12)可达控制状态集合;
基于所述可达控制状态集合,去除(14)所述控制状态之间的同步构造;
用内部转换取代(14)所述同步构造;
添加(16)通过所述同步构造的所述去除而揭示的新可达控制状态,其中,利用对单线程的模型检验来发现所述新可达控制状态;以及
通过审查完整的可达控制状态集合来验证(20)所述多个并发程序的数据竞争自由。
10.一种用于计算计算机系统的计算机程序中的数据流的方法,包括:
将并发程序建模(12)为具有多种配置的下推系统;
初始化(12)可达控制状态集合;
基于所述可达控制状态集合,去除(14)同步构造;
用内部转换取代(14)所述同步构造;
对所述系统进行模型检验(16)以确定上下文无关可达性,以便查找单线程的新控制状态;
添加(16)通过所述模型检验而揭示的新可达控制状态;
重复进行(17),直到找不到新控制状态为止;以及
基于完整的可达控制状态集合解决(20)参数化模型检验问题。
11.如权利要求10所述的方法,其中,所述内部转换包括控制状态之间的路径。
12.如权利要求10所述的方法,其中,所述内部转换包括控制状态集合中的会合发送(接收)转换以及匹配接收(发送)转换。
13.如权利要求10所述的方法,其中,用内部转换取代所述同步构造包括去除(14)未转变为内部转换的所有同步构造。
14.如权利要求10所述的方法,所述解决包括对不同程序的控制状态验证(20)数据竞争自由。
15.如权利要求14所述的方法,其中,所述验证(20)包括对成对会合、异步会合、析取保护和嵌套锁定确定可判定交互。
16.如权利要求10所述的方法,其中,所述系统包括多个下推系统(PDS),并且所述PDS经由成对会合进行交互,其中,所述PDS之间的交互对于成对可达性是可判定的。
17.如权利要求10所述的方法,其中,所述系统包括同一下推系统(PDS)的多个副本,并且解决(20)参数化模型检验问题包括经由成对和异步会合、析取保护和嵌套锁定的交互验证数据竞争自由,以计算单PDS的可达状态。
18.一种用于计算计算机程序中的数据流的计算机介质,包括计算机可读程序,其中,所述计算机可读程序在计算机上执行时使所述计算机执行以下步骤:
将并发程序建模(12)为具有多种配置的下推系统;
初始化(12)可达控制状态集合;
基于所述可达控制状态集合,去除(14)同步构造;
用内部转换取代(14)所述同步构造;
对所述系统进行模型检验(16)以确定上下文无关可达性,以便查找单线程的新控制状态;
添加(16)通过所述模型检验所揭示的新可达控制状态;
重复进行(17),直到找不到新控制状态为止;以及
基于完整的可达控制状态集合解决(20)参数化模型检验问题。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US82824606P | 2006-10-05 | 2006-10-05 | |
US60/828,246 | 2006-10-05 | ||
US88404807P | 2007-01-09 | 2007-01-09 | |
US60/884,048 | 2007-01-09 | ||
PCT/US2007/080387 WO2008043005A1 (en) | 2006-10-05 | 2007-10-04 | Model checking parameterized threads for safety |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101512481A true CN101512481A (zh) | 2009-08-19 |
CN101512481B CN101512481B (zh) | 2012-05-09 |
Family
ID=39268815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800328847A Expired - Fee Related CN101512481B (zh) | 2006-10-05 | 2007-10-04 | 模型检验安全性的参数化线程 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8380483B2 (zh) |
EP (1) | EP2069911A4 (zh) |
JP (1) | JP2010506309A (zh) |
CN (1) | CN101512481B (zh) |
WO (1) | WO2008043005A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488254A (zh) * | 2015-11-24 | 2016-04-13 | 上海核工程研究设计院 | 一种pds三维模型解析及重构方法 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008137223A1 (en) * | 2007-05-07 | 2008-11-13 | Nec Laboratories America, Inc. | Accelerating model checking via synchrony |
US9547511B2 (en) | 2009-06-05 | 2017-01-17 | Microsoft Technology Licensing, Llc | Language-based model for asynchronous operations |
CN101630275B (zh) * | 2009-07-31 | 2012-07-04 | 清华大学 | 一种实现生成循环任务配置信息的方法和装置 |
US8561029B2 (en) * | 2009-09-30 | 2013-10-15 | Nec Laboratories America, Inc. | Precise thread-modular summarization of concurrent programs |
US8433954B2 (en) | 2010-04-20 | 2013-04-30 | Microsoft Corporation | Testing components for thread safety |
US8543374B2 (en) * | 2010-08-12 | 2013-09-24 | Xerox Corporation | Translation system combining hierarchical and phrase-based models |
CA2738422C (en) * | 2011-04-28 | 2018-11-20 | Ibm Canada Limited-Ibm Canada Limitee | Examining concurrent system states |
US8799889B2 (en) * | 2011-05-09 | 2014-08-05 | International Business Machines Corporation | Application downloading |
CN103257911B (zh) * | 2012-02-15 | 2015-12-16 | 上海大学 | 一种基于soa架构的模型检验工具集成方法 |
US9501331B2 (en) * | 2012-08-09 | 2016-11-22 | Fujitsu Limited | Satisfiability checking |
US9384019B2 (en) * | 2014-03-25 | 2016-07-05 | International Business Machines Corporation | Dynamic code injection |
US11263110B1 (en) * | 2015-12-31 | 2022-03-01 | EMC IP Holding Company LLC | Inter-object validation system and method for the objects of a test system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2147536A1 (en) * | 1994-06-01 | 1995-12-02 | Gerard Johan Holzmann | On-the-fly model checking with partial-order state space reduction |
US7676791B2 (en) * | 2004-07-09 | 2010-03-09 | Microsoft Corporation | Implementation of concurrent programs in object-oriented languages |
US8266600B2 (en) * | 2005-03-28 | 2012-09-11 | Nec Laboratories America, Inc. | Model checking of multi threaded software |
-
2007
- 2007-10-04 WO PCT/US2007/080387 patent/WO2008043005A1/en active Application Filing
- 2007-10-04 US US11/867,178 patent/US8380483B2/en active Active
- 2007-10-04 EP EP07843807A patent/EP2069911A4/en not_active Withdrawn
- 2007-10-04 CN CN2007800328847A patent/CN101512481B/zh not_active Expired - Fee Related
- 2007-10-04 JP JP2009531599A patent/JP2010506309A/ja active Pending
- 2007-10-04 US US11/867,160 patent/US7783470B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488254A (zh) * | 2015-11-24 | 2016-04-13 | 上海核工程研究设计院 | 一种pds三维模型解析及重构方法 |
CN105488254B (zh) * | 2015-11-24 | 2021-06-08 | 上海核工程研究设计院 | 一种pds三维模型解析及重构方法 |
Also Published As
Publication number | Publication date |
---|---|
US8380483B2 (en) | 2013-02-19 |
US20080086723A1 (en) | 2008-04-10 |
EP2069911A4 (en) | 2011-01-19 |
WO2008043005A1 (en) | 2008-04-10 |
JP2010506309A (ja) | 2010-02-25 |
CN101512481B (zh) | 2012-05-09 |
EP2069911A1 (en) | 2009-06-17 |
US20080086296A1 (en) | 2008-04-10 |
US7783470B2 (en) | 2010-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101512481B (zh) | 模型检验安全性的参数化线程 | |
Uchitel et al. | Synthesis of behavioral models from scenarios | |
Beyer et al. | Correctness witnesses: Exchanging verification results between verifiers | |
Letichevsky et al. | Basic protocols, message sequence charts, and the verification of requirements specifications | |
Zhang et al. | Model-based development of dynamically adaptive software | |
López et al. | Protocol-based verification of message-passing parallel programs | |
JP2007528059A (ja) | ソフトウェアのモデル化、抽象、および分析のためのシステムと方法 | |
CN102236549A (zh) | 跨动态边界的运行时分析的可视化 | |
Decker et al. | Execution semantics for service choreographies | |
Lang et al. | Partial model checking using networks of labelled transition systems and boole an equation systems | |
Karfa et al. | Verification of loop and arithmetic transformations of array-intensive behaviors | |
Heinze et al. | Static analysis and process model transformation for an advanced business process to Petri net mapping | |
Philippe et al. | Towards transparent combination of model management execution strategies for low-code development platforms | |
Gadducci et al. | A concurrent graph semantics for mobile ambients | |
CN101438234B (zh) | 参数化并发软件的过程间数据流分析 | |
Dong et al. | Towards verification of computation orchestration | |
Arbab et al. | Synthesis of connectors from scenario-based interaction specifications | |
Dai et al. | Modeling and performance analysis for security aspects | |
Schneider et al. | Synoptic: Summarizing system logs with refinement | |
Urdahl et al. | Architectural system modeling for correct-by-construction RTL design | |
Mussa et al. | Model-based test cases reuse and optimization | |
Ermagan et al. | Aspect-oriented modeling approach to define routing in enterprise service bus architectures | |
Beschastnikh | Modeling systems from logs of their behavior | |
Limaye et al. | Beaver: An SMT solver for quantifier-free bit-vector logic | |
Martinez et al. | Design and verification of web services compositions |
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 CORPORATION Free format text: FORMER OWNER: NEC LAB AMERICA INC. Effective date: 20121109 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20121109 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 |
Granted publication date: 20120509 Termination date: 20181004 |
|
CF01 | Termination of patent right due to non-payment of annual fee |