基于令牌漏桶法的自适应数据记录/回放技术及其实现方法

文档序号:6438758阅读:214来源:国知局
专利名称:基于令牌漏桶法的自适应数据记录/回放技术及其实现方法
技术领域
本发明涉及基于令牌漏桶法的自适应数据记录/回放技术及其实现方法,属于高实时性计算机系统中嵌入数据记录/回放功能的技术,采用令牌漏桶法分批打包处理技术和自适应分配CPU时间片的技术实现高实时性系统中数据记录和回放。
背景技术
实时采集和回放(再现)真实的雷达目标航迹数据,已成为雷达技术研究和使用的功能要求。但是由于雷达终端对实时性要求非常高,在终端上进行数据记录会影响雷达系统乃至整个作战系统对目标处理的实时性。同时数据回放也要求最接近实战情况,故对实时性要求也非常高。如果采用专门的数据记录/回放设备,不仅软件硬件的代价昂贵,而且不能在原设备上面直观回放。由于数据记录/回放时读写外部存储器的速度很慢,需要占用大量时间,而实时系统不能分配出大量的时间用于频繁的读写外部存储器。如果采用普通的方法在雷达系统中添加数据记录/回放功能会使实时系统失去实时性,甚至死机。在航迹较多时,由于其产生的随机性,如果采用逐个航迹数据进行读写外存来实现航迹数据记录/回放,需要占用大量的CPU资源。如果航迹较多即使占用全部CPU时间片也无法实现航迹数据的实时记录回放,更无法保证原系统的实时性。在本发明中提出一种优化的漏桶法,自适应的记录/回放数据,可以大大减少数据记录回放占用的CPU时间片, 并且可以自适应的选择CPU空闲时间执行。

发明内容
本发明的目的在于提供一种基于令牌漏桶法的自适应数据记录/回放技术及实现方法,该发明能够在不影响实时系统正常运行的情况下实现数据记录/回放功能。实现本发明的技术解决方案为首先对实时系统正常运行时CPU、内存等占用率进行统计,得出记录回放模块最大可以占用的系统资源率,和每次处理可以占用的最大时间片。针对每条航迹的数据量相对比较小,采用一次读写多个航迹形成的数据块,比每次读写外部存储器记录一个航迹进行操作可以节约大量的时间。本发明通过打包读写的方法大量减少读写数据的次数,从而大大减少读写数据占用总时间片。每次可以读写数据的最大量根据每次可以占用最长时间片设计。根据系统运行情况和当前循环队列数据池中缓冲数据量发放数据记录或回放令牌。收到令牌的记录或回放任务通过自适应的任务调度算法选择CPU空闲时间执行。本发明在基于VxWorks的软件平台上,采用C++语言编程,实现了该算法并应用于工程实际。本发明与现有技术相比,其显著优点为采用基于令牌漏桶法与自适应任务调度相融合的实时数据记录/回放算法,能在不影响系统实时性的情况下实现航迹数据的记录和回放,不仅节约了资金和空间,且其工程实现简单,在现有的实时系统中嵌入该软件模块即可;回放效果直观形象。该方法具有实时性好、成本低廉、效果明显的特点。它的提出及工程实现在雷达、指控等设备上具有很高的推广应用价值。下面结合附图对本发明作进一步详细描述。


