基于Windows平台的分布式实时仿真系统
扫描二维码
随时随地手机看文章
摘要 通过介绍基于Windows的实时扩展子系统RTX,提出了解决Windows下分布式仿真的两种方案:基于RTX的反射内存网分布式仿真和基于以太网的令牌环分布式仿真架构。并比较了两种架构与传统Windows方案在实时性能上的差别。两种方案在满足分布式仿真系统实时性要求的基础上,能为不同要求的仿真提供灵活可靠的选择。
关键词 RTX;反射内存网;令牌环网;实时;分布式仿真
基于Windows的分布式仿真系统当前面临的最大问题,在于如何提高分布式网络的实时性能。其内容主要有两方面:(1)如何最大限度的提高网络传输性能,使数据尽可能的快速传输。(2)如何在尽可能小的影响传输性能的基础上,满足分布式系统数据传输确定性的需要。也即如何降低数据传输的平均延迟和最坏情况下的延迟两方面的内容。
将RTX实时扩展子系统的技术引入Windows操作系统,不仅可将Windows改造成一个确定响应的硬实时操作系统,同时可以改造基于Windows平台的以太网及反射内存网的应用。实现在分布式仿真系统中数据传输的快速性以及确定性的指标,达到构建基于Windows的分布式实时仿真系统的目的。
针对以太网和反射内存网,提出了基于RTX的实时数据传输的改造方案,使得以上两种方案都可以在Windows平台上实现确定传输的能力,从而可以构建基于Windows平台的分布式仿真系统,以满足不同客户对于实时响应的不同需要。
1 RTX-基于Windows的实时扩展子系统
1.1 RTX实时扩展子系统简介
RTX是Ardence公司研发的基于Windows的实时扩展子系统。是目前Windows平台最优秀的纯软件实时解决方案。RTX通过在Windows硬件抽象层增加实时扩展实现基于优先级的抢占式实时任务管理和调度。使得整个Windows任务体系变成了RTX子系统下优先级最低的任务。
1.2 RTX实时扩展子系统架构
图1为RTX实时扩展子系统架构。
RTX被设计为Windows上的一个实时扩展子系统,其本身并不是一个独立的操作系统。它提供了对IRQ、I/O和内存的精确控制,以确保实时任务执行时具有100%的可靠性。由于其操作均在Ring 0级实现,可以在保证性能的基础上实现最少的配置操作。同时RTX还支持30 kHz的持续中断触发速度,最大IST延迟<16 μs。
RTX与Windows操作系统无缝兼容,可以利用Windows系统的各种优势。包括大量标准的API函数、高效的内存管理机制以及各种Windows下的通用资源。作为一个完全的Windows扩展系统,RTX并不对Windows系统架构作任何封装和修改。
RTX子系统(RTSS,Real-time Sub-system)拥有精确高速的任务调度器,同时支持基于优先级和时间片轮询两种调度算法。RTX最高支持1 000个独立的进程,每个进程下可以运行的线程数不受限制。128个优先级可以满足几乎所有用户的编程需要,RTX调度器可以确保线程切换时间保持在500 ns~2μs之间。通过应用高速的IPC信息和同步机制,RTX可以实现和Windows之间的数据通讯。选用适合的时钟,RTX的时钟分辨率可达到100 ns,并且不会产生任何漂移现象。
2 构建分布式实时仿真系统
2.1 反射内存网工作原理
反射内存网主要由反射内存卡通过光纤等传输介质连接而成。反射内存卡是一组双口内存板。每个反射内存卡都占有一段内存地址,网上任何计算机向本地反射内存卡写数据时,该数据和相应的内存地址将被反射到网上所有其他反射内存卡,并存储在相同的位置。计算机将数据写入其本地反射内存卡后,板上的高速逻辑会自动将此数据连同地址送到网上的其他反射内存卡板上,数据传递完全由硬件驱动,不需要CPU干预,结果网上的下一结点在400 ns内就会在相同地址处有相同数据。
当数据存储到反射内存卡时,反射内存卡可看成是由网上所有结点共享的单元内存,不存在访问限制与仲裁,每个结点就像访问本地内存一样,实现了结点间的数据共享。由于CPU对反射内存操作如同读写标准的RAM,且反射内存的数据更新是通过硬件实现的,因此其网络延迟极小。
2.2 使用RTX技术改造反射内存网
反射内存卡有两种工作方式:中断或查询。在基于Windows操作系统的分布式实时仿真中,通常使用查询方式。
由于Windows操作系统并不具有确定性的响应机制,不能保证立刻响应外部中断,如果Windows系统繁忙,对中断响应的处理速度会显著变慢,从而大大增加处理中断的延迟时间。从仿真的稳定性考虑,不宜采用中断方式。因此,传统的在Windows环境下使用反射内存卡时,普遍采用基于定时器的查询方式。然而这种不间断的查询方式,占用了大量的系统资源,Windows几乎无法进行其他操作,用户界面响应很慢,
从而影响了仿真用户的使用。同时,这种方法由于放弃了响应速度较快的中断处理方式,牺牲了反射内存网硬件本身的良好性能,使其在Windows操作系统中,不能达到比较理想的数据传输指标。而RTX由于其对外设和中断处理的确定性,可以在保证Windows操作系统正常响应的基础上,实时地处理反射内存卡的中断响应。因此,采用基于RTX的反射内存网方案可以达到构建基于Windows的分布式实时仿真系统的目的。
2.3 拓扑结构
基于RTX的反射内存网有两种拓扑结构,分别为环形结构和星形结构,如图2,图3所示。
2.4 与传统Windows下反射内存网的性能比较
表1是在Windows环境和RTX环境下的测试结果。
以上结果是在PentiumⅣ2.8 GHz双核CPU的Pc上,基于VMIC-5565反射内存卡,RTX独占一个CPU核,数据发送出去,再收回来采用中断传输方式的测试结果,即以上数据除以2为单次数据发送的结果。
图4~图8分别是在Windows环境和RTX环境下,通过实时网传输数据时所需时间的图表。
3 构建分布式实时仿真系统
3.1 RTX下的RT-TCP/IP简介
通过RTSS子系统(Real-time Subsystem)对底层网卡的实时支持,RTX在RTSS子系统中建立独立的TCP/IP协议栈。为实现更好的实时性能,RTX对TCP/IP协议栈作了部分修改,同时对数据包大小进行了限制,使其更加适合于实时数据传输。RTX将TCP/P协议的实现和硬件的操作集成在网卡的实时驱动中,用户无需加载额外的链接库。通过底层的封装机制,程序员在编写网络应用程序时可直接使用Windows Socket 1.1和2.0。
3.2 基于以太网的令牌环网原理
令牌环(Token Ring)的拓扑结构是一个环的形状。环上有多个节点逐次相连,相邻节点之间是点对点的链路。令牌环网与普通以太网的不同体现在两个方面:(1)它是一种顺次向下一站传送的LAN,与广播方式的以太网不同。(2)令牌环网可以在负载较大的情况下实现确定性的响应时间。
令牌环网下面的各个节点,按照标准方式连接在以太网下,通过软件实现的令牌环将其组成拓扑结构为令牌环网的LAN。其中令牌环是一种特殊标示的数据包,只有当节点接收到这种数据包时才能发送数据。
令牌环网不同于标准以太网,其数据传输具有确定性。在以太网上实现令牌环网,可以在一定程度加大系统平均响应时间的基础上,减少系统的最坏响应延迟,为基于网络的数据传输提供确定性保证。
标准以太网的数据传输之所以不确定的原因在于网络本身并不能控制当前发送数据包的节点数量,当大量节点要求发送数据时,网络系统会出现拥堵,网络仲裁会延迟其中某些节点的数据包发送行为,从而造成不确定的数据延迟。
采用令牌环的以太网架构,由于在软件层实现了令牌环的架构,使得在任一瞬间最多只有一个节点在发送数据包,人为避免了数据冲突的检测重发。从而以增大平均数据响应时间为代价降低了系统在最坏情况下的数据响应时间。
3.3 基于RTX的令牌环网的测试
测试环境使用百兆以太网卡进行测试,在RTX实时网络环境下进行令牌网循环测试,实验采用3台主机,IP地址分别为192.168.1.51(A),192.168.1.52(B),192.168.1.53(C),测试时各采集10 000个数据进行采样分析,测试结果如表2所示,单位s:设IP地址为192.168.1.51的主机为A主机,地址为192.168.1.52的主机为B主机,地址为192.168.1.53的主机为C主机。
将采集到的数据在Matlab中制作成散点图的形式,如图11所示。
4 结束语
由上述反射内存网及令牌环网的统计数据和图表可以看出,使用基于RTX的反射内存网和令牌环网络进行实时数据的传输,可以使网络数据传输的稳定性和确定性,得到进一步提高,从而满足在Windows系统上进行实时仿真的需要。在仿真周期为毫秒级,传输数据量不大的情况下,可以使用基于以太网的令牌环网;在仿真周期接近1 ms,甚至为μs级时,并且传输数据量较大的情况下,可以使用基于RTX的反射内存方案。两种方案在满足分布式仿真系统实时性要求的基础上,为具有不同要求的分布式仿真提供了灵活可靠的选择。