[发明专利]一种基于双操作系统的高实时大数据量测试回放方法有效
申请号: | 201310399154.8 | 申请日: | 2013-09-05 |
公开(公告)号: | CN103440200A | 公开(公告)日: | 2013-12-11 |
发明(设计)人: | 杨顺昆;刘斌;司维 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F12/08 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 成金玉;卢纪 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种基于双操作系统的高实时大数据量测试回放方法,解决高实时大数据量测试回放的难题,首先数据生产节点申请数据缓存区,数据消费者节点申请数据缓存区、初始化所有缓存区,找数据文件并获取数据到缓存区中,初始化网络连接,数据消费节点向数据生产节点请求数据,数据生产节点向数据消费节点返回数据,数据消费节点按照任务调度要求从缓存中取数。本发明可以有效避免数据文件过大导致文件传输时间长的问题,随着数据文件的增大,测试系统用于测试回放的开销不会明显增大。另外,通过缩短每次通信数据包的长度,也可以有效避免多个变量同时需要传输数据时造成的网络拥堵,提高系统的可靠性。 | ||
搜索关键词: | 一种 基于 操作系统 实时 数据量 测试 回放 方法 | ||
【主权项】:
一种基于双操作系统的高实时大数据量测试回放方法,其特征在于:将运行非实时操作系统并且操作数据文件的节点称为数据生产节点,将运行实时操作系统并真正操作总线接口发送测试数据的节点称为数据消费节点,实现步骤如下:(1)数据生产节点根据数据文件对应的变量的长度计算需要申请的缓存区的空间,具体的计算方法为一次读取入缓存区中数据的条数k*变量的长度;如果测试系统中存在多个变量需要同时从数据文件中获取数据,则需要分别根据各变量的长度为每个变量申请一个缓存区;每次读取入缓存区中数据的条数k根据数据生产节点内存条件和需要申请的缓存区数量以及缓存区中每条数据的长度决定,内存比较大则可适当增加每次读取的条数,需要申请缓存区的数量多或者缓存区中每条数据的长度长则减小每次读取的条数以便减少对内存的消耗;(2)数据消费节点遍历所有的变量,统计需要从数据文件中获取数据进行测试回放的变量数以及变量的ID和变量的长度信息,为每个变量申请一组缓存区用于存放数据文件中的数据,每组缓存区包括n块大小一样的缓存区,缓存区的大小为变量的长度乘以缓存区中保存的数据的层数,所述层数即缓存区中的数据可供变量消费的次数,可获取一次为一层;每个变量在数据消费节点上 的缓存区由n块缓存区组成,以避免读写冲突,n的大小取决于操作系统读写内存的速度,速度越快则n越小;(3)所有的缓存区初始化并记录开始位置,缓存区大小以及目前操作的位置信息,数据消费节点每一个需要生产数据的变量记录自己当前操作的是哪块缓存;数据消费节点的每个缓存区对应一个读写状态标签,用于记录缓存区的读写数据的状态,以便在缓存区中的数据消费完成后做出相应的处理;(4)打开数据文件并获取数据到缓存区中,记录数据生产节点从每个数据文件中获取数据的次数以便计算下次从文件中获取数据的位置,具体的计算方法为一次读取入缓存区中数据的条数k*获取数据的次数,每次打开某个数据文件的时候,从该位置开始,获取k条数据,将k条数存入该数据文件对应的变量的缓存区,如果文件中的数据不足则向缓存区中插入结束符;(5)数据生产节点作为数据传送服务器端进入监听状态,数据消费节点作为客户端绑定事先约定的端口并连接服务器端;(6)数据消费节点向数据生产节点发送消息,要求数据生产节点开始生产数据,消息的内容包括请求生成数据的变量的ID,请求数据的层数以及所请求的数据将要存入哪块缓存区;数据生产节点收到消息之后根据消息中变量的ID到该变量所属的数据缓存区中获取数据,如果缓存区中的数据小于数据消费节点请求的层数,则重复步骤(2),从文件中获取数据,如果要发送的数据中有结束符存在,说明缓存中的数据已经不足以满足数据消费节点的请求,则只向数据消费节点发送有效数据,发送数据之前,通过发消息进行握手,消息的内 容包括本次所发的数据所属变量的ID,本次所发的数据包的长度及数据包中的数据应该存入哪块缓存;(7)数据消费节点根据数据生产节点所发消息判断收到数据后的处理方式,主要包括数据应该存入哪块缓存,以及数据长度是否满足请求;数据生产节点发送过来的握手消息中包括数据所属变量的ID以及数据包中的数据应该存入变量的哪块缓存,根据这两个信息能够得知数据应该存入哪块缓存中;如果数据生产节点返回的数据层数与请求的层数一致,则将数据存入缓存中等待调度任务获取数据并赋值给变量;如果数据生产节点返回的数据层数大于请求的层数,则说明通信过程出现错误,给出警告;如果数据生产节点返回的数据层数小于请求的层数,则说明数据文件中的数据已经使用完毕,数据消费节点不再向数据生产节点请求数据,两块缓存区中的数据消费完毕后停止数据回放操作;(8)数据消费节点按照调度算法的要求从缓存中获取数据,每次获取一层,当一块缓存区中的数据全部被获取之后,根据缓存区的读写状态标签的值判断数据消费节点应该做出什么操作:如果本缓存区上次获取的数据长度和请求的相同,说明数据生产节点还可以生产足够的数据;如果本缓存区上次获取的数据小于请求的数据,则说明数据生产节点已经不能生产足够的数据,则将本变量所属的缓存区中的数据都消费完后停止数据回放操作;如果本缓存区上次获取的数据长度大于请求的长度,说明系统运行出错,给出警告并停止测试回放操作。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310399154.8/,转载请声明来源钻瓜专利网。
- 上一篇:光学部件和制造该光学部件的方法
- 下一篇:一种气门升程调节装置