一种分区调度方法技术

技术编号:15355718 阅读:87 留言:0更新日期:2017-05-17 14:14
本发明专利技术公开了一种分区调度方法,属于网络通信领域。用以解决机载软件运行测试平台存在平台资源受限,导致测试周期比较长,集成过程复杂等问题。包括使用驱动加载软件进行系统初始化;通过配置信息加载器打开共享内存,将系统管理器信息映射至程序的地址空间;设置APIC Timer标志位并将模块地址作为第一参数发送至模块调度器;将APIC Timer对应的时间确定为系统当前时间;根据第一参数,确定模块地址对应的模块当前状态,将确定的第二调度标志位信息发送至分区调度器,将运行状态为NORMAL的第二分区内包括的全部进程按照调度策略进行调度,ARINC653标准接口按照调度策略将正在调度的第一进程的ID从所述第二分区内删除。

【技术实现步骤摘要】

本专利技术涉及网络通信领域,尤其涉及一种分区调度方法
技术介绍
ARINC653规范定义了综合模块化航空电子(英文为IntegrratedModularAvionics,英文简称IMA)实时操作系统的行为逻辑以及向应用程序提供的接口规范,该系统提出的分区概念,是ARINC653标准中资源分配、调度、实现系统空间时间隔离的基本单位,保障了IMA航电系统的高可靠性与高安全性。为了保证航电系统的安全性与可靠性,航电软件在部署应用前需要进行充分的测试和验证。在实际开发过程中,为支持全系统机载软件的研制与调试,目前国内的机载软件运行测试平台主要采用全物理仿真或半物理仿真的搭建方式。在这种方式下,搭建全部平台需要大量真实硬件,并且,由于缺乏开发平台,使得该开发难度比较高,且部署数量受限。在系统集成阶段,多个子系统都需要在完整的平台上测试运行。由于平台资源有限,子系统的运行测试只能排队依次测试,当某个子系统出现问题时,需要返工重新排队申请再次测试。因此,采用航电系统集成单位的测试平台,容易导致系统测试周期长、集成过程复杂,并且任务紧迫,成本昂贵的问题。综上所述,现有的机载软件运行测试平台存在平台资源受限,导致系统测试周期比较长,集成过程复杂,且导致成本昂贵的问题。
技术实现思路
本专利技术提供一种分区调度方法,用以解决现有的机载软件运行测试平台存在平台资源受限,导致系统测试周期比较长,集成过程复杂,且导致成本昂贵的问题。本专利技术实施例提供一种分区调度方法,包括使用驱动加载软件进行系统初始化;通过配置信息加载器打开共享内存,将系统管理器信息映射至程序的地址空间;设置APICTimer标志位并将模块地址作为第一参数发送至模块调度器;所述模块调度器将所述APICTimer对应的时间确定为系统当前时间;根据所述第一参数,若确定所述模块地址对应的模块当前状态为POWER_RUNNING,则获取当前正在运行的第一分区信息;若所述第一分区信息对应的分区状态为运行状态,且所述系统当前时间大于所述第一分区预计调度时间,则暂停所述第一分区的调度,并将所述第一分区的第一暂停标志位和第一调度标志位分别设置为TRUE;获取下一个被调度的第二分区,根据所述第二分区Duration确定所述第二分区预计调度时间,若所述第二分区预计调度时间大于所述系统当前时间,则将所述第二分区的第二调度标志位设置为TRUE,并将所述第二调度标志位信息作为调度事件发送至分区调度器;所述分区调度器根据所述调度事件,若确定所述第二调度标志位的信息为TRUE,则关闭所述第二分区调度功能,先将所述第二分区进行RESUME,并将所述第二分区运行状态设置为NORMAL,并将运行状态为NORMAL的所述第二分区内包括的全部进程按照调度策略进行调度;ARINC653标准接口按照调度策略将正在调度的第一进程的ID从所述第二分区内删除。优选地,所述分区调度器根据所述调度事件,若确定所述第二调度标志位的信息为TRUE,则关闭所述第二分区调度功能之后,还包括:若所述第二分区的第二暂停标志位为TRUE,则暂停所述第二分区的调度。优选地,所述使用驱动加载软件进行系统初始化包括:获取系统处理器的核心数量,每个所述核心启动一个模块,并将所有已启动的所述模块的状态设置为POWER_OFF;将所述模块状态为POWER_ON的所述模块确定为第一模块,为所述第一模块在系统空间申请一块内存空间,获取所述第一模块的内存在整个共享内存中的相对偏移,并将所述第一模块的状态设置为POWER_NORMAL;将所述模块状态为POWER_BUILDED的所述模块确定为第二模块,为所述第二模块中每个分区创建所述调度事件,并将所述第二模块的状态设置为POWER_RUNNING。优选地,所述通过配置信息加载器打开共享内存,将系统管理器信息映射至程序的地址空间,包括:通过配置信息加载器打开所述共享内存,将内核空间中所述系统管理器信息映射至所述程序的地址空间,当所述第一模块的状态从POWER_ON变为POWER_NORMAL时,将所述配置信息写入所述第一模块的内存,并将所述第一模块的状态设置为POWER_BUILDED;所述配置信息包含模块配置信息、分区配置信息、伪分区配置信息、队列端口配置信息、采样端口配置信息、主时间框架配置信息、调度ID号和调度优先级。优选地,所述设置APICTimer标志位并将模块地址作为第一参数传给模块调度器,包括:确定当前状态为POWER_BUILDED的所述模块地址,将所述模块地址确定为所述第一参数;将所述APICTimer周期设置为100微秒,并启动所述APICTimer。优选地,所述ARINC653标准接口按照调度策略将正在调度的第一进程的ID从所述第二分区内删除之后,还包括:将停止进程指针指向所述第一进程,并触发重调度指令,等待对所述第一进程停止调用。本专利技术实施例中,提供了一种分区调度方法,包括:使用驱动加载软件进行系统初始化;通过配置信息加载器打开共享内存,将系统管理器信息映射至程序的地址空间;设置APICTimer标志位并将模块地址作为第一参数发送至模块调度器;所述模块调度器将所述APICTimer对应的时间确定为系统当前时间;根据所述第一参数,若确定所述模块地址对应的模块当前状态为POWER_RUNNING,则获取当前正在运行的第一分区信息;若所述第一分区信息对应的分区状态为运行状态,且所述系统当前时间大于所述第一分区预计调度时间,则暂停所述第一分区的调度,并将所述第一分区的第一暂停标志位和第一调度标志位分别设置为TRUE;获取下一个被调度的第二分区,根据所述第二分区Duration确定所述第二分区预计调度时间,若所述第二分区预计调度时间大于所述系统当前时间,则将所述第二分区的第二调度标志位设置为TRUE,并将所述第二调度标志位信息作为调度事件发送至分区调度器;所述分区调度器根据所述调度事件,若确定所述第二调度标志位的信息为TRUE,则关闭所述第二分区调度功能,先将所述第二分区进行RESUME,并将所述第二分区运行状态设置为NORMAL,并将运行状态为NORMAL的所述第二分区内包括的全部进程按照调度策略进行调度;ARINC653标准接口按照调度策略将正在调度的第一进程的ID从所述第二分区内删除。上述方法中,采用Windows驱动的方式加载模块调度器,使模块调度器工作在内核态,并使其运行在DPC中断优先级下,从而不会被Windows调度器所打断,保障了调度的稳定性。而对于性能要求不是特别高的分区调度器,则运行在用户态;使用LocalAPIC中的APICTimer来触发模块调度器并提供最高精度100微秒的时钟信号,可以保障调度时间的准确性;将ARINC653的接口进行封装,并结合模块调度器和分区调度器,可以让机载软件开发与调试可以在Windows下进行,大大降低了开发难度和成本。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供一种分区调度方法流程示意图;本文档来自技高网...
一种分区调度方法

