多任务网络通信在RTX下的实时性研究*

2016-04-14 01:07李宏胜
组合机床与自动化加工技术 2016年2期
关键词:多任务服务端实时性

李宏胜,李 凡,赵 岚

(南京工程学院 自动化学院,南京 211167)



多任务网络通信在RTX下的实时性研究*

李宏胜,李凡,赵岚

(南京工程学院 自动化学院,南京211167)

摘要:通信网络的实时性是工业控制系统的核心问题之一。为了研究RT-TCP/IP协议下的通信网络在复杂环境中的实时性,基于RTX实时子系统环境,采用RT-TCP/IP协议栈和多线程技术,在普通PC机上实现了客户端/服务端模式下的实时多任务通信;同时,采用回环接口收发数据包的方法,对多任务通信网络的快速性、稳定性、可靠性进行了实验测试和分析。通过实验得出,多任务网络应用对计算机硬件配置要求高,并存在通信网络实时性能不佳的问题,为RTX的实际网络应用提供重要的依据。

关键词:RTX;RT-TCP/IP;客户端/服务端模式;多线程;实时性

0引言

现代制造业的发展对工业自动化技术网络化、智能化提出更高的要求。Windows操作系统与RTX实时扩展的融合,既支持高效友好的开发工具和集成开发环境,又具有较强的实时性。硬件上工业PC具有性能较高,价格相对较低的优势,是控制系统开发的良好平台。现阶段的研究只是笼统地比较了Windows环境与RTX环境的网络通信性能,得出了RTX实时环境下的网络性能优异的结论[1],并没有考虑实际复杂的自动化系统环境下的多任务通信问题。

本文在Windows和RTX实时操作系统和通信协议的基础上,使用多线程技术实现多任务RT-TCP/IP网络通信并发测试,并对结果进行分析,为RTX下的复杂网络应用提供参考。

1RTX实时扩展的实现

图1 RTX在Windows操作系统上的实时扩展

美国IntervalZero公司开发的RTX (real-time extension)实时扩展为Windows平台提供了一个实时系统解决方案,其结构如图1所示。RTX直接在硬件扩展层上进行了实时扩展,形成了RTX实时子系统。实时子系统可以直接访问硬件平台,隔离了Windows的中断机制,保持了较高的时钟精度;同时,RTX拥有绝对优先的线程调度机制,解决了Windows下线程优先级少,调度原则不明确等问题[2]。相应的RT-TCP/IP、实时服务器等服务都运行在内核模式下,避免了Windows的应用程序的影响。RTX也提供了标准的动态链接库和实时硬件驱动供实时开发。

2RT-TCP/IP协议栈结构

RT-TCP/IP协议栈本身由缓冲区系统,定时系统和几个服务线程构成,如图2所示。RT-TCP/IP协议栈内置的缓冲区系统是用来在相关堆栈启动后动态分配内存。每个堆栈分配的内存大小取决于套接字和接受队列的大小,设备提前分配的接收缓冲区大小协议栈定时系统是RT-TCP/IP协议栈的主要组成部分之一,主要用于管理时间堆栈。协议栈定时系统也为内部程序运行提供定时。中断服务线程(IST)是RT-TCP/IP协议栈中接口驱动程序的一部分。当网卡发出中断信号时,中断服务线程工作,识别并应答接收中断,然后给接收线程进行标记。接收线程先等待中断服务线程通知的到来,一旦接受到新的数据包,接收线程就立即被中断服务线程标记,并开始处理下一个来自设备的数据包[3]。

图2 RT-TCP/IP协议栈结构

3多任务网络通信系统设计

3.1多任务并发的实现

Windows操作系统与RTSS实时子系统都支持多进程和多线程的多任务操作。其中,Windows上的进程都是以串行方式执行,即使在多处理器的计算机上,程序每次也只会使用一个处理器,多个进程是轮换执行,只能提供一个粗粒度的多任务并发(任务切换时间大于100ms)[4]。相比较多进程的多任务机制,Windows可以将一个进程下的多线程调度到不同的处理器上同时执行,线程之间资源也是共享的,系统的开销较小,相应的程序结构也会得到简化[5]。但由于Windows是一个非实时系统,Windows下的多线程应用并不能保证其实时性。经过RTX的实时扩展改进之后,线程切换时间仅为10μs~20μs,能满足多任务并发执行的目标。

3.2基于C/S模式的多任务网络通信模型建立

一个基于RT-TCP/IP的网络应用程序执行多任务是一个基本要求,多个用户在同时访问服务端的时候不能始终在等待,客户端与服务器之间也是不断的通过各种渠道进行数据交换。在设计网络通信的客户端和服务端时,将程序设计为两部分,客户端与服务端的主线程用于网络连接的请求和应答,而子线程负责数据在客户端与服务端之间进行发送和接收。事实上C/S模式下双方不对称,服务端处于监听被动状态,客户端处于请求主动状态。实际程序设计中,客户端主动发起通信连接请求,而通信子线程则可以通过调用RtAPI库中的RtCreateThread函数开启指定数量线程,而服务端在接收客户端的请求后,立即开启相应数量的通信子程提供服务。在服务完成后,两端的通信子线程都会被终止并释放所占的资源。而服务端的主线程在整个中始终保持监听客户端请求的状态。

