计算机研究与发展
JOURNAL OF COMPUTER RESEARCH AND DEVELOPMENT
1999　Vol.36　No.7　P.842-847



一种基于状态迁移图的性能评价模型
刘晓冬　李莲治　郭福顺
摘　要：性能评价在计算机系统的选型、改进与设计中是至关重要的.使用模拟模型和队列解析模型可对计算机系统的性能进行分析.但是构造和使用模拟模型的费用较高.而队列解析模型又要求对系统作较多的简化和假设.针对以上模型的不足，文中基于图论和自动机理论提出了一种新的基于状态迁移图的计算机系统性能评价模型，并给出了一个基于状态迁移图模型求解实时系统响应时间的算法.经过证明和时间复杂性分析，该算法是正确而有效的.
关键词：性能评价，状态迁移图，模型，算法
分类号：TP302
AN PERFORMANCE EVALUATION MODEL BASED ON
FINITE STATE TRANSITION GRAPH
LIU Xiao-Dong
（Department of Computer Science and Engineering, Harbin Institute of Technology, Harbin 150001）
LI Lian-Zhi
（Department of Computer Science and Engineering, Harbin Institute of Technology, Harbin 150001）
GUO Fu-Shun
（Department of Computer Science and Engineering, Harbin Institute of Technology, Harbin 150001）
Abstract：Performance evaluation is important in selection, improvement, and design of computer systems. Simulation and queue model can be used to analyze the performance of computer systems. It is expensive to create and use simulation model. Queue model needs more hypothesis and simplification. Aiming at the shortcomings of the two models, a finite state transition graph (FSTG) model based on chart and automaton theory is presented to analyze performance of computer systems in this paper. An algorithm based on FSTG for solving the response time of real-time systems is also presented. By proving and complexity analysis, the algorithm is correct and effective.
Key words：performance evaluation， state transition graph， model， algorithm▲
1　引言
　　性能评价就是要对指定的一个计算机系统或一类计算机系统求出其性能指标［1］.性能评价在计算机系统的选型、改进与设计中具有重要的作用.一般来说，首先对要评价的计算机系统建立一个适当的模型，然后求出模型的性能指标，以便对系统进行评价.
　　一种常用的模型是队列模型［2］.它是以排队论和随机过程论作为理论基础的.将计算机系统的各种部件看作“服务员”，把需要处理的各种作业当作“顾客”，“顾客”排队等待“服务员”为其完成某种服务.队列模型一般需要对系统作较多的数学简化与假设（如假设“顾客”总体与队列长度是无限的），因此其详细程度较差，从而影响了结果精度.此外，对于并行和分布式等大型复杂系统，队列模型难以准确而全面地描述系统行为.
　　可以构造计算机系统的模拟模型，使之模拟真实系统，以与真实系统同样的方式运行，通过对模型进行测量从而推断出系统性能.模拟模型是通过一个相当大的程序来实现的，因此其成本和费用是较高的.
　　针对以上模型的不足，本文提出了一个新的计算机系统性能评价模型――状态迁移图模型. 它以图论和自动机理论作为理论基础，能够跟踪系统的各种工作轨迹，记录运行期间系统所处的各种状态以及状态的改变，可以根据基于图论的形式化算法快速准确地计算出所需的性能指标.本文首先对该模型及其组合分析给出了语法和语义定义，其次指出组合时可能产生的状态爆炸问题并提出用两级等价折迭技术解决该问题.最后给出了一个基于该模型的算法以求解实时系统的响应时间.
2　模型定义
　　定义1. 一个进程是一个2元组P=(V, E).其中V是非空状态集.E是V上的二元迁移关系集.P对应一个有向图，V中的状态对应着结点，v,w∈V，如果(v,w)∈E，则在有向图中从v到w存在着一条弧.称P为简单状态迁移图.
　　定义2. 设q1, q2,…,qn是P中的一个状态序列，如果i≥1，(qi,qi+1)∈T，则称该序列为一条路径.
　　定义3. 一个时间状态迁移图是一个8元组G=(N,ninit,X,Σ,C,T,A,I).其中：
　　(1) N是有穷结点集合；
　　(2) ninit是初始结点；
　　(3) X是有穷时钟集合；
　　(4) Σ是有穷事件集合.τ∈Σ是一特殊事件，表示进程的阻塞；
　　(5) C={y|y是形如x≤r,x≥r的原子公式，且r∈R,x∈X}；
　　(6) T是迁移弧集合.TN×C×Σ×2X×N；
　　(7) AN×2T.一个结点对应的所有可能的活动集合；
　　(8) I：N→C是在每一个结点上的时间限制.
　　函数I为每一个结点n∈N赋一个时间限制，称之为不变量.只有当前的时钟满足I(n)时，系统的控制才能停留在该结点，不变量都是形如x≤r这样的原子公式的并.对于一个迁移tr=(n1,c,e,Y,n2)∈T，如果当前的结点n1满足时间限制c，那么系统能够发生该迁移.作为迁移发生的结果，系统完成事件e，重设Y中的所有时钟值为0，并立即移到下一结点n2.
　　定义4. 设G1,G2,…,Gn是n个进程的时间状态迁移图.其中Gi=(Ni,ninit,Xi,Σi,Ci,Ti,Ai,Ii). 由这n个进程构成的并发系统的时间状态迁移图为G=G1×G2×…×Gn=(N,ninit,X,Σ,C,T,A,I).其中：　　
　　

