基于PETRI网和常微分方程组的并发系统死锁分析方法.pdf

上传人:三** 文档编号:6355412 上传时间:2019-06-03 格式:PDF 页数:10 大小:530.22KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510481990.X

申请日:

2015.08.03

公开号:

CN105183700A

公开日:

2015.12.23

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 17/13申请日:20150803|||公开

IPC分类号:

G06F17/13

主分类号:

G06F17/13

申请人:

浙江理工大学

发明人:

丁佐华; 周远

地址:

310018 浙江省杭州市江干经济开发区白杨街道2号大街928号

优先权:

专利代理机构:

杭州求是专利事务所有限公司 33200

代理人:

邱启旺

PDF下载: PDF下载
内容摘要

本发明公开了一种基于Petri网和常微分方程组的并发系统死锁分析方法,包括如下步骤:(1)根据系统结构构建并发系统的离散Petri网模型;(2)根据所得的离散Petri网模型,为每个变迁分配一个实施速率,从而构建对应的连续Petri网模型;(3)根据连续Petri网的语义,构建常微分方程组;(4)利用MATLAB求解常微分方程组;(5)根据常微分方程组的解计算系统的性能指标,如吞吐量、响应时间和利用率等。本发明提供的方法既能够对并发系统进行形式化建模,又能够有效的解决并发系统中的状态爆炸问题,从而得到并发系统的近似性能,为并发系统的性能测试和评估提供一种可应用的实际解决方案。

权利要求书

权利要求书
1.  一种基于Petri网和常微分方程组的并发系统死锁分析方法,其特征在于,包括如下步骤:
(1)并发系统的离散Petri网建模:根据并发系统的行为和各组件之间的通信,构建离散Petri网模型;
(2)根据步骤1构建的离散Petri网,构建连续petri网模型:离散Petri网和连续petri网具有相同的网结构,其中在连续Petri中每个变迁都分配了一个实数,称之为变迁实施速率,它是平均变迁实施延时的倒数;
(3)根据步骤2构建的连续Petri网,建立常微分方程组:库所的标识对应常微分方程组的变量,每个库所的标识变化可以用一个常微分方程来描述;而常微分方程组的解可以用来近似对应的离散Petri网在稳定状态下的平均标识;
(4)利用MATLAB的ode函数求解所得的常微分方程组;对于超大规模的并发系统,选择hMETIS软件和SUNDIALS软件的PVODE包进行并行计算求解;
(5)根据Petri网的结构、常微分方程组的解以及各性能指标的计算公式,计算并发系统的响应时间、吞吐量、资源利用率并进行分析:所述响应时间T为一个过程处理用户请求所花费的时间,计算公式为n为该过程所包含的用户请求数,r表示请求平均到达速率;吞吐量为(子)系统在给定窗口时间内所能处理的用户请求数,计算公式为G表示(子)系统的输入变迁,Lt表示等待变迁t进行处理的请求长度,ct表示变迁t的处理速率;资源利用率描述了系统对资源的利用效率,定义为对应库所的平均库所,可以用其对应的库所的平均标识,即对应常微分方程的解来表示。

2.  根据权利要求1所述的基于Petri网和常微分方程组的并发系统死锁分析方法,其特征在于:所述步骤1中,离散Petri网的建立包含两个部分,其一是并发系统中的各个组件的Petri网建模,称为闭合过程网,其二是各个组件之间的通信的建模,利用的是同步通信机制或者异步通信机制。

