分布仿真系统中的动态内存分配算法.pdf

分布仿真系统中的动态内存分配算法.pdf

ID:54376329

大小:543.83 KB

页数:4页

时间:2020-05-01

分布仿真系统中的动态内存分配算法.pdf_第1页
分布仿真系统中的动态内存分配算法.pdf_第2页
分布仿真系统中的动态内存分配算法.pdf_第3页
分布仿真系统中的动态内存分配算法.pdf_第4页
资源描述:

《分布仿真系统中的动态内存分配算法.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、东莞理工学院学报第2l卷第1期JOURNALOFDONGGUANUNIVERSITYOFTECHNOLOGYVo1.21No.12014年2月Feb.2014分布仿真系统中的动态内存分配算法李雨江(湛江师范学院数学与计算科学学院,广东湛江524048)摘要:针对分布仿真系统中的内存分配问题,提出了一种基于VMIC的内存分配算法,利用向量和映射相结合的方式对VMIC板卡的内存空间进行动态分配和释放。试验表明,该算法能够准确地为仿真数据分配和释放空间,处理内存分配和释放过程中出现的异常,且能够及时合并空闲空间以减少内存碎片,从而满足分布仿真系统对大量数据的存取需求。关键词:分布仿真系统;V

2、MIC;内存分配;向量;映射中图分类号:TP391.9文献标识码:A文章编号:1009—0312(2014)01—0057—04当前的分布仿真系统主要基于HLA/RTI平台搭建。由于RTI在实时性方面的缺陷¨,使其难以满足对实时陛要求很高的半实物仿真系统,因此,往往需要引入VMIC实时网,从网络方面扩展分布仿真系统的实时性。在这样的异构网络环境中,如何分配和释放VMIC板卡的内存空间,为分布仿真系统提供有力数据支持,是一个需要解决的重要问题。本文提出了一种利用向量和映射实现的动态内存分配算法。1VMIC实时网原理VMIC实时网主要是由VMIC板卡通过光纤等传输介质连接而成的。实时网中的

3、每个计算节点都安装一块VMIC卡。每块卡上都有自己独立的局部内存,它通过局部内存映射将网卡上的局部内存映射到主机内存,用户读写网卡上的数据就如同读写主机内存上的数据一样快速、方便。此外,每块VMIC反射内存卡通过网络内存映射,将分布在节点卡上的局部内存,映射到一个虚拟的全局内存,即每个节点在写入本地节点卡的数据同时也写入所有其他节点卡的内存,这样,用户对本地节点内存的读写相当于对全局内存进行读写,而这个全局内存是所有分布节点都可共享的,从而实现了分布节点问的实时数据通信。VMIC反射内存网可以达到数十兆字节的传输率和百纳秒级的数据传输延迟,且这种网络的传输延迟是确定和可以预期的,这是传

4、统网络难以达到的。因此,对低延迟、实时性要求高的分布式仿真系统来说,VMIC网是一个理想的解决方案。2算法设计2.1VMIC反射内存的层次划分本文将内存为128M的VMIC板卡划分为三个部分:第一部分用于存储系统时间和预估时间,占1M空间;第二部分用于存储联邦、联邦成员和类实例数据,占126M空间;剩下部分作为系统保留空间,用于日后扩展。根据仿真系统中数据之间的逻辑关系,进一步将第二部分内存分为三个层次,如图1所示。从图1可知,VMIC板卡的第二部分内存分为联邦、联邦成员和类实例三个层次。第一层次为联邦所占用的空间和相应剩余空间,第二层次是在联邦内部进行的划分,分为某联邦所属联邦成员所

5、占的空收稿日期:2013—10—09作者简介:李雨江(1985一),女,广东湛江人,助教,硕士,主要从事分布式仿真研究。第1期李雨江:分布仿真系统中的动态内存分配算法59图2联邦Fnum的内存分配流程图3联邦Fnum的内存释放流程3测试结果按照上述流程,实现了联邦内存分配函数federationMalloc和联邦内存释放函数federationFree。本文利用白盒测试工具Bul1seyecoverage对这两个函数进行了测试,测试用例的内容为:1)为联邦1和0分别分配空间1024k、130048k(空间不足异常),再次为联邦1分配1O00k空间(空间重复分配异常),分别为联邦2至联邦

6、7分配空间1098k、1O02k、5O00k、6102k、4506k、1608k;2)释放联邦2的空间,为联邦8分配1098k空间,再依次释放联邦8、1(右相邻)、3(左相邻)、5、7、6(左右相邻)的空间,最后释放联邦1的空间(释放并不存在的联邦导致异常)。Bu1lseyecoverage的测试结果和控制台的显示信息分别如图4、图5所示。其中,图4中的第一行分别表示函数名称、函数覆盖率、未覆盖的函数数量、条件/判定覆盖率、未覆盖条件/判定的数目(该函数所含有的条件/判定数目减去已经覆盖的条件/判定数目)。图5中虚线的上部分是执行测试用例1)后联邦闲空间和忙空间的情况,虚线以下部分是执

7、行测试用例2)后联邦闲空间和忙空间的情况。Namelonc0一URcove.Cond~on/deU冀w⋯⋯⋯⋯⋯⋯..⋯⋯⋯⋯一一.

8、_⋯.~⋯⋯.⋯.⋯⋯⋯-“.⋯:.●federationMalloc(。..100%●—■■l一1=0100%●■■●18·18:0—federatlonFree(i嗍100%■l1一l:0100%●■●22—22=0图4BullseyeCoVerag的测试结果从图4可知,这两个函数覆盖率和条件/判定覆盖率均为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。