　　在定义语义概念前，先给出一些标记.对于一个迁移tr=(n1,c,e,Y,n2)，让source(tr)代表源结点n1，target(tr)代表目标结点n2, cond(tr)代表发生条件c，event(tr)代表事件e，以及reset(tr)代表时钟集合Y.并且让v,v1,…代表时钟值.
　　定义5. 一个时间状态迁移图G=(N,ninit,X,Σ,C,T,A,I)），称一个有穷或无穷序列为一个执行，它具有如下属性：
　　(1) n0=ninit,v0(x)=0(x∈X)，t0=0；
　　(2) (vi+r)满足I(ni)，i≥0并且0≤r≤(ti+1-ti)；
　　(3) 对每一个i≥1，在T中存在着从ni-1到ni的迁移tri，使得
　　　　(vi-1+ti-ti-1)满足Cond(tri)且
　　　　
　　(4) ti≤ti+1，i≥0.
　　定义6. 对于一个执行，其对应的行为是：〈(event(tr1)，t1),(event(tr2)，t2),(event(tr3)，t3),…〉.
3　状态爆炸问题
　　尽管单个进程的时间状态迁移图模型尺寸并不是很大，但是由多个进程构成的并发系统的时间状态迁移图模型的尺寸将迅速膨胀.例如，由n个包含m个状态的进程构成的并发系统的时间状态迁移图模型，其包含的状态数有可能高达mn.这种系统的状态空间尺寸随进程数指数增长的现象称之为状态爆炸.这个问题在实时系统中变得尤为严重，因为实时系统的无限制的时间值甚至会引起无穷的状态空间.为此本节提出了两级等价折迭技术解决该问题，从而使对有穷状态迁移图模型的组合分析成为可能.
　　定义7. 一个历史是指到当前结点为止系统已经执行过的（迁移，时刻）对的序列.
　　对于一个时间状态迁移图G，不妨设execs(G)为所有执行的集合，steps(G)为执行中所有步的集合.即. 形式地，我们给出如下定义.
　　定义8. 已知一个时间状态迁移图G=(N,ninit,X,Σ,C,T,A,I).其相应的历史状态迁移图为H=(S,S0,L,TR)其中：

