我要发帖 回复

管理员

327

主题

4153

积分

15

专家分

兴趣点(最多三项):

视景仿真
地形仿真
高层游戏引擎

私信
发表时间 : 2006-9-3 12:11:29 | 浏览 : 5211    评论 : 5
HLA 时间管理
时间管理( time management ) 服务是接口规范定义的6 种服务之一,其他5 种管理服务包括联邦管理( federation management ) 、声明管理(declaration management) 、对象管理(object management) 、所有权管理(ownership management) 和数据分发管理( data dist ribution management ) 。时间管理描述的是联邦运行过程中联邦成员仿真时间的推进机制,且该推进机制必须与联邦成员间的数据交换相协调,以确保联邦成员发送和接收的信息在时间逻辑上的正确性。
时间管理原则
HLA 的主要目标就是保证仿真程序的互操作性与重用性的有效实现。为了促进重用,时间管理服务必须具有充分的灵活性,即能在国防仿真应用程序中的各种各样的内部时间管理机制中灵活应用;为了支持互操作,时间管理服务必须允许仿真程序在单独的联邦执行过程中,使用不同的内部时间管理机制。一个重要的设计原则就是“时间管理透明性”。这意味着在每一个联邦中使用的逻辑时间管理机制,对于其他的联邦必须是不可见的。例如,一个使用事件驱动时间流机制的联邦,不需要知道同它交互的其他联邦使用的是时间驱动,还是时间步长驱动机制。HLA 的时间管理的出发点是:在保证正确地实现联邦成员间仿真时间的协调推进和数据交换的前提下,定义所需服务的最小集合。HLA 的时间管理建立在如下原则之上:
1) 在HLA 的联邦中不存在一个通用和全局的时钟。在联邦执行过程中的任一时刻,不同的联邦成员可具有不同的仿真时间值,称为联邦成员时间和局部时间;
2) 联邦成员只能调度“未来”的事件。对象状态的变化,也称事件,包括属性更新、交互、对象的实例化和删除等,由联邦成员调度(即通知RTI将发生该状态变化) ,并且该事件的时戳必须大于或等于当前局部时间的时戳;
3) 使用逻辑时间的联邦成员不能调度事件时戳小于当前的事件;
4) 联邦成员不需要按事件的时戳调度事件。
例如,一个联邦成员可先调度时戳为10 的事件,再调度时戳为8 的事件,但事件具体发生的顺序一定是先8 后10 。
 事件管理服务
HLA 事件管理服务主要包括2 个方面内容:一是传输服务,提供具有不同可靠性、不同消息传输服务;二是时间推进服务,提供不同的时间推进服务以应用于不同类型的仿真系统中,如按时间步长推进、事件驱动和独立时间推进的仿真系统。
时间管理服务
HLA 的时间管理服务中包括2 个关键组件:时戳顺序传递服务和逻辑时间推进的仿真协议。
 消息顺序和时戳