图3 基于C/S模式的多任务通信模型

4性能测试与分析

4.1测试环境

硬件条件:Intel i3-4150@3.5GHz处理器,4GB RAM内存

软件条件:Windows 7 with Service Pack 1,RTX实时扩展为RTX64 2014 with Service Pack 1

软件编译与调试条件:Visual Studio Premium 2013 with update 3

RTSS子环境配置: HAL层定时周期:100μs;本地内存池,1024KB;扩展内存池2048KB:监视非分页内存:200MB;RT-TCP/IP栈内存:2048KB;套接字最大值:64;栈内部时钟:100μs;最大传输单元(MTU):1500byte。

4.2测试指标

RT-TCP/IP在进行通信传递信息时,会受到起始地到目的地路径上的拥塞(延迟、丢失)的约束[5]。在实时网络通信中,我们主要关心的是传输速率,稳定性以及可靠性。本研究选取了时延,误包数,丢包数作为实时网络性能的指标:

(1)时延:一个数据包从一端到另一端所需的时间。本研究对于实时交互性很强的网络通信采用了往返时延的测试方法,记录客户端节点发送数据包的起始时间T1,服务端节点接收到信息后立马发还该数据包至客户端节点,此时记录终止时间T2,往返时延RTT=T2-T1。

(2)误包数:在数据包从客户端发送至服务端,再由服务端发送至客户端的过程之后,对比发送和回收到的数据包情况,前后不一致的数据包个数。

(3)丢包数:在数据包从客户端发送至服务端,再由服务端发送至客户端的过程中,最终未收到的数据包个数。

4.3测试方法

本研究采用主动发送和接收数据包的方式来研究实时网络通信的性能。本研究在一台计算机上实现了客户端和服务端应用程序,建立了IP地址为127.0.0.1的回送(Loopback)地址用于自发自收。在RTSS实时环境下,客户端先通过主线程与服务端建立连接,此时计算机通过应用程序接口开通若干个通信子线程,一个线程的客户端通过实时网络向服务端发送一个1024byte大小的数据包,记录起始时间,服务端在收到数据包的同时把收到的数据包发回给客户端,记录终止时间,并对比发送和收回的数据包的情况,若有不同则错包数量加一,若未收到数据包则丢包数据量加一。这样的收发数据包一共进行500次,最终统计出单个数据包收发的最短、最长时间,以及传输的平均时间,误包数和丢包数,测试流程如图4。本研究还在Windows系统和不同硬件平台下的中执行同样任务的情况进行了同样条件和方法的测量。

图4 客户端/服务端收发数据包测试流程

4.4测试结果与分析

4.4.1多任务执行下的网络性能

本测试同时执行1到20个同样的数据包收发任务,得到了如图5的数据。从图上可以看出,随着并发执行越来越多的任务,传输时延逐渐上升,RT-TCP/IP网络对于实际压力非常敏感,在20个任务时最大时延已经超过了1ms,且当同时执行8个任务时,就有任务在传输任务中出现了误包的情况,这在实时网络中是不允许出现的,误包和丢包都会使得网络的稳定性和可靠性下降导致诸如实时网络控制出现错误控制指令的情况,整个系统可能会产生严重后果。由本测试可以看出,多任务下的实时网络速度明显受到多任务因素的影响,稳定性和可靠性存在问题,不能保证网络的实时性。这是因为在RT-TCP/IP协议栈应用了socket接口的形式中提供通信服务,socket在实现过程中涉及了大量的信号量操作,而信号量主要用于RTSS系统中线程保护机制,在RTSS子环境下进行多线程网络通信时线程之间必然会互相影响,所以此时网络通信无法达到较好的预期效果。

图5 多任务执行下的网络性能

4.4.2不同系统环境下的网络性能

本测试在同时执行5个任务时,对Windows和RTSS环境下网络通信性能进行比较。Windows下线程调度和中断响应是一个复杂而且不确定的过程,这种系统特性也影响到了其网络性能,由图6可以看出,每个任务之间的传输时延差别很大,抖动也非常大,而且出现了较多误包的情况,这说明Windows下的网络是不能用于进行实时通信的。而RTSS环境下的实时网络则较为稳定,各任务都保持了良好的运行性能。

图6 RTSS与Windows环境下的网络性能

4.4.3不同硬件平台下的网络性能

本测试在同时执行5个任务时,分别选取了两台配备Intel Core i3-4150@3.5GHz和Intel Core i5-4200m@2.5GHz的CPU的计算机进行性能测试。经PassMark测试,i3-4150评分为4922,i5-4200m评分为4070[6]。测试结果如图7所示,i3-4150平台下的传输速度,稳定性,可靠性都优于i5-4200m。这是因为RTX实时扩展采用独占CPU的方式来运行RTSS子系统,在执行多任务过程中,各个任务需要通过CPU实时运行,CPU也要实时的处理网络上的数据,虽然在简单任务情况下CPU不会成为网络性能的瓶颈,但随着任务越来越复杂,CPU的性能会逐渐影响到实时网络的性能。