图1为基于令牌漏桶法的自适应数据记录/回放技术工作流程图,是本发明的工作流程图。图2、图3、图4为基于令牌漏桶法自适应的数据记录回放技术的CPU时间片分配图, 是本发明中系统CPU时间片分配图。其中图2是未进行记录/回放时CPU时间片分配图; 图3是采用普通方法记录任务时CPU时间片分配图;图4是采用令牌漏斗法自适应记录/回放时CPU时间片分配图。
具体实施例方式本发明基于令牌漏桶法和自适应的数据记录/回放技术及实现方法具体实施步骤为(参见图1)①通过WDB绘出当前实时系统资源占用图表,统计系统资源的占用率,占用时间段等数据;②根据统计数据设置令牌发放频率,设计循环队列数据池和构建令牌漏桶;③根据设计的循环队列数据池结构打包存储待处理数据,如果回放则设计解析回放循环队列数据池中数据。④根据系统运行情况和循环队列数据池中待处理数据量适时产生令牌;⑤接收到令牌的任务(读或写)根据当前CPU的空闲情况自适应选择执行时机, 并根据当前循环队列数据池中待处理数据量自适应选择处理数据块的数量。在数据记录过程中当循环队列数据池中缓存的数据较多时,按照每次最大可以存储数据量进行记录,并释放循环队列数据池中对应空间;如果循环队列数据池中数据量小于最大可以存储量时(大部分情况)一次性记录全部数据并释放循环队列数据池,以降低数据的读或写占用的CPU资源量。数据记录时系统根据CPU空闲周期和循环队列数据池数据量适时释放令牌,如果数据量太少就释放令牌会导致数据记录任务占用过多CPU资源,相反如果数据太多会导致待记录数据丢失。收到令牌的数据记录任务自适应的选择在CPU空闲较多时记录数据,记录数据任务尽可能多的从循环队列数据池中提取数据记录在外部存储设备中。 在数据回放过程中根据系统运行周期和循环队列数据池可以用来回放的数据量决定是否释放令牌;收到令牌的数据读取任务自适应的选择在CPU空闲较多时从外部存储空间中读取数据,读取任务根据循环队列数据池中缓存数据量尽量多的读取数据;数据回放模块根据循环队列数据池的数据结构和时间戳进行实时回放。该方法在基于VxWorks 5. 5操作系统平台上实现实时处理。整个系统的功能采用 C++语言编写。采用的雷达终端每个周期处理的目标个数是100批;硬件环境为^Itel(R)Core(TM)Duo 1. 66GHz,内存1024MB,存储介质电子盘10GB。通过试验验证,该方法在保证原系统可靠性和实时性的前提下,实现了数据的实时记录/回放功能。
基于令牌漏桶法的自适应数据记录回放技术及实现方法已经成功应用某型雷达系统,该方法能在不影响原系统正常运行的情况下,可以实时的记录或回放最多100批/2 秒航迹数据。
权利要求
1.一种基于令牌漏桶法的自适应数据记录/回放技术及实现方法,其特征在于采用循环队列数据池缓存待记录/回放的数据;使用令牌漏桶的方法,根据具体的CPU使用情况和当前循环队列数据池中待处理数据的数据量发放令牌给记录/回放任务。
2.一种实现权利要求1所述的基于令牌漏桶法的自适寻数据记录回放技术在基于 VxWorks平台上,采用C++语言编程实现的数据记录回放模块嵌入到实时系统中。其特征在于首先采用对需要记录的数据进行分批打包记录,或对需要回放的数据进行分块读取的方法;然后对写或读的任务按照令牌发放的方式控制其操作数量,通过自适应选择CPU空闲的时间段的方法完成数据的读或写。
全文摘要
本发明设计一种基于令牌漏桶法的自适应插入数据记录/回放技术及实现方法。该方法主要适用于实时操作系统中,在不影响正常任务运行情况下嵌入实时的记录数据/回放功能。实现过程是首先按照一定的结构把需要记录数据打包存放入循环队列数据池中,根据整个系统运行情况和数据池中数据量发放令牌,收到令牌的任务自适应的选择CPU空闲时间完成一批数据的记录。数据回放情况是根据整个系统运行情况和循环队列数据池中数据量发放令牌,领到令牌的任务批量的从外部存储器中读取数据放入循环队列数据池中,系统实时的从循环队列数据池中读取数据用于回放。本发明能实现数据的实时记录/回放功能。广泛应用于雷达探测数据及有关设备数据等的实时记录与回放。
文档编号G06F17/40GK102567549SQ20111036712
公开日2012年7月11日 申请日期2011年11月18日 优先权日2011年11月18日
发明者孟凡, 徐斌, 杜杭, 邢永昌 申请人:中国船舶重工集团公司第七二四研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1