3.  根据权利要求1所述的基于Petri网和常微分方程组的并发系统死锁分析方法,其特征在于:所述步骤3中的常微分方程组的方程个数等于所得petri网的库所的个数,每个库所对应的方程为下述5种元模型对应的5类常微分方程之一,具体如下:
a)库所p的输入变迁t1的输入库所只有一个p1,且p的输出变迁t2的输入库所也只有一个p,此时p的标识变化方程为m′(τ)=c1m1(τ)-c2m(τ),其中m(τ)表示库所p在时刻τ的标识,m′(τ)表示库所p在时刻τ的瞬时变化速率,即m(τ)的导数;m1(τ)表示库所p1在时刻τ的标识,c1表示t1的实施速率,c2表示t2的实施速率;
b)库所p的输入变迁t1的输入库所只有一个p1,p的输出变迁有两个t2和t3,它们的输入库所都只有p,此时p的标识变化方程为m′(τ)=c1m1(τ)-(c2+c3)m(τ),其中m(τ)表示库所p的标识,m1(τ)表示库所p1的标识,c1表示变迁t1的实施速率,c2、c3分别表示变迁t2、t3的实施速率;
c)库所p的输入变迁t1的输入库所有两个p1和p2,p的输出变迁t2的输入库所只有p,此时p的标识变化方程为m′(τ)=c1min{m1(τ),m2(τ)}-c2m(τ),其中m(τ)表示库所p的标识,m1(τ)表示库所p1的标识,m2(τ)表示库所p2的标识,c1表示变迁t1的实施速率,c2表示变迁t2的实施速率;
d)库所p的输入变迁t1只有一个输入库所p1,p的输出变迁t2的输入库所有两个p和p2,此时p的标识变化方程为m′(τ)=c1m1(τ)-c2min{m(τ),m2(τ)},其中m(τ)表示库所p的标识,m1(τ)表示库所p1的标识,m2(τ)表示库所p2的标识,c1表示变迁t1的实施速率,c2分别表示变迁t2的实施速率;
e)库所p的输入变迁t1有两个输入库所p1和p2,p的输出变迁t2的输入库所有两个p和p3,此时p的标识变化方程为m′(τ)=c1min{m1(τ),m2(τ)}-c2min{m(τ),m3(τ)},其中m(τ)表示库所p的标识,m1(τ)、m2(τ)和m3(τ)分别表示库所p1、p2和p3的标识,c1表示变迁t1的实施速率,c2分别表示变迁t2的实施速率。

4.  根据权利要求1所述的基于Petri网和常微分方程组的并发系统死锁分析方法,其特征在于:所述步骤4中利用MATLAB求解常微分方程的效率会根据硬件的不同而发生变化;考虑到用户的方便性,选用MATLAB来进行求解,但是当实际求解时间超过了预期的时间长度时,改用并行计算进行求解;当petri网的库所的数量级达到了10^7时,改用并行计算:首先利用hMETIS软件将常微分方程组进行划分,然后利用SUNDIALS软件中的PVODE包并行求解各小组的常微分方程。

5.  根据权利要求1所述的基于Petri网和常微分方程组的并发系统死锁分析方法,其特征在于:该方法进行性能分析的时间复杂度为多项式时间,这是因为所得方程的个数是 Petri网中的库所个数,它随着组件数的增加呈现线性增加,而系统的整个状态空间是各个组件的局部状态相乘,此时系统的状态空间将随着组件的增加而呈现指数型增加,因此该发明能够有效解决系统的状态爆炸问题。

说明书

