计算机仿真中的HLA技术 (第五章读书笔记) 联邦同步

这一章是HLA中的精华和困难的部分。主要是时间管理,时间同步。

 

主要包括三方面的内容:1)时间管理服务,为仿真中的事件排序;2)对各个独立的联邦成员进行同步;3)使联邦与真实世界的时间同步。

 

上述三个内容,其目的就是确保联邦运行于不同的分布式系统时能够产生相同的结果。

 

-------------------------

5.2 时间管理 -- 事件都是有序的

 

时间管理服务就是要确保事件能以正确的次序发送到各联邦成员。对于联邦餐馆例子来说,我们的目的就是使联邦时间的推进速率与墙钟的推进速率大致相同:小船以仿真速度沿水槽前进,寿司以合理的间隔时间出现,用餐者以一定的时间享受食物。因此可以这样粗略地定义实时仿真:仿真中事件出现的时间间隔等于观察者所感受到的时间间隔。

 

仿真时间和墙钟时间的区别在于:仿真时间是仿真运行所代表的时间,墙钟时间是观察者在墙钟上所看到的时间。两者之间没有直接的联系。如果仿真是实时运行的,仿真时间与墙钟时间以相同的速率推进。但两者的初值不同。 也就是说,如果不考虑实时仿真的话,仿真时间可以跟墙钟时间完全没有关系,可以大大快于墙钟时间(比如为了仿真真实世界发生的顺序和结果),可以大大慢于墙钟时间(比如为了仿真真实世界发生的顺序和结果),也可以跟墙钟同步(比如为了进行实时仿真,强调仿真的时间性)。 通常情况下,我认为第一种和第三种情况会多一些。

 

要使联邦实时运行,在编写程序时必须使每个联邦成员能以墙钟时间相同的推进速率改变状态。以餐馆联邦为例,运输联邦成员仿真时间的推进量是墙钟时间的函数。运输联邦成员由计算小船的下一个时间(1s后)的位置开始,在200ms后完成。因为下1s的小船位置已经计算完成,所以在计算完成点它(运输联邦成员)的仿真时间可以推进1s,但是由于运输联邦成员的仿真时间比墙钟时间要早,它将等待800ms,此时其仿真时间保持不变。休眠后运输联邦成员的仿真时间与墙钟时间相符合,小船位置开始更新,下一循环开始。

 

因此运输联邦成员能否实时运行取决于它在相应的墙钟时间推进前能否完成状态的计算。

 

---------------------------------

事件驱动的仿真与上面流程类似,只是它的时间推进间隔是变化的。而时间驱动是以相同的步长推进仿真时间。事件驱动的仿真,其计算的是事件队列中下一个事件时间到来时的状态,而且必须在相应的墙钟时间到来之前完成计算。

 

---------------------------------------------

时间管理服务的目的就在于确保事件能以正确的因果次序到达每个联邦成员,保证同一个联邦的多次执行能产生相同的结果。

 

时间管理服务用于处理仿真时间,它并不在联邦成员与现实时间(墙钟时间)之

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值