分布仿真系统中的动态内存分配算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
空间,为联邦 8 分配 1 0 9 8 k 空 间,再依 次释放联邦 8 、1 ( 右相邻 ) 、3 ( 左相邻 ) 、5 、 7 、6 ( 左右相 邻)的空间 ,最后释放联邦 1 的空间 ( 释放并不存在的联邦导致异常) 。 B u 1 l s e y e c o v e r a g e 的测试结果和控制台的显示信息分别如图4 、图 5 所示 。其 中,图 4中的第一行分
第2 l 卷第 1 期
2 0 1 4年 2 月
J OUR NAL OF DO NGGU AN UN I VE RS I T Y OF T E C HNO L OG Y
东 莞 理 工 学 院 学 报
V o 1 . 2 1 N o . 1
F e b . 2 01 4
提供 有力 数据 支持 ,是 一个 需要 解决 的重 要 问题 。本文 提 出 了一 种利 用 向量和 映射 实现 的动 态 内存 分 配 算法 。
1 VMI C 实 时 网原 理
V M I C实时网主要是 由 V M I C板卡通过光纤等传输介质连接而成 的。实时网中的每个计算节点都安
分 布 仿 真 系统 中 的动 态 内存 分 配 算 法
李雨 江
( 湛江师范学院 数学与计算科学学 院 , 广东湛江 5 2 4 0 4 8 )
摘要 :针 对分布仿 真 系统 中的 内存分配 问题 ,提 出了一种 基 于 V MI C的 内存 分配算 法 ,利用 向量和 映射
相结合 的方式对 V M I C板卡 的 内存 空间进 行动 态分配和释放 。试验表 明 ,该 算法能 够准确地 为仿 真数 据 分配 和释放 空间,处理 内存 分配和释 放过程 中出现的异常 ,且 能够及 时合 并 空闲空 间以减 少 内存碎 片,从 而 满足
第1 期
李雨 江 :分布仿 真系统 中的动态 内存分配算法
5 9
图 2 联邦 F n u m 的 内存分配流程
图3 联邦 F n u m 的 内存释放流程
3 测 试 结 果
按照上述流程 ,实现了联邦 内存分配函数 f e d e r a t i o n M a l l o c 和联邦 内存释放 函数 f e d e r a t i o n F r e e 。本文 利用 白盒测试工具 B u l 1 s e y e c o v e r a g e 对这两个函数进行了测试 ,测试用例的内容为 :1 )为联邦 1 和0 分 别分 配 空 间 1 0 2 4 k 、1 3 0 0 4 8 k( 空 间不 足异 常 ) ,再次 为联 邦 1 分配 1 O 0 0 k空 间 ( 空 间重 复分 配异 常 ) , 分别为联邦 2至联邦 7分配空间 1 0 9 8 k 、1 O 0 2 k 、 5 O 0 0 k 、 6 1 0 2 k 、 4 5 0 6 k 、1 6 0 8 k ;2 )释放联邦 2的
示。
从图 1 可知 ,V M I C板卡的第二部分内存分为联邦 、联邦成员和类实例三个层次。第一层次为联邦 所 占用的空间和相应剩余空间,第二层次是在联邦 内部进行的划分 ,分为某联邦所属联邦成员所 占的空
收 稿 日期 : 2 0 1 3—1 0—0 9
作者简 介: 李雨江 ( 1 9 8 5 一) ,女 ,广东湛江人 ,助教 ,硕士 ,主要从事分 布式仿 真研究 。
当前的分布仿真系统主要基于 H L A / R T I 平台搭建。由于 R T I 在实时性方面的缺陷 ¨ ,使其难 以满 足对实时 陛要求很高的半实物仿真系统 ,因此 ,往往需要引入 V M I C实时网,从 网络方面扩展分布仿真 系统 的实 时性 。在 这样 的异构 网络 环境 中 ,如何 分配 和释放 V MI C板 卡 的内存 空间 ,为分 布 仿真 系 统
分 布 仿 真 系统 对 大 量数 据 的 存 取 需 求 。 关 键 词 :分 布 仿 真 系统 ;V MI C; 内存 分 配 ;向 量 ;映 射
中图分类号 :T P 3 9 1 . 9
文献标识码 :A
Байду номын сангаас
文章 编号 :1 0 0 9— 0 3 1 2( 2 0 1 4 )0 1— 0 0 5 7— 0 4
别表 示 函数名 称 、函数 覆 盖率 、未 覆 盖 的 函数 数 量 、条 件/ 判 定 覆 盖 率 、未 覆 盖 条件/ 判定的数 目 ( 该 函数 所含 有 的条件/ 判 定数 目减 去 已经覆 盖 的条件/ 判定 数 目) 。 图 5中虚 线 的上部 分是 执行 测试 用 例 1 )
装 一块 V MI C卡 。每块 卡 上都 有 自己独 立 的局部 内存 ,它 通过局 部 内存 映射将 网卡上 的局 部 内存 映射 到
主机内存 ,用户读写 网卡上的数据就如同读写主机 内存上 的数据一样快速 、方便。此外 ,每块 V M I C反 射 内存卡通过网络内存映射 ,将分布在节点卡上的局部 内存 ,映射到一个虚拟的全局 内存 ,即每个节点 在 写入 本地 节 点卡 的数 据 同时也 写入所 有 其他 节点 卡 的 内存 ,这样 ,用户对 本 地节点 内存 的读 写相 当于 对全局 内存进行读写,而这个全局内存是所有分布节点都可共享的,从而实现了分布节点问的实时数据 通 信 。 V M I C反射 内存 网可 以达到数十兆字节 的传输率和百纳秒级的数据传输延迟 ,且这种网络 的传输延 迟是确定和可以预期的 ,这是传统 网络难 以达到的 。因此 ,对低延迟 、实时性要求高 的分布式仿真 系 统来 说 ,V MI C网是一 个理 想 的解决 方案 。
2 算法设计
2 . 1 V MI C反 射 内存 的层次 划分
本 文将 内存 为 1 2 8 M的 V MI C板 卡划分 为 三个部 分 :第一 部分 用 于存储 系统 时 间和 预估 时间 ,占 1 M
空间 ; 第二部分用于存储联邦 、联邦成员和类实例数据 ,占 1 2 6 M空间 ;剩下部分作为系统保 留空间 , 用于 日 后扩展。根据仿真系统中数据之间的逻辑关系,进一步将第二部分内存分为三个层次 ,如图 1 所