说明书基于Petri网和常微分方程组的并发系统死锁分析方法
技术领域
本发明涉及一种利用常微分方程组来对并发系统进行性能分析的可行性方法,尤其适合于那些因组件过多而产生了状态爆炸问题的并发系统。
背景技术
状态爆炸问题是并发系统性能分析的一个重大挑战。传统的用来进行系统性能分析的数学模型是连续时间Markov链,而且很多模型,例如随机过程代数、随机Petri网以及排队网络等最后都将转化为连续时间Markov链来进行性能分析。但是这里存在的一个重大的挑战是:随着系统复杂度的增加,尤其是对于并发系统来说,随着并发组件的增多,系统的状态将呈现指数型增加,从而导致Markov链因其状态的爆炸而无法进行计算。
发明内容
为了克服并发系统的状态爆炸问题,而又不影响对其进行形式化建模,本发明提供了一种基于Petri网和常微分方程组的并发系统死锁分析方法。
本发明的目的是通过以下技术方案来实现的:首先根据并发系统的行为描述,构建离散Petri网模型,该网能够描述系统的状态变化(此时仅利用Petri网来对系统的行为进行描述,还没考虑各变迁发生的随机性);其次考虑各变迁的随机性,为每个变迁分配一个变迁点火速率(它是变迁的平均延时的倒数),从而得到连续Petri网;然后根据所得到的连续Petri网模型,构建常微分方程组;最后利用MATLAB求解常微分方程组并计算系统的性能指标。具体步骤如下:
(1)并发系统的离散Petri网建模:根据并发系统的行为和各组件之间的通信,构建离散Petri网模型;
(2)根据步骤1构建的离散Petri网,构建连续petri网模型:离散Petri网和连续petri网具有相同的网结构,其中在连续Petri中每个变迁都分配了一个实数,称之为变迁实施速率,它是平均变迁实施延时的倒数;
(3)根据步骤2构建的连续Petri网,建立常微分方程组:库所的标识(marking)对应常微分方程组的变量,每个库所的标识变化可以用一个常微分方程来描述;而常微分方程组的解可以用来近似对应的离散Petri网在稳定状态下的平均标识;
(4)利用MATLAB求解所得的常微分方程组:由于常微分方程的解可以用来近似对应离散Petri网在稳态下的各库所的标识,因此在得到常微分方程组之后,需要求解常微分方程组,所得的常微分方程是非线性的,故需用MATLAB的ode函数来对常微分方程组进行数值求解,从而得到常微分方程组的解;但当并发系统的规模过大时,MATLAB计算时间将花费较长时间,此时考虑并行计算来求解:首先利用hMETIS软件将常微分方程组划分为多个较小规模的常微分方程组,然后利用SUNDIALS软件中的PVODE包并行求解各个常微分方程组。
(5)根据Petri网的结构、常微分方程组的解以及各性能指标的计算公式,计算并发系统的响应时间、吞吐量、资源利用率并进行分析:所述响应时间T为一个过程处理用户请求所花费的时间,计算公式为n为该过程所包含的用户请求数,r表示请求平均到达速率;吞吐量为(子)系统在给定窗口时间内所能处理的用户请求数,计算公式为G表示(子)系统的输入变迁,Lt表示等待变迁t进行处理的请求长度,ct表示变迁t的处理速率;资源利用率描述了系统对资源的利用效率,定义为对应库所的平均库所,可以用其对应的库所的平均标识,即对应常微分方程的解来表示。
进一步地,所述步骤1中,离散Petri网的建立包含两个部分,其一是并发系统中的各个组件的Petri网建模,称为闭合过程网(ClosedProcessNet),其二是各个组件之间的通信的建模,利用的是同步通信机制或者异步通信机制。
进一步地,所述步骤3中的常微分方程组的方程个数等于所得petri网的库所的个数,每个库所对应的方程为下述5种元模型对应的5类常微分方程之一,具体如下:
a)库所p的输入变迁t1的输入库所只有一个p1,且p的输出变迁t2的输入库所也只有一个p,此时p的标识变化方程为m′(τ)=c1m1(τ)-c2m(τ),其中m(τ)表示库所p在时刻τ的标识,m′(τ)表示库所p在时刻τ的瞬时变化速率,即m(τ)的导数;m1(τ)表示库所p1在时刻τ的标识,c1表示t1的实施速率,c2表示t2的实施速率;
b)库所p的输入变迁t1的输入库所只有一个p1,p的输出变迁有两个t2和t3,它们的输入库所都只有p,此时p的标识变化方程为m′(τ)=c1m1(τ)-(c2+c3)m(τ),其中m(τ)表示库所p的标识,m1(τ)表示库所p1的标识,c1表示变迁t1的实施速率,c2、c3分别表示变迁t2、t3的实施速率;
c)库所p的输入变迁t1的输入库所有两个p1和p2,p的输出变迁t2的输入库所只有p,此时p的标识变化方程为m′(τ)=c1min{m1(τ),m2(τ)}-c2m(τ),其中m(τ)表示库所p的标识,m1(τ)表示库所p1的标识,m2(τ)表示库所p2的标识,c1表示变迁t1的实施速率,c2表示变迁t2的实施速率;
d)库所p的输入变迁t1只有一个输入库所p1,p的输出变迁t2的输入库所有两个p和p2,此时p的标识变化方程为m′(τ)=c1m1(τ)-c2min{m(τ),m2(τ)},其中m(τ)表示库所p的标识,m1(τ)表示库所p1的标识,m2(τ)表示库所p2的标识,c1表示变迁t1的实施速率,c2分别表示变迁t2的实施速率;
e)库所p的输入变迁t1有两个输入库所p1和p2,p的输出变迁t2的输入库所有两个p和p3,此时p的标识变化方程为m′(τ)=c1min{m1(τ),m2(τ)}-c2min{m(τ),m3(τ)},其中m(τ)表示库所p的标识,m1(τ)、m2(τ)和m3(τ)分别表示库所p1、p2和p3的标识,c1表示变迁t1的实施速率,c2分别表示变迁t2的实施速率。
进一步地,该方法进行性能分析的时间复杂度为多项式时间,这是因为所得方程的个数是Petri网中的库所个数,它随着组件数的增加呈现线性增加,而系统的整个状态空间是各个组件的局部状态相乘,此时系统的状态空间将随着组件的增加而呈现指数型增加,因此该发明能够有效解决系统的状态爆炸问题。
本发明的有益效果是:本发明方法通过对各个组件的局部状态构建常微分方程,得到常微分方程的个数为各个组件的局部状态的累和,而原来对应的Markov链的状态是各个组件的局部状态的累积,因此它能够较为有效的避免系统的状态爆炸问题。本发明提供的方法既能够对并发系统进行形式化建模,又能够有效的解决并发系统中的状态爆炸问题,从而得到并发系统的近似性能,为并发系统的性能测试和评估提供一种可应用的实际解决方案。
附图说明
图1为本发明中对组件进行建模的网结构的例子;
图2为本发明中对组件的通信进行建模的网结构,(a)为同步通信机制;(b)为异步通信机制;
图3(a)-(e)为本发明中连续petri网中的5种元模型。
具体实施方式
下面结合说明书附图对本发明的技术方案作进一步详细说明。
本发明是一种基于Petri网和常微分方程组的并发系统死锁分析方法。主要应用于具有多个并发组件的并发系统的性能分析。主要步骤有:对并发系统进行离散Petri网建模,根据所得Petri网模型构建并发系统的连续Petri网,由连续Petri网模型建立常微分方程组,利用MATLAB求解常微分方程组,根据常微分方程的解计算并分析系统的性能指标。具体步骤如下:
(1)并发系统的离散Petri网建模:根据并发系统的行为和各组件之间的通信,构建离散Petri网模型;并发系统的建模包含两个部分,第一部分是对各组件的行为进行建模,其模型是一个闭合过程网,闭合过程网的特点是(a)起始库所和终止库所是同一个库所,(b)每个变迁有且只有一个输入库所和一个输出库所,图1给出了一个简单的闭合过程网,注意不同的系统以及系统的抽象程度不同将产生不同的闭合过程网。第二部分是对组件的通信进行建模,图2给出了两个闭合过程网进行同步通信和异步通信的网络结构。
(2)根据步骤1构建的离散Petri网,构建连续petri网模型:离散Petri网和连续petri网具有相同的网结构,其中在连续Petri中每个变迁都分配了一个实数,称之为变迁实施速率,它是平均变迁实施延时的倒数;变迁的实施速率从系统的需求规范中提取或者由领域专家给出合适的经验数值。
(3)根据步骤2构建的连续Petri网,建立常微分方程组:库所的标识(marking)对应常微分方程组的变量,每个库所的标识变化可以用一个常微分方程来描述;而常微分方程组的解可以用来近似对应的离散Petri网在稳定状态下的平均标识;常微分方程组的方程个数等于所得petri网的库所的个数,每个库所对应的方程为下述5种元模型对应的5类常微分方程之一,如图3所示,具体如下:
a)库所p的输入变迁t1的输入库所只有一个p1,且p的输出变迁t2的输入库所也只有一个p,附图3(a),此时p的标识变化方程为m′(τ)=c1m1(τ)-c2m(τ),其中m(τ)表示库所p在时刻τ的标识,m′(τ)表示库所p在时刻τ的瞬时变化速率,即m(τ)的导数;m1(τ)表示库所p1在时刻τ的标识,c1表示t1的实施速率,c2表示t2的实施速率;
b)库所p的输入变迁t1的输入库所只有一个p1,p的输出变迁有两个t2和t3,它们的输入库所都只有p,附图3(b),此时p的标识变化方程为m′(τ)=c1m1(τ)-(c2+c3)m(τ),其中m(τ)表示库所p的标识,m1(τ)表示库所p1的标识,c1表示变迁t1的实施速率,c2、c3分别表示变迁t2、t3的实施速率;
c)库所p的输入变迁t1的输入库所有两个p1和p2,p的输出变迁t2的输入库所只有p,附图3(c),此时p的标识变化方程为m′(τ)=c1min{m1(τ),m2(τ)}-c2m(τ),其中m(τ)表 示库所p的标识,m1(τ)表示库所p1的标识,m2(τ)表示库所p2的标识,c1表示变迁t1的实施速率,c2表示变迁t2的实施速率;
d)库所p的输入变迁t1只有一个输入库所p1,p的输出变迁t2的输入库所有两个p和p2,附图3(d),此时p的标识变化方程为m′(τ)=c1m1(τ)-c2min{m(τ),m2(τ)},其中m(τ)表示库所p的标识,m1(τ)表示库所p1的标识,m2(τ)表示库所p2的标识,c1表示变迁t1的实施速率,c2分别表示变迁t2的实施速率;
e)库所p的输入变迁t1有两个输入库所p1和p2,p的输出变迁t2的输入库所有两个p和p3,附图3(e),此时p的标识变化方程为m′(τ)=c1min{m1(τ),m2(τ)}-c2min{m(τ),m3(τ)},其中m(τ)表示库所p的标识,m1(τ)、m2(τ)和m3(τ)分别表示库所p1、p2和p3的标识,c1表示变迁t1的实施速率,c2分别表示变迁t2的实施速率。
(4)利用MATLAB求解所得的常微分方程组:由于常微分方程的解可以用来近似对应离散Petri网在稳态下的各库所的标识,因此在得到常微分方程组之后,需要求解常微分方程组,所得的常微分方程是非线性的,故需用MATLAB的ode函数来对常微分方程组进行数值求解,从而得到常微分方程组的解;当常微分方程组的规模过大时,利用MATLAB求解所需的时间过长,故考虑并行计算来提高求解效率。由于MATLAB求解常微分方程组的操作便捷性,对小规模的方程组,优先考虑MATLAB进行求解;当发现MATLAB计算的时间超出了预期时间时,选择并行计算进行求解,具体方法为:首先利用hMETIS软件将常微分方程组划分为多个较小规模的常微分方程组,然后利用SUNDIALS软件中的PVODE包并行求解各个常微分方程组。
(5)根据Petri网的结构、常微分方程组的解以及各性能指标的计算公式,计算并发系统的响应时间、吞吐量、资源利用率并进行分析:所述响应时间T为系统处理用户请求所花费的时间,计算公式为P为该系统所包含的库所,r表示标识平均到达速率,即:系统中所有库所的标识和/子系统的平均标识到达速度;吞吐量为(子)系统在给定窗口时间内所能处理的用户请求数,计算公式为G表示(子)系统的输入变迁,Lt表示等待变迁t进行处理的请求长度,ct表示变迁t的处理速率,即:变迁t的队列长度/t的点火速率;资源利用率描述了系统对资源的利用效率,定义为对应库所的平均库 所,可以用其对应的库所的平均标识,即对应常微分方程的解来表示,计算公式为:(1-m(p))*100%。
该方法适合所有的并发系统,尤其适合只需对性能进行初步估计的具有很多并发组件的应用型并发系统,如服务组合、Web应用等。该方法进行性能分析的时间复杂度为多项式时间,这是因为所得方程的个数是Petri网中的库所个数,它随着组件数的增加呈现线性增加,而系统的整个状态空间是各个组件的局部状态相乘,此时系统的状态空间将随着组件的增加而呈现指数型增加,因此该发明能够有效解决系统的状态爆炸问题。

基于PETRI网和常微分方程组的并发系统死锁分析方法.pdf_第1页
第1页 / 共10页
基于PETRI网和常微分方程组的并发系统死锁分析方法.pdf_第2页
第2页 / 共10页
基于PETRI网和常微分方程组的并发系统死锁分析方法.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《基于PETRI网和常微分方程组的并发系统死锁分析方法.pdf》由会员分享,可在线阅读,更多相关《基于PETRI网和常微分方程组的并发系统死锁分析方法.pdf(10页珍藏版)》请在专利查询网上搜索。

本发明公开了一种基于Petri网和常微分方程组的并发系统死锁分析方法,包括如下步骤:(1)根据系统结构构建并发系统的离散Petri网模型;(2)根据所得的离散Petri网模型,为每个变迁分配一个实施速率,从而构建对应的连续Petri网模型;(3)根据连续Petri网的语义,构建常微分方程组;(4)利用MATLAB求解常微分方程组;(5)根据常微分方程组的解计算系统的性能指标,如吞吐量、响应时间和利。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1