[三段扫描法.ppt

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[三段扫描法

活动周期图模型的特点 活动的激发与终止都是由事件引起的,活动周期图中的任一活动都可以由开始和结束两个事件表示,每一事件都有相应的活动处理。处理中的操作能否进行取决于一定的测试条件,该条件一般与时间和系统的状态有关,而且时间条件须优先考虑。 确定事件的发生时间事先可以确定,因此其活动处理的测试条件只与时间有关;条件事件的处理测试条件与系统状态有关。 一个实体可以有几个活动处理;协同活动的活动处理只归属于参与的一个实体(一般为永久实体)。 在活动扫描法中,除了设计系统仿真全局时钟外,每一个实体都带有标志自身时钟值的时间元(time-cell)(各个实体的局部时钟)。时间元的取值由所属实体的下一确定时间刷新。 时间元的取值方法 1.绝对时间法:将时间元的时钟值设定在相应实体的确定事件发生时刻。此时,时间扫描算法为: for i=1 to m if (time-cell[i]TIME) then if (time-cell[i]MIN) then MIN= time-cell[i] endif endif endfor TIME=MIN 2.相对时间法:将时间元的时钟值设定在相应实体确定事件发生的时间间隔上。此时时间扫描算法为: for i=1 to m if (time-cell[i]0) then if (time-cell[i]MIN) then MIN= time-cell[i] endif endif endfor TIME=TIME+MIN for i=1 to m time-cell[i]= time-cell[i]-MIN endfor 活动扫描法采取以下措施 1、设置系统仿真钟TIME与实体时间元仿真钟time-cell[i]; 系统仿真钟与实体时间元仿真钟之间的关系可能有三种情况: Time-cell[i]TIME,表示该活动在将来某一 时刻可能发生; Time-cell[i]=TIME,表示该活动如果条件满 足则应立即发生; Time-cell[i]TIME,表示该活动按预定时间 早应发生,但因条件未 满足,到目前为止实际上仍未 发生,当前是否发生,则只要 判断其发生的条件。 2、设置条件处理模块 该模块用于测定Di(S)的值及系统仿真钟与实体仿真钟之间的关系,记: FUTURE(S)={i|time-cell[i]TIME} PRESENT(S)={i|time-cell[i]=TIME} PAST(S)={i|time-cell[i]TIME} 该模块将满足以下条件: 的实体置于可激活的实体集合中,即: 如果可激活的实体集合为空,则将系统仿真钟推进到下一最早发生的活动生成时刻,即: 三段扫描法思想的提出 由于活动扫描法将确定事件和条件事件的活动同等对待,都要通过反复扫描来执行,因此效率较低。 1963年,Tocher借鉴事件调度法的某些思想,对活动扫描法进行了改进,提出了三段扫描法(Three Phase,TP)。 三段扫描法兼有活动扫描法简单和事件调度法高效的优点,因此被广泛采用,并逐步取代了最初的活动扫描法。 活动的分类 同活动扫描法一样,三段扫描法的基本模型单元也是活动处理,但是在三段扫描法中,活动被分为两类: B类活动——描述确定事件的活动处理,在某一排定时刻必然会被执行。也称确定活动处理。“B”源于英文“bound”,表示可明确预知活动的起始时间,该活动将在界定时间范围内发生。 C类活动——描述条件事件的活动处理,在协同活动开始(满足状态条件)或满足其它特定条件时被执行。也称条件活动处理或合作活动处理。“C”源于英文“condition”,表示该类活动的发生和结束是有条件的,其发生时间是不可预知的。 B类活动处理像事件调度法中的事件处理一样可以在排定时刻直接执行,只有C类活动处理才需扫描执行。在这种仿真策略下,仿真过程不断地执行一个三阶段的循环,以实现活动的平行性,同时防止死锁,这种仿真过程的三个阶段描述如下: A阶段:该阶段找到下一最早发生的事件,并把时钟推进到该事件预期发生的时间; B阶段:执行所有的预期在此时刻发生的B类活动处理(确定发生的活动); C阶段:该阶段尝试执行所有的C类活动(这类活动的发生与否取决于资源和实体的状态,而这些状态可能在B阶段已发生改变)。 这三个阶段不断循环直至

文档评论(0)

zhuanyewd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档