到达的消息被分成接收顺序(RO) 或时戳顺序( TSO)  。RO 消息到达时被简单地放到队列中,并立即发送到适当的联邦中。这些消息的顺序是任意的,这一方式适用于对时延要求高于对因果关系要求的场合; TSO 消息是指由联邦产生的消息加上时戳存于RTI 的消息队列中,直到RTI 确信没有时戳更小的消息来到后,才将这些消息转发给成员。由于RTI 不能将接收到的时戳顺序消息立即发送,因而TSO 消息比RO 消息有较长的等待时间。对于联邦来说,既可发送和接收TSO 消息,也可是RO 消息。此外, TSO 提供了比因果顺序更严格的服务。虽然两者均保证
因果相关的消息,按因果前后关系转发给成员,但在因果顺序服务中并发事件的顺序是不确定的,与通信网的延迟大小有关,而TSO 顺序保证所有从同一事件集中接收这些消息。
如果消息包含同一时戳,即联立事件,则这些消息以任意的顺序发送给联邦;但是消息通常需要以特殊顺序方式排队,这点很重要。为了强调这个问题,联邦收到消息后,将消息存放在缓冲区中,然后联邦按照需要对消息进行排序。当联邦接收到所有联立事件时,RTI 提供特定支持方法。联邦包括的时戳相连分散区域可将联立事件排顺,这需要联邦定义时戳格式和含义规范以及逻辑事件值和持续时间。时间值在联邦使用过程中定义为抽象数据类型。因此,时间表达式就可满足不同联邦的需求。此外,时戳格式明确规定:必须在对象模型模板中定义,联邦必须明确一定的操作活动,例如,时戳值的比较。同样接收顺序消息也可随意包含一个时戳值。
逻辑时间推进
HLA 的时间管理组件的第二部分提供每一个联邦中仿真时间推进机制。如前所述: RTI 确保联邦不会接收到任何TSO 消息,其时戳小于当前的逻辑时间。认识到这个能力,联邦就不能自治的推进各自的逻辑时间。相反,如果联邦有确推进逻辑时间的需求时,只有等到RTI 明确许可后,才可推进逻辑时间。逻辑时间推进协议是HLA 时间管理服务的中心环节。
时间管理“周期”由3 部分组成: ①联邦唤醒一个时间管理服务,提出逻辑时间推进需求; ②RTI 向联邦发送一定数量的消息。消息发送给联邦是通过RTI 唤醒联邦定义的进程,例如ReflectAtt ribute Values 提供对象属性的更新值,或者是eceive Interactions 提供交互事件; ③ 由RTI 通过唤醒联邦定义的进程Time Advance Grant 完成周期过程,从而显示联邦的逻辑时间已经推进。联邦的逻辑时间推进需求的2 个主要机制是:时间推进请求(time advance request , TRA) 和下一事件请求( next event request , NER) 服务。TAR 适合内部是时间步长机制的联邦; 而NER更适合事件驱动的联邦。当然,对于联邦来说,唤醒任何一个机制都没有限制。任何一个联邦都可使用NER 或者TAR ,或者是二者的混合。这2个时间管理服务定义如下:1) TAR ( T ) ,联邦唤醒服务需要逻辑时间提前T 。所有RTI 内部队列中RO 的消息和所有具有时戳的TSO 消息,在服务唤醒后发送到联邦的时间小于或等于T 。当没有其他TSO 时戳小于或等于T 的消息到来时,则RTI 调用联邦含
有参数T 的Time Advance Grant 进程来显示联邦的逻辑时间已经推进T 时间。
2) NER ( T ) ,当事件驱动的联邦在当前逻辑时间完成了所有仿真活动后,则需求唤醒这个服务将仿真时间推进到新的时间。如果其他联邦没有包含更小时戳的事件,则参数T 在NER 中表示联邦需要推进逻辑时间的大小。在当地联邦中的一组未做判断的事件中,参数T 是下一事件的时戳。在唤醒这个服务之后,RTI 将会发送它内部队列中的所有RO 消息。如果没有TSO 消息的时戳小于或者等于参数T 时,并确信在将来也不会接收到该消息时,RTI 则唤醒联邦的TimeAdvance Grant 进程显示它的逻辑时间已经推进了T 时间。否则,RTI 将会发送下一个TSO 消
息决定这个联邦和其他消息(消息时戳T′ ≤T ) ,这时RTI 调用参数为T′的进程Time Ad2vance Grant ,则联邦的逻辑时间推进T′。
 时间管理的实现
在RTI 中,时间管理服务协调具有不同局部时钟管理类型的联邦成员在联邦时间轴上的推进,并为各联邦成员提供不同传输要求和质量的消息、数据传输。按照对联邦逻辑时间推进的影响,可将联邦成员划分为时间受限和时间控制2种类型。时间受限指联邦成员接收时间戳顺序的消息,自身的仿真逻辑时间推进受其他联邦成员
的影响;时间控制指联邦成员发送时间戳顺序的消息,并影响其他联邦成员的时间推进。时间管理提供时间协调推进的服务原语,联邦成员按照自身逻辑时间推进模式,向RTI 发出时间推进请求,RTI 依据联邦成员在时间推进中所属类型,采用相应的协调推进策略,推进各联邦成员的逻辑时间。在一个联邦的运行过程中,每一个进程需要联邦成员的某些消息,并需要将消息传递给联邦成员,若2 个成员同时发生请求则有可能发生死锁情况。因此,为尽量减少联邦成员接收到不需要的数据和流过网络的信息数据量,对RTI 消息分布管理采用层次化的结构
1) 期望表达:联邦向RTI 说明期望订购和公布的信息数据,包括类、属性及选择的订购区域与更新区域。
2) 匹配:比较订购区域和更新区域是否存在重叠,为每一个更新区域产生一个目的联邦成员列表,实现与更新区域相关联的更新数据的传递。
3) 建立联接:基于匹配产生的接受联邦成员集而建立网络连接。
4) 数据传输:将属性和交互,通过已建立的网络连接传递到它的订购方。
采用分布结构并避免不需要的数据在网络中的传递,减少了网络传输的延迟。在每一联邦成员处还有一个局部时间管理,通过和中心时间管理与局部时间管理的通讯协调,实现了RTI 时间管理的各项服务。

HLA 的时间管理服务同时可支持不同类型的仿真,包括虚拟仿真、实物仿真和构造仿真,时间管理具备“透明性”。时间管理服务是联邦成员正确交互的基础,也是联邦运行的重要基础,是HLA 的关键服务类型之一。研究表明:时间管理就是时间推进模式的实现,其核心在于为仿真节点选择一个精确的时钟,以确保在仿真过程中,发生事件在逻辑上的正确性及发送的消息在逻辑上的有序性。

最近VR访客

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-2-26 03:46 AM

返回顶部