　　对于一个历史h=<(tr0,t0),(tr1,t1),(tr2,t2),…(trk,tk)>.令untimed(h)=<tr0,tr1,tr2,…trk>.对于状态s=(n,h)令untimed(s)=<n,untimed(h)>.形式地定义历史等价关系如下.
　　定义9. 一个二元关系ρhS×S，如果对(s1,s2)∈ρh，均有untimed(s1)=untimed(s2).则称ρh为历史等价关系.
　　定义10. 设H=(S,S0,L,TR),H′=(S′,S′0，L′,TR′)，f:H→H′是一个映射.它具有如下属性：
　　(1) (n,h)∈S,f(n,h)=(n,untimed(h))；
　　(2) 对(ninit,<(tr0,0)>)∈S0　f(ninit,<(tr0,0)>)=(ninit,<tr0>);
　　(3) (tr,t)∈L,f(tr,t)=tr;
　　(4) (s1,(tr,t),s2)∈TR,f(s1,(tr,t),s2)=(untimed(s1),tr,untimed(s2)),称f是历史等价映射.
　　不难验证f是折迭映射.经历史等价折迭后的状态迁移图，其状态数已大大减少，但状态空间还是很大，甚至仍有可能包含无穷状态.为此，需要对其进一步化简.
　　定义11. 将来是指从当前状态出发，将要执行的迁移序列.
　　定义12. 已知H=(S,S0,L,TR)，定义一个二元关系ρfS×S，如果(s1,s2)∈ρf则有：
　　(1) 当(s1,tr,s′1)∈TR时，那么存在s′2，使(s2,tr,s′2)∈TR并且(s′1,s′2)∈ρf；
　　(2) 当(s2,tr,s′2)∈TR时，那么存在s′1，使(s1,tr,s′1)∈TR并且(s′1,s′2)∈ρf，称二元关系ρf为将来等价关系.
　　可以考虑将一个将来等价类内的所有满足将来等价关系的状态合并成一个状态以达到化简状态空间的目的.形式地，给出如下定义.
　　定义13. 设H=(S,S0,L,TR)是历史等价状态迁移图，F=(Sf,S0f,Lf,TRf)是一状态迁移图，定义一个映射g:H→F.它具有如下属性：
　　(1) s∈S,g(s)=equiv(s)∈Sf.其中equiv(s)表示s的将来等价类；
　　(2) s∈S0,g(s)=equiv(s)∈S0f；
　　(3) tr∈L,g(tr)=tr∈Lf；
　　(4) (s1,tr,s2)∈TR,g(s1,tr,s2)=(g(s1),tr,g(s2))∈TRf，则称g为将来等价映射.
　　不难验证g是折迭映射.经将来等价折迭后的状态迁移图，其状态数又进一步减少，并且形成了有穷状态迁移图.
　　所以，虽然组合时有可能产生状态爆炸问题，但是先后经过历史与将来两级等价折迭映射后，在保持语义信息不变的前提下，可以将无穷状态迁移图转变为有穷状态迁移图并且使状态空间尺寸大大化简.
4　一个应用实例
　　实时系统是能及时响应外部发生的随机事件，并以足够快的速度完成对事件的处理的计算机应用系统［3］.响应时间是指从接收到外部事件到完成处理后输出响应之间的延迟时间.它是实时系统的重要性能指标之一.利用上述定义与映射可以构造出实时系统的有穷时间状态迁移图，为了求解响应时间，需要进一步构造出累加状态迁移图. 
　　定义14. 设GL=(QL,IL,FL,W,TL)是一有穷状态迁移图.其中：QL为状态集合；ILQL为初始状态集合；FLQL为终止状态集合；W为标号集合.标号代表迁移成本（如时间）；TLQL×W×QL，称GL为成本状态迁移图.易知，成本状态迁移图可以方便地由有穷时间状态迁移图转化而成.根据它可以进一步构造出累加状态迁移图.
　　定义15. 设Ga=(Qa,I,F,Ta)是一有穷状态迁移图.其中：Qa=QL×W为状态集合；I={(q,0)|q∈IL }为初始状态集合；F={(q,t)|q∈FL,t∈W}为终止状态集合；TaQa×Qa，((q,t), (q′,t′))∈Ta当且仅当 (q,w,q′)∈TL且t′=t+w，称Ga为累加状态迁移图.
　　定义16. 设RQa是Ga中的一个状态子集，称N(R)={r′| (r, r′)∈Ta, r∈R}为R的后继状态集.称NF=Qa-F为非终止状态集.
　　利用上述定义构造出一个实时系统的累加状态迁移图Ga后，在Ga中不妨设标号代表状态迁移的流逝时间，I包含代表发出需求时的状态，F包含代表应答时的状态.显然，最快响应时间即为从I出发到F终止的所有路径上的流逝时间的最小值.下面给出求解该最小值的算法.
　　求解实时系统中最快响应时间的基于状态图的算法如下：
　　输入：Ga，I，F，NF
　　输出：最快响应时间Tmin
　　BEGIN
　　(1) Tmin=∞;
　　(2) R=I;
　　(3) LOOP
　　(4) RF=R∩F;
　　(5) IF RF≠ THEN
　　(6) BEGIN
　　(7) M=min{t|(q,t)(RF};
　　(8) IF M<Tmin THEN Tmin=M;
　　(9) END;
　　(10) R′=R∩NF;
　　(11) IF R′= THEN RETURN (Tmin);
　　(12) R=N(R′);
　　(13) ENDLOOP
　　END.
　　其中LOOP为无限循环语句.min求给定集合中的最小值.代表空集.R，R′均为状态子集.下面给出该算法的正确性证明.
　　引理1. 在上述算法中，第i次循环前，(q, t)∈R 当且仅当（q, t）是从I出发的一条路径上的第i个状态，t为到达该状态时所花费的总流逝时间，并且该路径只有最后一个状态有可能是终止状态.
　　证明. 用数学归纳法.初始时，即第i=1次循环前，由算法第(2)步R=I及定义15易知命题成立.假设第i=k-1次循环前命题成立.当第i=k次循环之前，即算法进行到第k-1次循环时，由算法第(10)步R′=R∩NF，定义15及归纳假设可知：(q′,t′)∈R′，(q′,t′)是从I出发的一条路径上的第k-1个状态，t′为到达该状态时所花费的总流逝时间，并且该路径上没有终止状态.当执行到算法第(12)步R=N(R′) 时，根据定义15及定义16可知：R是R′的后继状态集，所以(q,t)∈R，(q,t)是从I出发的一条路径上的第(k-1)+1=k个状态，t为到达该状态时所花费的总流逝时间，并且该路径上只有最后一个状态有可能是终止状态.所以命题成立.综上所述，i≥1，命题成立.
证毕.
　　引理2. 在上述算法中，第i次循环前，Tmin是从I到F的所有不到i个状态的路径上的流逝时间的最小值.如果不存在这样的路径的话，Tmin为无穷大.
　　证明. 算法第(1)步Tmin=∞.命题成立.第i次循环前，即第i-1次循环时，由算法第(4)步RF=R∩F可知：(q,t)∈RF(q,t)∈R且(q,t)∈F.另外，由引理1的证明过程可知：第i-1次循环时，只有执行到算法第(12)步时R中的状态才是从I出发的一条路径上的第i个状态，所以在第(4)步时R中的状态只是从I出发的一条路径上的第i-1个状态.再由定义15可知：(q,t)是从I出发的一条路径上的第i-1个状态且是终止状态.并且t为到达该状态时的总流逝时间.算法第(7)步求所有这样的t的最小值M.算法第(8)步将该最小值与Tmin比较，如果M<Tmin，则令Tmin=M.这样就确保了Tmin总是保持所有从I到F的不到i个状态的路径上的最小流逝时间.因此，引理2成立.
证毕.
　　定理1. 上述算法是正确的.
　　证明. 第i次循环时，根据算法第(4)步RF=R∩F及引理1的证明过程可知：RF中包含了起始于I的具有i个状态的路径上的终止状态.如果RF≠，那么将执行算法第(6)～(9)步，根据引理2，Tmin保存了当前所有已到达终止状态的路径上流逝时间的最小值.算法第(10)步R′=R∩NF使R′中包含了所有起始于I的路径上的第i个非终止状态.如果R′=，表示所有路径均已到达终止状态，那么此时Tmin就保存了所有从I到F的路径上的流逝时间的最小值，根据定义，该Tmin即为最快响应时间.算法第(11)步确保将该Tmin返回.
　　另外该算法是可终止的.因为对任何有穷状态迁移图来说，从I到F的所有路径均可认为是有穷步的.另外由算法第(10)、(11)步可知：该算法只考虑到达终止状态的路径一次.因此，经过有穷步之后，算法将终止.　　
证毕.
　　不妨设系统中有N个状态.根据加法规则和乘法规则［4］，可以计算出整个算法的时间复杂性为O（N2）.
5　结论
　　针对模拟模型与队列模型的不足，本文提出了一种新的基于状态迁移图的计算机系统性能评价模型，它是以图论和自动机理论为基础，通过形式化符号计算求解计算机系统的各项性能指标，因此，它比模拟模型具有更低的开销与成本.另外，它可以跟踪系统的真实工作轨迹，准确地反映状态变化对系统性能的影响，计算时不强加任何限制，因此，能够获得比队列模型更准确的数据.基于状态迁移图模型，文中提出了一个求解实时系统最快响应时间的算法.经证明和复杂性分析，该算法是正确而有效的.■
作者简介：刘晓冬，男，1971年生，博士，主要研究领域为实时微内核分布式操作系统、性能　　　　　　评价、工程数据库.
　　　　　李莲治，女，1935年生，教授，主要研究领域为分布式操作系统、软件可重用.
　　　　　郭福顺，男，1932年生，教授，主要研究领域为实时操作系统、知识库、人工智　　　　　　能、软件可重用.
作者单位：刘晓冬（哈尔滨工业大学计算机科学与工程系　哈尔滨　150001）
　　　　　李莲治（哈尔滨工业大学计算机科学与工程系　哈尔滨　150001）
　　　　　郭福顺（哈尔滨工业大学计算机科学与工程系　哈尔滨　150001）
参考文献：
［1］吴立德等. 计算机系统性能评价. 上海: 科学技术出版社,1986
　　　(Wu Lide et al. Performance Evaluation for Computer Systems(in Chinese). Shanghai: Science & Technology Press, 1986)
［2］Stallings W. Operating Systems: Internals and Design Principles. Beijing: Tsinghua University Press, 1998
［3］袁由光. 实时系统中的可靠性技术. 北京： 清华大学出版社, 1995
　　　(Yuan Youguang. The Reliability Techniques in Real-Time Systems(in Chinese). Beijing: Tsinghua University Press, 1995)
［4］郭福顺, 王晓芬, 李莲治. 数据结构. 大连： 大连理工大学出版社, 1998
　　　(Guo Fushun, Wang Xiaofen, Li Lianzhi. Data Structure(in Chinese). Dalian: Dalian University of Science & Technology Press, 1998)
收稿日期：1998-11-10
修稿日期：1999-02-08