综上所述,通过基于客户端/服务端的网络通信平台的性能测试发现,基于RT-TCP/IP协议的多任务实时通信虽然相比于传统的Windows环境下优势明显,在处理简单的网络通信任务时表现出了良好的性能,但随着任务的越来越复杂,其自身任务机制和网络协议的复杂性影响了网络传输的实时性。

图7 不同CPU下的网络性能

5结论

本文通过多线程技术实现了在Windows 实时扩展的平台下的实时多任务网络通信,深入探讨了基于RT-TCP/IP协议栈的实时网络的性能测试方法,对多任务多平台下的实时网络进行了性能测试。通过测试发现,由于受制于RTSS子系统的线程机制和RT-TCP/IP协议栈的运行效能,基于RT-TCP/IP的实时网络对运行的软硬件平台要求较高,在并发多任务条件下处理复杂事务的性能并不理想。在实际网络控制系统的应用中需要通过优化系统结构,提高软件运行效率,提升基本控制器和网络的硬件性能,或者改进实时协议栈等方法以保证网络的实时性。

[参考文献]

[1] 皇甫祯,陈怀民,吴成富,等. 基于RTX的实时网络应用研究[J]. 测控技术,2008,27(1):67-69.

[2] 杨红松,杜承烈,尤涛,等. 基于RT-TCP/IP的虚拟试验通信平台研究[J].测控技术,2009,28(3): 60-63,67.

[3] IntervalZero,Inc.RTX64Help[EB/OL].http://www.intervalzero.com/library/RTX64/HTML5/RTX64_Help.htm. 2015-2-3.

[4] Joe Duffy.Windows并发编程指南[M]. 聂雪军,译.北京:机械工业出版社, 2010.

[5] 潘爱民. Windows内核原理与实现[M]. 北京:电子工业出版社, 2010.

[6] 叶树华. 网络编程实用教程[M].2版.北京:人民邮电出版社, 2010.

[7] 孙晓梦,王志斌. 基于TCP的多线程Socket通信实例[J]. 辽东学院学报(自然科学版), 2013,20(3): 178-182.

[8] Thomas Bonald, Mathieu Feuillet.网络性能分析原理与应用[M]. 王玲芳, 冯玉芬,译.北京:机械工业出版社, 2013.

[9] Prytz G. A performance analysis of EtherCAT and PROFINET IRT[A]. IEEE International Conference on Emerging Technologies & Factory Automation, 2008. ETFA 2008. [C]. IEEE, Hamburg. 2008,9: 408-415.

[10] 徐亚军,张晓林,郭蔡健,等. FC网络性能测试与研究[J].计算机工程与应用, 2007, 43(15): 137-139 .

[11] PassMarkSoftware.CPUBenchmarks[EB/OL].http://www.cpubenchmark.net/high_end_cpus.html. 2015-6-7.

(编辑赵蓉)

Research on Real-Time Capability of Multi-task Network Communication in RTX

LI Hong-sheng, LI Fan, ZHAO Lan

(School of Automation, Nanjing Institute of Technology, Nanjing 211167,China)

Abstract:The real-time capability of communication network is one of core issues in industrial control system. In order to research real-time capability of RT-TCP/IP protocol communication network in complex environment, the real-time multitask communication, under client/server mode and multithread technology, is realized on a personal computer with RTX real-time operation subsystem and RT-TCP/IP protocol stack. The rapidity, stability and reliability of multi-task communication network are tested and analyzed. It is found that real-time capability of the network may be poor, and high performance hardware is required under multitask application. The test results are useful for RTX network application.

Key words:real-time extension (RTX);RT-TCP/IP;client/server mode;multi-thread;real-time capability

中图分类号:TH165;TG506

文献标识码:A

作者简介:李宏胜(1966— ),男,南京人,南京工程学院教授,硕士生导师,博士,研究方向为数控技术、高性能伺服驱动、机器人控制,(E-mail)zdhxlhs@njit.edu.cn。

*基金项目:江苏省科技支撑计划-工业部分(BE2014025)

收稿日期:2015-07-21

文章编号:1001-2265(2016)02-0072-04

DOI:10.13462/j.cnki.mmtamt.2016.02.020

猜你喜欢
多任务服务端实时性
数字时代的注意困境:媒体多任务的视角*
结合自监督学习的多任务文本语义匹配方法
面向多任务的无人系统通信及控制系统设计与实现
基于中心化自动加权多任务学习的早期轻度认知障碍诊断
新时期《移动Web服务端开发》课程教学改革的研究
航空电子AFDX与AVB传输实时性抗干扰对比
计算机控制系统实时性的提高策略
可编程控制器的实时处理器的研究
摸清黑客套路防范木马侵入