【技术保护点】
一种分区调度方法,其特征在于,包括使用驱动加载软件进行系统初始化;通过配置信息加载器打开共享内存,将系统管理器信息映射至程序的地址空间;设置APIC Timer标志位并将模块地址作为第一参数发送至模块调度器;所述模块调度器将所述APIC Timer对应的时间确定为系统当前时间;根据所述第一参数,若确定所述模块地址对应的模块当前状态为POWER_RUNNING,则获取当前正在运行的第一分区信息;若所述第一分区信息对应的分区状态为运行状态,且所述系统当前时间大于所述第一分区预计调度时间,则暂停所述第一分区的调度,并将所述第一分区的第一暂停标志位和第一调度标志位分别设置为TRUE;获取下一个被调度的第二分区,根据所述第二分区Duration确定所述第二分区预计调度时间,若所述第二分区预计调度时间大于所述系统当前时间,则将所述第二分区的第二调度标志位设置为TRUE,并将所述第二调度标志位信息作为调度事件发送至分区调度器;所述分区调度器根据所述调度事件,若确定所述第二调度标志位的信息为TRUE,则关闭所述第二分区调度功能,先将所述第二分区进行RESUME,并将所述第二分区运行状态设置为NORMAL,并将运行状态为NORMAL的所述第二分区内包括的全部进程按照调度策略进行调度;ARINC653标准接口按照调度策略将正在调度的第一进程的ID从所述第二分区内删除。...

【技术特征摘要】
1.一种分区调度方法,其特征在于,包括使用驱动加载软件进行系统初始化;通过配置信息加载器打开共享内存,将系统管理器信息映射至程序的地址空间;设置APICTimer标志位并将模块地址作为第一参数发送至模块调度器;所述模块调度器将所述APICTimer对应的时间确定为系统当前时间;根据所述第一参数,若确定所述模块地址对应的模块当前状态为POWER_RUNNING,则获取当前正在运行的第一分区信息;若所述第一分区信息对应的分区状态为运行状态,且所述系统当前时间大于所述第一分区预计调度时间,则暂停所述第一分区的调度,并将所述第一分区的第一暂停标志位和第一调度标志位分别设置为TRUE;获取下一个被调度的第二分区,根据所述第二分区Duration确定所述第二分区预计调度时间,若所述第二分区预计调度时间大于所述系统当前时间,则将所述第二分区的第二调度标志位设置为TRUE,并将所述第二调度标志位信息作为调度事件发送至分区调度器;所述分区调度器根据所述调度事件,若确定所述第二调度标志位的信息为TRUE,则关闭所述第二分区调度功能,先将所述第二分区进行RESUME,并将所述第二分区运行状态设置为NORMAL,并将运行状态为NORMAL的所述第二分区内包括的全部进程按照调度策略进行调度;ARINC653标准接口按照调度策略将正在调度的第一进程的ID从所述第二分区内删除。2.如权利要求1所述的方法,其特征在于,所述分区调度器根据所述调度事件,若确定所述第二调度标志位的信息为TRUE,则关闭所述第二分区调度功能之后,还包括:若所述第二分区的第二暂停标志位为TRUE,则暂停所述第二分区的调度。3.如权利要求1所述的方法,其特征在于,所述使用驱动加载软件进行系统初始化包括:获取系统处理器的...

【专利技术属性】
技术研发人员:杜承烈彭寒王延钊陈进朝蒋泽军
申请(专利权)人:西北工业大学
类型:发明
国别省市:陕西;61

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

1