一种多线程和多进程一体的仿真模型组件调度方法和系统技术方案

技术编号:27808525 阅读:17 留言:0更新日期:2021-03-30 09:31
本发明专利技术实施例公开一种多线程和多进程一体的仿真模型组件调度方法,包括仿真模型组件托管器向仿真模型组件监控器和仿真模型组件调度引擎上报分布式仿真节点的仿真模型组件的信息和状态;仿真模型组件监控器加载本地仿真模型组件配置文件,接收各个分布仿真模型组件托管器上报的仿真模型组件的信息和状态,并生成仿真模型组件调度配置文件;仿真模型组件调度引擎加载本地仿真模型组件配置文件,接收各个分布仿真模型组件托管器上报的仿真模型组件的信息和状态,加载仿真模型组件调度配置文件,初始化仿真模型组件的调度方式;所述调度引擎和所述托管器通过仿真模型组件应用接口创建仿真模型实例、调度仿真模型推进和收发仿真交互消息和事件。仿真交互消息和事件。仿真交互消息和事件。

【技术实现步骤摘要】
一种多线程和多进程一体的仿真模型组件调度方法和系统


[0001]本专利技术涉及复杂系统并行和分布式仿真领域。更具体地,涉及一种多线程和多进程一体的仿真模型组件调度方法和系统。

技术介绍

[0002]目前,仿真模型组件的调度方法分为集中式和多进程分布式两种,其中,集中式又分为单线程调度和多线程并行调度。仿真模型组件的单线程集中式调度方法为,根据模型组件的调度帧周期、优先级,调度器按顺序依次仿真过程中的每一个模型组件。仿真模型组件的多线程并行调度方法为,仿真引擎维护事件管理器和时间管理器,多个模型组件被分配到多个线程中,每个线程通过向事件管理器发送和接收事件消息,并向时间管理器请求时间推进,从而实现模型组件多线程并行运行。仿真模型组件的多进程分布式调度方法,一般采用HLA(High Level Architecture)等分布式仿真支撑技术,保证消息传输和时间推进,实现仿真模型组件的分布式运行。目前也有将仿真模型组件的集中式和分布式调度进行一体化整合的方法,通过HLA架构下的RTI API并封装HLA模型实现。总的来说,目前仿真模型组件的多线程/多进程一体化调度方法方面,存在以下不足:一是集中/并行调度机制不灵活,整个仿真系统或是运行于集中式模式、获取运行于分布式模型,无法实现部分模型组件集中调度、部分模型组件远程分布式调度;二是底层依赖HLA标准,运行时依赖RTI API,运行时需要依赖联邦管理服务相关程序,运行过程繁琐,依赖复杂,系统可靠性不高;三是集中式模式下模型组件运行效率不高。

技术实现思路

