Concurrency includes parallel and distribution.
进程代数成为了当今复杂系数形式刻画与分析的主要工具,比较著名的有:CCS(calculus of communication system),CSP(communicating sequential processes),LOTOS(国际标准化组织,language of temporal ordering specifications).
假设随机变量D1和D2分别满足参数为lambda1和lambda2的指数分布,则:
P{D1<=D2}= lambda1 / (lambda1+lambda2);
对于存在竞争的状态si(非吸收态),其在时间t内转移到状态sj的概率为:
(1-exp(-lamdbai t)) lambdaij / lambdai.
注意在上面的式子中,如果令t- ->infinity, 可以再次得到从状态si转移到状态sj的概率为: lambdaij / lambdai.这一转移概率实际上刻画了一个与该CTMC相关的DTMC,称之为内嵌的DTMC(embedded DTMC),它的转移概率矩阵为P=(pij)n×n.
在性能评价领域里马尔可夫分析主要关心的几个性能度量:
1. 到达一个吸收状态的平均时间MTA;
2. 第一次到达某个特定状态s的平均时间MTFP(s);
3. 在一个给定的时间t系统处于一个特定的状态s的概率P{Xt=s}.
4. 系统在长时间运行后稳定在某个状态s的概率limt->infinity P{Xt=s} (假定该马尔可夫链能达到一个平稳状态)
Steady-state analysis
Transient analysis
Chapman-Kolmogorov向前方程:P’(t)=P(t) R.
解此微分方程,有Runge-Kutta method, 或基于归一化(uniformization)的方法
CTMC的极限分布满足以下方程:pi=pi P(t)
利用转移率矩阵R,上式可以简化为:pi R=0,
Chapter 3:
IMC: Interactive Markov chains:经典的进程代数模型和连续时间马尔可夫链模型的结合;
进程代数与标记转移系统
动作集合Obs={a,b1,c,…}
系统内部执行的运作tao not in Obs
令:~A~=Obs并{tao}表示所有动作的全集
定义3.1.1 设a in ~A~,A belongs to Obs, Var 表示一个进程变量的集合,x in Var。基本进程代数BPA由以下语法产生:
P::= 0|a.P|P;P|P+P||AP|P\A|x|μx.p
1. 0表示中止进程
2. a.P是动作前缀操作,表示系统先执行动作a,然后执行进程P
3. P1;P2是顺序操作
4. P1+P2是选择操作;这种选择的非确定性是并发系统的一个重要特征,也是与传统顺序相比的一个重要区别特征
5. P||AP是并发操作,也是进程代数中最重要的一个操作,它代表了两个进程的并发执行,其中A belongs to Obs中的动作是两个进程需要同时执行的动作,即需要同步的动作。如果A=empty set,则P1和P2不需要同步任何动作,此时称P1和P2为异步并发执行的,并将||empty set简记为|||.此外,为书写方便,对于只一个元素的集合,省略{a}为a.
6. P\A是隐藏操作,或者叫做抽象操作,行为与P类似,唯一的不同是进程P\A中那些在集合A中的动作都被看成内部动作(通过改名为tao),即外部将不再可观察到。
7. x和μx.p是为了支持递归操作而引入的操作符,其中x代表一个进程变量,μx.p是递归表达式,其中变量x可能在进程P中出现形成一个递归函数。称被递归算子μ限制的变量(如x|μx.p中的x)为约束(bound)变量,没有被递归算子限制的变量称为自由(free)变量。自由变量可以通过替换来实例化(instantiated),而约束变量则是不受变量替换的影响,因经约束变量的名字可以被认为是无关紧要的。一个进程表达式中的某项如果没有自由变量,则称该项为闭项(closed),反之称为开项(open)。对于递归表达式,要求递归项是良性护卫的(well-guarded),这一条件保证了递归项的语义模型与它的指称函数的不动点相对应并且是唯一的。递归表达式的引入使得进程代数的表达能力更强大,更适合描述一些特定的系统。
默认优先级(高- ->低):
. ; + || \
进程代数作为一种严格的形式刻画方法,除了要有严格定义的语法结构外,还需要有严格定义的语义模型。(SOS,structural operational semantics)采用下面的表达方式
前提1∧前提2∧…∧前提n
-------------------------------------- (条件)
结论
称为一条规则:如果条件成立的话,该规划可以应用,并且当前提1到前提n都满足时,结论成立。其中规则中的前提与结论都具有 P- -(a)- ->P’,表示进程P可以执行动作a,同时演变成进程P’。
表3.1 BPA的结构化操作语义
略,其中P{Q/x}表示将进程P中所有进程变量x的出现都替换成进程Q得到的进程;
- -(a)- ->:标记转移系统(Labeled transition system, LTS)
LTS主要关心的是系统在发生状态转移时所执行的动作,因此是基于动作(action-based)的系统模型。它的形式定义如下:
定义3.1.3 一个LTS是一个四元组(S,Act,--- ->,s0),其中:
1. S是非空的状态集合;
2. Act belongs to ~A~ 是动作集合;
3. --- ->S×Act×S是状态转移关系;
4. s0是初始状态。
LTS通常用图形来表示,能给出一个进程代数直观并且精确的执行过程
例:
S1 |
S2 |
S4 |
S3 |
a |
a |
b |
b |
该LTS表示了这样一个进程的行为: a.b.0+b.a.0,由此可见, LTS能给出一个进程代数直观并且精确的执行过程.
下面考虑两个进程并发执行的操作过程,先考虑不需要同步的情况,假设P1=a.0, P2=b.0,那么P1||P2是如何执行的呢?根据BPA的结构化操作语义,很容易得出与上图相同的模型,这表明,在LTS表示的操作语义模型解释下,可以得出a.0||b.0=a.b.0+b.a.0这样的结论,而这就是两个系统并发执行的交织语义理解,即将两个并发执行的进程看作是两个进程中的动作按照任意可能的交叉顺序执行,因此说LTS是一个交织语义模型.对于需要同步的情况,例如,假设P1=a.0+c.0, P2=b.0+c.0,那么P1||c P2的LTS模型如下图:
c |
S1 |
S2 |
S4 |
S3 |
a |
a |
b |
b |
由上图可以看出,需要同步执行的动作由两个进程同时执行(当两个进程都准备好执行该动作时),而不需要同步的动作则可以按照异步并发的执行方式任意交叉执行.
将上述情况推广到一般的情形,设P=sumi aiPi, Q=sumj bjQj,在交织语义下,有下面的展开定律:
P||AQ = sumai not in A ai(Pi||AQ) +sumbj not in A bj(P||AQj) +sumai=bj in A ai (Pi||AQj) (3.1)
上式给出了两个并发执行的进程严格的交织语义解释,也是进程代数理论中一个重要的等式,如果一个进程代数中允许该式成立,则称交织语义的进程代数;若不允许该式成立,则称该进程代数为真并发语义的进程代数,如用事件结构(event structure)作为语义模型的进程代数.
在交织语义下,任何基本进程代数表达式都可以展开表示为仅包含前缀操作(.)与选择操作(+)的形式,即:
P=a1.a2….an.0+b1.b2….bn.0+…=sumai in Act ai1ai2…ain0
因此,在交织语义下,进程代数的推理可以变得相对简单.
例3.1.4 设P=(a.0+b.0)|||(c.0+d.0),则根据展开定律,可以将P展开如下:
P=(a.0+b.0)|||(c.0+d.0)
=a.()+b.()+c.()+d.()
=a.c.0+a.d.0+b.c.0+b.d.0+c.a.0+c.b.0+d.a.0+d.b.0
带标记的连续时间马尔可夫链
LTS主要用于刻画并发系统行为特征,关注的是系统在发生状态转移的时候所执行的动作,状态本身的信息并不是它所关心的,而性能评价领域常用的马尔可夫链模型则主要关心的是系统所处的状态信息,因此,在用马尔可夫链进行系统的性能评价时,人们常常采用稍作修改的马尔可夫链模型.
Labeled CTMC:
假定AP是所有原子命题的集合,则:
Labeled CTMC是一个四元组(S, - ->, L, alpha0),其中:
S是状态空间集合;
- - -> belongs to S×R+×S,是状态转移关系,称为马尔可夫转移;(虚箭头)
L: S |- -> 2AP是标记函数,用于给每个状态标上该状态所满足的原子命题的集合;
alpha0是初始分布.
s- -(λ)- ->s’.
定义中的L称为标记函数,它是用来给CTMC的状态增加一些附加信息的,这些附加信息是一些原子命题的集合.不失一般性,假设不同的状态满足不同的性质,则这些原子命题的集合就可以用于区分不同的状态,即每个状态都可以由它上面标记的原子命题的集合来唯一标识.这样一来,带标记的CTMC主要关注的就是每个状态上的不同信息了,因此称这样的系统为基于状态的(state-based)系统.
a |
c |
S0 |
S1 |
S3 |
S2 |
1 |
b |
2 |
S4 |
3 |
4 |
c |
例:
上图表示一个带标记的CTMC.其中AP={a,b,c},每个状态所满足的原子命题标在状态旁,状态间的转移仍然保留虚线箭头的形式,对于单元素集合,同样采用了省略花括号的简写方式.
(带标记的)CTMC的语言层次的刻画模型有排队网,随机Petri网,随机活动网,随机进程代数等;逻辑刻画有连续随机逻辑CSL及其变体等.
交互式马尔可夫链IMC
结合LTS与CTMC:
随机进程代数模型:
SPA(stochastic process algebra): SPA模型在结合LTS和CTMC时都有一个共同的特点----它们都是将两个模型不同转移关系(动作转移与概率转移)融合在一个转移关系中,即将:--a-->(实线),与--(λ)-->(虚线) 组合成一个单一的转移关系—(a,λ)-->,其含义是系统发生该状态转移的延迟时间满足参数为λ的指数分布,同时在发生状态转移时系统将执行动作a.由于将两种转移关系合二为一,在这种模型中,系统在不同的状态转移之间选择执行的动作将不再是确定的,因为实际上每个动作执行都由一个确定的概率分布(由参数为λ的指数分布确定)来决定,也就是说,非确定被概率分布所取代.然而非确定性对于并发系统来说是个非常重要的特征,它有助于模拟很多用其他方式不能表达的重要概念,例如:
1. 实现自由 (非确定性)
2. 调度自由 (交织语义模型下非确定性概念的一个经典的使用,几个并发执行的进程在交织语义理解下可以看成是在这些进程之间自由地选择执行)
SPA模型将动作与时间延迟绑定在一个转移关系上,处理带有同步动作的并行操作时就会遇到一些很棘手的问题.
例:
进程P1在动作a和c之间选择,同时动作a与c的执行分别满足参数为λ与ν1;进程P2在动作b和c之间选择,μ与ν2;在交织语义下P1||cP2,由于指数分布的无记忆性,a,b的分布参数不变;但指数分布并不在最大值运算下封闭,即两个满足指数分布的随机变量的最大值不再满足指数分布.因此,动作c的执行所满足的延迟分布不再是指数分布,即同步以后动作c上的分布参数phi无法简单确定下来(实际上已经跳出了SPA的范围). SPA模型总的来说在处理同步并发的时候并不那么令人满意.
总之,SPA模型中有以下两大问题是不能很好解决的:
1. 非确定性不再是真正意义上的非确定性,而是被随机分布所代替;
2. 带同步的并发操作在SPA模型并不能很好地表示出来,因为指数分布在最大值运算下并不封闭.
IMC就是为了解决SPA这些不足而提出来的另外一种结合LTS与CTMC的模型.
交互式马尔可夫链
IMC与SPA不同,它保留两种转移关系而不是将它们合二为一.
一个IMC是指一个五元组(S,Act,à,-->,s0),其中:
S是一个非空的状态集合;
Act belongs to ~A 是一个动作集合;
è belongs to S×Act×S是动作转移关系;
--> in S×R+×S是马尔可夫转移关系,满足:
For all s1,s2 in S, |(--> ∩({s1}×R×{s2}))|<=1
注:对马尔可夫转移关系要求满足的条件说明,任意一对状态之间至多只有一个马尔可夫转移关系.如果存在多个这样的转移关系,根据指数分布的性质,可以简单地将这几个转移关系合为一个,得到的转移为原来各个转移之和.另外,与转移率矩阵R有一点小小的区别是,在马尔可夫转移关系-->,允许到自身的转移,它表示系统经过参数为λ的指数分布延迟后仍然停留在原状态(或转移到自身状态).这一修改并不影响IMC的随机行为,但是却更适合于通常的状态转移解释.
S0是初始状态.
以下,记R(s,s’)为状态s转移到s’的转移率.s上的总转移记为E(s)=sums’ in S R(s,s’).
定理3.3.3 任何一个LTS都与一个IMC同构,任何一个CTMC都与一个IMC同构.
在IMC中,由于动作转移与时间延迟是分离的,因此这些动作转移之间的选择就可以仍然保留LTS的非确定性解释,这样IMC解决了SPA模型中非确定性不能保留的问题.
IMC采用最大前进假设(maximal progress assumption):内部动作(即动作tao)的执行不允许时间延迟的发生,即若系统内部动作要执行的话,该动作的执行是立即的,不允许其他延迟转移发生.因此,如果一个内部动作转移与马尔可夫转移共同存在于一个状态的时候,马尔可夫转移可被忽略.但是对于外部动作(即Obs中的动作)a,它的执行是依赖环境的,或者说它是环境交互的一个动作,因此是有可能被延迟的,假如在一定时间内系统没有执行动作a(或与环境进行动作a的交互),那么系统可以选择执行马尔可夫转移.最大前进假设广泛用于很多实时进程代数中,它反映了内部动作具有比外部动作更高的优先级.
IMC模型中,动作与延迟时间的分离使得我们在考虑同步执行的动作时不必考虑延迟时间,因为它们并不参与同步.需要同步的动作的执行时间发生在并发执行的所有组件都准备好执行该动作的时候,换句话说,IMC将同步动作的延迟隐式地实现为最大分布,因为只有动作转移需要同步,因此同步的发生意味着该动作的所有延迟都已经完成.而对于不需要同步的动作转移以及马尔可夫转移,它们则是按照经典的交织语义来执行的,注意到由于马尔可夫性,马尔可夫转移也是可以任意交叉执行的.
IMC很明确地区分了非确定性和概率,保留了并发系统中非确定性这个重要概念,同时,IMC在带同步动作的并发执行下,简单而优美地解决了同步动作的随机分布问题.
例:
S0 - -λ ->s1àaàs2
S0 - -μ->s1àaàs2
||a:
S0 - -λ ->s1 - -μ->s3
s3àaàs4
S0 - -μ->s2 - -λ ->s3
IMC的代数刻画
定义3.4.1 令a in Act, A belong to Obs, λ in R+, x in Var, 则交互式马尔可夫链进程代数IMPA由以下语法产生:
P::=0|a.P|(λ).P|P;P|P+P|P‖AP|P\A|x|μx.P,
其中,新增加的(λ).P称为延迟前缀操作,表示系统在执行进程P之间需要经过一个参数为λ的指数分布时间延迟,它实际上对应了IMC模型中马尔可夫转移.可见IMPA是BPA一个超集.
例3.4.2 令P,Q in IMPA,则以下是合法的IMPA表达式
(1) a.(λ).(μ ).b.(ν).0
(2) a.P+(λ).Q
(1) 的直观含义是:系统首先与动作a进行交互,执行动作a,然后,系统再进一步与动作b进行交互之前将有两次延迟,第一次满足参数为λ的指数分布,第二次满足参数为μ的指数分布.在系统执行动作b之后,系统经过一个参数为ν的指数分布延迟后中止.
(2) 式是IMPA中一个典型的表达式,它反映了IMC系统中动作转移与马尔可夫转移之间的相互关系.(2)式代表了系统在一个动作转移与马尔可夫转移之间进行选择,这种选择满足最大前进假设,其执行依动作a为内部还是外部动作而定.与BPA一样,我们也以结构化操作语义的方式给出IMPA严格的形式语义.由于IMPA是在BPA的基础上增加了一个延迟前缀得到的,因此IMPA的操作语义中就有两种形式的转移,一种是与BPA中一的动作转移à,另一种则是马尔可夫转移-->,表示系统经过一个参数为λ的指数分布延迟转移,其中动作转移的操作规则仍然满足表3.1里的规则,相应地,马尔可夫转移的操作规则由表3.2给出
表3.2 IMPA马尔可夫转移的结构化操作语义 略
P-/-(τ)-->表示进程P不能以内部动作τ开始执行.注意在P1+P2与P1‖AP2的操作规则中,除了要求其中一个操作能执行马尔可夫转移之外,同时还要求另外一个操作不能执行内部动作转移,这一额外要求就体现了最大前进假设.
另外,两个并发执行的进程,由于同步动作集合与延迟分布没有关系,因此不存在对马尔可夫转移的同步,此时两个并发执行的进程中的马尔可夫转移可以按照任意的交叉顺序来执行,而真正的同步由动作转移满足的规划来决定(表3.1).
根据上面定义的IMPA并发算子的操作语义,可以得出IMPA在交织语义下的展开定律,设:
P=Σi ai.Pi+Σj (λj).Pj,
Q=Σk bk.Qk+Σl (μl).Ql,
则P‖AQ=
与(3.1)式比较一下很容易得出,(3.2)式实际上是(3.1)式的一个直接扩展,增加的随机分布延迟并没有影响的动作转移操作,因此说这种扩展是一种正交的扩展,它反映了IMC在组合传令的LTS与CTMC模型的时候最大可能地保持了两个模型原有的性质,并因此得到了良好的性质.
根据(3.2)式及IMPA的其他算子的操作语义,同样可以将一个IMPA表达式展开表示成以下只含前缀操作(.)和选择操作(+)的标准形式:
这样基于IMPA的推理也可以大大简化了.
没有评论:
发表评论