【技术实现步骤摘要】
基于内存池的仿真引擎数据共享黑板系统
[0001]本申请涉及分布并行仿真引擎以及仿真引擎内模型的数据共享
,特别是涉及一种基于内存池的仿真引擎数据共享黑板系统。
技术介绍
[0002]离散系统仿真引擎基于时间或事件驱动方式驱动仿真模型运行,各仿真模型在仿真过程中除了不断更新自我状态,还需要与其他模型进行数据共享,包括:读取其他模型属性状态,与其他模型进行交互。以上数据共享行为将会导致大量的数据访问与交换,因此,仿真引擎中的共享数据管理方式会很大程度上影响系统运行效率。
[0003]在仿真系统中,发布订阅模式被广泛用于仿真数据的共享,其中,每个仿真模型订阅自身感兴趣的数据,同时对外发布其他模型所感兴趣的数据。黑板机制是一种发布订阅的实现方式,通过创建一块公共的数据区域存储仿真引擎中所有模型所公布的属性和交互,使仿真模型可以方便的查询到其所订阅的数据。
[0004]传统的黑板在共享数据管理方面表现欠佳,主要存在以下两个方面的问题:1)传递和更新共享数据的过程中易产生了大量冗余拷贝开销。黑板向模型提供数据时, ...
【技术保护点】
【技术特征摘要】
1.一种基于内存池的仿真引擎数据共享黑板系统,其特征在于,所述系统包括:内存池总池管理模块,用于在初始化时以块为单位向操作系统批量申请内存,根据申请得到的内存块构建共享内存池;在使用时将所述共享内存池分成内存池总池和内存池分池,根据所述内存池总池向操作系统申请内存块,根据所述内存池分池使用内存池总池中的内存块存储共享数据;元数据记录模块,用于根据想定文件和对象描述文件获取模型实体列表、模型类列表以及模型实体对应的模型属性数据尺寸和交互数据尺寸,并将所述模型属性数据尺寸和交互数据尺寸作为共享数据的元数据记录在黑板中;其中,所述模型实体是根据所述模型实体列表构建得到;模型和交互内存池分池模块,用于根据所述元数据中的模型属性数据尺寸和交互数据尺寸,在黑板中为每种模型和交互创建内存池分池;反射对象类模块,用于根据所述模型实体列表为每一个模型实体构建对应的反射对象类指针,并在黑板中对应构建实体信息表,根据所述模型类列表为每一类模型构建对应的反射对象集类,并在黑板中对应构建所有模型的查询结果缓存集;高效更新共享数据模块,用于在仿真过程中将模型实体更新的模型属性数据提交给黑板,黑板根据所述更新的模型属性数据对内存池分池中的副本进行更新;高效查询共享数据模块,用于在仿真过程中,模型根据实体ID、实体类型和自定义条件对其他模型的数据进行查询,并根据黑板返回的查询结果缓存集中的反射对象类指针或反射对象集类获取查询的数据。2.根据权利要求1所述的系统,其特征在于,所述内存池总池管理模块还用于:在共享内存池进行内存释放时,以内存块为单位进行释放;其中,所述内存块固定为一整块长度的连续内存。3.根据权利要求1所述的系统,其特征在于,所述元数据记录模块还用于:通过解析想定文件获取模型实体列表,根据所述模型实体列表构建模型实体;根据想定文件中的对象描述文件路径,读取并解析对象描述文件,根据所述对象描述文件中的数据结构,解析所述模型实体对应的模型属性数据和交互数据的结构,获取所述模型实体对应的模型属性数据尺寸和交互数据尺寸,并将所述模型属性数据尺寸和交互数据尺寸作为共享数据的元数据记录在黑板中;根据所述对象描述文件中的模型类信息,生成对应的模型类表。4.根据权利要求3所述的系统,其特征在于,所述元数据记录模块还用于:当所述模型属性数据或交互数据为结构体时,根据黑板同时记录结构体的所有子属性相对结构体首地址的偏移量,并记录结构体的所有子属性的元数据;当所述模型属性数据或交互数据为数组时,根据黑板同时记录数组的长度以及数组元素的元数据。5.根据权利要求1所述的系统,其特征在于,所述模型和交互内存池分池模块还用于:读取所述元数据记录模块中的元数据,根据所述元数据中的模型属性数据尺寸,在黑板中为模型对应创建内存池分池,根据所述元数据中的交互数据尺寸,在黑板中为每种交互对应创建内存池分池;其中,所述内存池分池从内存块中划分出一段长度等于模型属性数据尺寸或交互数据尺寸的连续区间,作为模型属性数据或交互数据的存储区域,并记录
连续区间的首地址指针。6.根据权利要求5所述的系统,其特征在于,所述模型和交互内存池分池模块还用于:在仿真过程之前,对每种模型和交互对应创建的内存池分池进行初始化,初始化时所述内存池分池中不持有内存块;在仿真过程中,...
【专利技术属性】
技术研发人员:尹路珈,彭勇,艾川,邱思航,黄鹤松,曾俊杰,尹全军,
申请(专利权)人:中国人民解放军国防科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。