[0003]有鉴于此,本专利技术第一个实施例提供一种多线程和多进程一体的仿真模型组件调度方法,包括:
[0004]S1、运行在分布式仿真节点的仿真模型组件托管器向运行在集中式仿真节点的仿真模型组件监控器和仿真模型组件调度引擎上报分布式仿真节点的仿真模型组件的信息和状态;
[0005]S3、所述仿真模型组件监控器加载本地仿真模型组件配置文件,接收各个分布式仿真节点的仿真模型组件托管器上报的仿真模型组件的信息和状态,分别配置每一个仿真模型组件调度模式,并生成仿真模型组件调度配置文件;
[0006]S5、所述仿真模型组件调度引擎加载本地仿真模型组件配置文件,接收各个分布式仿真节点的仿真模型组件托管器上报的仿真模型组件的信息和状态,加载所述仿真模型组件调度配置文件,初始化每一个仿真模型组件的调度方式;
[0007]S7、所述仿真模型组件调度引擎和仿真模型组件托管器通过仿真模型组件应用接口提供的标准仿真模型交互接口,创建仿真模型实例、调度仿真模型推进和收发仿真交互消息和事件。
[0008]在一个具体实施方式中,所述创建仿真模型实例的方法包括:
[0009]仿真模型组件调度引擎加载仿真想定文件,根据仿真想定文件中的模型要素,实例化每一个仿真模型组件,对于集中多线程调度模型的仿真模型组件,在所述调度引擎本地进行模型组件实例化;
[0010]对于分布多进程调度的仿真模型组件,向对应的仿真模型组件托管器发送模型组件实例化消息,要求其实例化模型组件,同时,在调度引擎内部创建远程仿真模型组件实例的本地代理,用于统一管理时间推进和事件处理;
[0011]所述调度引擎管理仿真想定中所有仿真模型组件实例。
[0012]在一个具体实施方式中,所述调度仿真模型推进包括:
[0013]所述调度引擎初始化内部的时间管理器,创建不超过仿真模型组件实例数的模型组件调度线程,每个调度线程包含一个事件管理器,为仿真模型组件实例分配仿真工作线程,将模型组件的初始化事件根据事件的执行时间放入对应的仿真工作线程中的事件管理器的事件队列的合适位置;
[0014]仿真模型组件调度引擎的每个线程的事件管理器开始执行事件队列中的事件,事件执行时,事件管理器会根据事件队列中的时间戳最小的事件的时间,向时间管理器请求时间推进,得到时间推进允许后,事件管理器会调用仿真模型组件的事件回调函数;对于集中多线程调度的模型组件,事件管理器会通过仿真模型组件应用接口直接调用模型组件实例的回调函数;对于远程分布式多进程调度的模型组件,事件管理器会通过网络远程过程调度技术,将调用信息发送到处在远程分布式仿真节点的仿真模型组件托管器,仿真模型组件托管器会通过仿真模型组件应用接口调用模型组件实例的回调函数;
[0015]对于集中多线程调度的模型组件,调度引擎的仿真工作线程会将新的事件会根据事件执行时间放入到事件队列的合适位置,对于远程分布多进程调度的模型组件,仿真模型组件托管器会将模型组件产生的新的事件通过网络远程过程调用技术,发送到仿真模型组件调度引擎的事件管理器,从而回到上个步骤重复执行,仿真事件得到不断处理,仿真时间随着事件的处理而推进。
[0016]在一个具体实施方式中,所述仿真模型组件调度引擎确认没有新的事件消息后,将调用每个模型组件实例的结束函数,从而结束仿真。
[0017]在一个具体实施方式中,对于集中多线程调度的模型组件,调度引擎会直接调用模型组件实例的结束函数;
[0018]对于远程分布式多进程调度的模型组件,调度引擎会通过网络远程调度技术,将结束函数调用信息发送到处在远程分布式仿真节点的仿真模型组件托管器,仿真模型组件托管器会调用模型组件实例的结束函数。
[0019]在一个具体实施方式中,集中式仿真节点和各个分布式仿真节点分别配有基于仿真模型组件应用接口开发和编译的仿真模型组件以及仿真模型组件配置文件,集中式仿真节点的还配有所述模型组件调度配置文件。
[0020]本专利技术第二个实施例提供一种多线程和多进程一体的仿真模型组件调度系统,其特征在于,包括:仿真模型组件调度引擎、仿真模型组件托管器、仿真模型组件监控器、仿真模型组件应用接口;其中,
[0021]仿真模型组件托管器,运行在分布式仿真节点,用于加载分布式仿真节点的仿真模型组件配置文件,向仿真模型组件调度引擎和仿真模型组件监控器上报分布式仿真节点
的仿真模型组件信息和状态,并加载仿真模型组件,接受仿真模型组件调度引擎的调度;
[0022]仿真模型组件监控器,运行在集中式仿真节点,用于加载本地的模型组件配置文件并接收所述仿真模型组件托管器上报的模型组件信息和状态,分别配置每一个仿真模型组件调度模式,并生成仿真模型组件调度配置文件;
[0023]仿真模型组件调度引擎,运行在集中式仿真节点,用于根据本地仿真模型组件配置文件,接收各个分布式仿真节点的仿真模型组件托管器上报的仿真模型组件的信息和状态,加载所述仿真模型组件调度配置文件,初始化每一个仿真模型组件的调度方式;
[0024]仿真模型组件应用接口,被编译进仿真模型组件内部,用于为仿真模型组件提供支持集中多线程和分布多进程一体化的标准仿真模型交互接口;
[0025]所述仿真模型组件调度引擎和仿真模型组件托管器通过仿真模型组件应用接口提供的标准仿真模型交互接口,创建仿真模型实例、调度仿真模型推进、收发仿真交互消息和事件。
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多线程和多进程一体的仿真模型组件调度方法,其特征在于,包括:S1、运行在分布式仿真节点的仿真模型组件托管器向运行在集中式仿真节点的仿真模型组件监控器和仿真模型组件调度引擎上报分布式仿真节点的仿真模型组件的信息和状态;S3、所述仿真模型组件监控器加载本地仿真模型组件配置文件,接收各个分布式仿真节点的仿真模型组件托管器上报的仿真模型组件的信息和状态,分别配置每一个仿真模型组件调度模式,并生成仿真模型组件调度配置文件;S5、所述仿真模型组件调度引擎加载本地仿真模型组件配置文件,接收各个分布式仿真节点的仿真模型组件托管器上报的仿真模型组件的信息和状态,加载所述仿真模型组件调度配置文件,初始化每一个仿真模型组件的调度方式;S7、所述仿真模型组件调度引擎和仿真模型组件托管器通过仿真模型组件应用接口提供的标准仿真模型交互接口,创建仿真模型实例、调度仿真模型推进和收发仿真交互消息和事件。2.根据权利要求1所述的方法,其特征在于,所述创建仿真模型实例的方法包括:仿真模型组件调度引擎加载仿真想定文件,根据仿真想定文件中的模型要素,实例化每一个仿真模型组件,对于集中多线程调度模型的仿真模型组件,在所述调度引擎本地进行模型组件实例化;对于分布多进程调度的仿真模型组件,向对应的仿真模型组件托管器发送模型组件实例化消息,要求其实例化模型组件,同时,在调度引擎内部创建远程仿真模型组件实例的本地代理,用于统一管理时间推进和事件处理;所述调度引擎管理仿真想定中所有仿真模型组件实例。3.根据权利要求2所述的方法,其特征在于,所述调度仿真模型推进包括:所述调度引擎初始化内部的时间管理器,创建不超过仿真模型组件实例数的模型组件调度线程,每个调度线程包含一个事件管理器,为仿真模型组件实例分配仿真工作线程,将模型组件的初始化事件根据事件的执行时间放入对应的仿真工作线程中的事件管理器的事件队列的合适位置;仿真模型组件调度引擎的每个线程的事件管理器开始执行事件队列中的事件,事件执行时,事件管理器会根据事件队列中的时间戳最小的事件的时间,向时间管理器请求时间推进,得到时间推进允许后,事件管理器会调用仿真模型组件的事件回调函数;对于集中多线程调度的模型组件,事件管理器会通过仿真模型组件应用接口直接调用模型组件实例的回调函数;对于远程分布式多进程调度的模型组件,事件管理器会通过网络远程过程调度技术,将调用信息发送到处在远程分布式仿真节点的仿真模型组件托管器,仿真模型组件托管器会通过仿真模型组件应用接口调用模型组件实例的回调函数;对于集中多线程调度的模型组件,调度引擎的仿真工作线程会将新的事件会根据事件执行时间放入到事件队列的合适位置,对于远程分布多进程调度的模型组件,仿真模型组件托管器会将模型组件产生的新的事件通过网络远程过程调用技术,发送到仿真模型组...

【专利技术属性】
技术研发人员:陈秋瑞卿杜政杨凯周敏梅铮谢宝娣杨涵博刘晨马原野李亚雯蔡继红王清云董国宝霍达
申请(专利权)人:北京仿真中心
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1