一种不破坏客户操作系统自有调度策略的虚拟化调度方法

文档序号:6493827阅读:151来源:国知局
一种不破坏客户操作系统自有调度策略的虚拟化调度方法
【专利摘要】本发明涉及一种不破坏客户操作系统自有调度策略的虚拟化调度方法,通过对于具有相同响应性能要求的任务,赋予相同的优先级,调用虚拟化管理器的系统服务,在虚拟化管理器中创建包含优先级信息的任务控制块,将任务置于未激活状态等步骤,在确保实时性能和虚拟化原则的基础上使虚拟化管理器和客户操作系统的调度配合,避免了客户操作系统自有调度策略遭到破坏,使混合任务平台之上的全局统一调度成为可能,提高了整个系统的实时响应性能和调度效率。
【专利说明】一种不破坏客户操作系统自有调度策略的虚拟化调度方法
【技术领域】
[0001]本发明属于航空电子【技术领域】,涉及一种不破坏客户操作系统自有调度策略的虚拟调化调度方法。
【背景技术】
[0002]随着航空电子技术的发展,机载电子系统综合化成为必然发展趋势,一个物理平台可能承担来自多各系统的不同类型的任务,这些任务可能是机电、航电或飞控应用,具有不同的响应性能要求。为了应对这种实时任务和一般任务共存的场景,合理的调度策略就是把当前调度集合中的实时任务和非实时任务按照优先级统一调度,达到优先处理强实时任务的效果。
[0003]如图1所示的全局统一调度方法,给混合任务平台上的所有任务赋予全局统一优先级,在虚拟化管理器中维护一个建立在当前活动分区所有任务集合之上的全局的任务优先级调度队列,进行全局统一调度。具体来说就是将所有任务的实时优先级都映射为全局的统一优先级,然后在时间片耗尽和实时事件触发时,由虚拟化管理器的调度器进行统一调度。
[0004]对于同一实时响应要求的任务全部给定相同的全局优先级,相同优先级的任务在全局实时调度中是以轮转Round-Robin方式进行调度。这种优先级配置策略在系统存在虚拟化分区的情况下将破坏客户操作系统原本的调度策略(比如Linux的CFS调度策略),违反了虚拟化的原则。因此,虚拟化管理器和客户操作系统必须采取必要的措施,在无更高优先级任务抢占时采取合理的配合机制,保留客户操作系统自身的调度策略。

【发明内容】

[0005]为了解决现有的调度方法无法满足不同类型任务的响应性能要求及全局实时虚拟化调度与客户操作系统自身调度不相协调的技术问题,本发明提供一种不破坏客户操作系统自有调度的虚拟化调度方法。
[0006]本发明的技术解决方案如下:
[0007]—种不破坏客户操作系统自有调度策略的虚拟化调度方法,其特殊之处在于:包括以下步骤:
[0008]1】在系统启动后,虚拟化管理器在初始化阶段创建多个分区,建立一个的全局的任务优先级调度队列,所述分区包括含有客户操作系统的操作系统分区和不含客户操作系统的裸应用分区;
[0009]所述裸应用分区内的所有任务按照各自的优先级直接加入任务优先级调度队列;
[0010]所述操作系统分区在初始化阶段创建一个优先级高于所处客户操作系统中其他任务的客户级定时器处理线程,客户级定时器处理线程的初始状态为等待接收调度权利转移消息的状态;[0011]2】在系统运行阶段,客户操作系统创建任务,并将其置于未激活状态,具体步骤如下:
[0012]2.1】在创建任务时按照任务响应性能的要求赋予优先级信息,对于具有相同响应性能要求的任务,赋予相同的优先级;
[0013]2.2】通过调用虚拟化管理器的系统服务,在虚拟化管理器中创建包含优先级信息的任务控制块,并将任务置于未激活状态;
[0014]3】进入一个时间中断触发的调度时机,虚拟化管理器接管时间中断,在时间中断预处理过程中开始执行任务调度的处理流程,具体步骤如下:
[0015]3.1】时间中断预处理程序在任务优先级调度队列中进行判断:
[0016]如果当前存在更高优先级的任务,则按照全局调度策略执行实时抢占,更高优先级的任务将获取处理器,调度结束;
[0017]如果不存在更高全局优先级的任务,则给当前客户操作系统的客户级定时器处理线程发送调度权利转移的消息,执行步骤3.2】
[0018]3.2】客户级定时器处理线程判断当前任务是否耗尽了时间片:
[0019]如果已经耗尽,则激活客户操作系统的调度器,依据客户操作系统的调度策略进行调度,将选取的新任务加入任务优先级调度队列、停掉被剥夺CPU的上一个任务;
[0020]如果未耗尽,将不作处理,当前任务继续执行;
[0021]3.3】等到下一个调度时机,回到步骤3.1】。
[0022]本发明的有益效果:
[0023]本发明涉及一种不破坏客户操作系统自有调度策略的虚拟化调度方法,通过对于具有相同响应性能要求的任务,赋予相同的优先级,调用虚拟化管理器的系统服务,在虚拟化管理器中创建包含优先级信息的任务控制块,将任务置于未激活状态等步骤,在确保实时性能和虚拟化原则的基础上使虚拟化管理器和客户操作系统的调度配合,避免了客户操作系统自有调度策略遭到破坏,使混合任务平台之上的全局统一调度成为可能,提高了整个系统的实时响应性能和调度效率。
【专利附图】

【附图说明】
[0024]图1为全局调度方法示意图;
[0025]图2为本发明不破坏客户操作系统自有调度的虚拟调度方法示意图。
【具体实施方式】
[0026]本发明针对航空电子系统综合化和遗产代码继承需求所产生的虚拟化多任务混合调度场景,能够在保证实时任务响应性能的同时,解决全局调度策略破坏客户操作系统自有调度策略的问题。
[0027]本发明应用的系统包括硬件、运行在硬件上的虚拟化管理器、及运行在虚拟化管理器提供的虚拟化硬件 执行环境中的多个客户操作系统,虚拟化管理器读取硬件设备的注册信息获取对所有硬件设备的控制;客户操作系统通过虚拟化管理器的虚拟化服务接口与虚拟化管理器连接。
[0028]本发明的基本原理是:首先,限制单个客户操作系统上应用级任务在任务优先级调度队列中同时出现,从而使全局调度策略无法影响到客户操作系统内部的任务调度;其次,在触发调度的时机,全局调度器优先调度,如果没有当前运行客户操作系统之外的更高优先级的任务就绪,则将调度控制权交给当前客户操作系统的客户级调度器,此时激活客户级调度策略。
[0029]如图2所示,解决这一问题的虚拟化调度方法是:
[0030]在系统启动后,虚拟化管理器在初始化阶段创建多个分区,建立并维护一个全局的任务优先级调度队列,分区的类型包括含有操作系统的客户操作系统分区和不含操作系统的裸应用分区;裸应用分区内的所有任务按照各自的优先级顺序直接加入任务优先级调度队列。
[0031]客户操作系统可以按照实时性要求分为实时操作系统和非实时操作系统,在任务优先级调度队列中,实时操作系统中任务的优先级一般高于非实时操作系统任务。
[0032]客户操作系统分区在初始化阶段创建一个优先级高于所处客户操作系统中其他任务的客户级定时器处理线程,客户级定时器处理线程,等待接收虚拟化管理器发送的调度权利转移的消息,一旦接收此消息将进行客户级调度处理。
[0033]在系统运行阶段,客户操作系统创建任务,并将其置于未激活状态,具体步骤如下:
[0034]在创建任务时按照任务响应性能的要求赋予优先级,对于具有相同响应性能要求的任务,赋予相同的优先级;通过调用虚拟化管理器的系统服务,在虚拟化管理器中创建包含优先级信息的任务控制块,并将任务置于未激活状态,使其不会马上加入任务优先级调度队列。
[0035]在时间触发的调度时机,虚拟化管理器接管时间中断,在时间中断预处理过程中开始执行任务调度的处理流程,具体步骤如下:
[0036]时间中断预处理程序在任务优先级调度队列中进行判断,如果当前存在更高优先级的任务,则按照全局调度策略执行实时抢占,更高优先级的任务将获取处理器。
[0037]如果不存在更高全局优先级的任务,则给当前客户操作系统的客户级定时器处理线程发送调度权利转移的消息,将调度权力转交给客户操作系统。
[0038]客户级定时器处理线程判断当前任务是否耗尽了时间片,如果已经耗尽,则激活客户操作系统的调度器,依据客户操作系统的调度策略进行调度,将选取的新任务加入任务优先级调度队列、停掉被剥夺CPU的上一个任务;如果未耗尽,将不作处理,当前任务继续执行。
[0039]等到下一个调度时机,回到调度步骤。
[0040]通过上述虚拟化调度方法,可以在确保实时性能和虚拟化原则的基础上,完成虚拟化管理器和客户操作系统的调度配合,避免客户操作系统自有调度策略遭到破坏。
【权利要求】
1.一种不破坏客户操作系统自有调度策略的虚拟化调度方法,其特征在于:包括以下步骤: .1】在系统启动后,虚拟化管理器在初始化阶段创建多个分区,建立一个的全局的任务优先级调度队列,所述分区包括含有客户操作系统的操作系统分区和不含客户操作系统的裸应用分区; 所述裸应用分区内的所有任务按照各自的优先级直接加入任务优先级调度队列; 所述操作系统分区在初始化阶段创建一个优先级高于所处客户操作系统中其他任务的客户级定时器处理线程,客户级定时器处理线程的初始状态为等待接收调度权利转移消息的状态; . 2】在系统运行阶段,客户操作系统创建任务,并将其置于未激活状态,具体步骤如下: .2.1】在创建任务时按照任务响应性能的要求赋予优先级信息,对于具有相同响应性能要求的任务,赋予相同的优先级; .2.2】通过调用虚拟化管理器的系统服务,在虚拟化管理器中创建包含优先级信息的任务控制块,并将任务置于未激活状态; .3】进入一个时间中断触发的调度时机,虚拟化管理器接管时间中断,在时间中断预处理过程中开始执行任务调度的处理流程,具体步骤如下: .3.1】时间中断预处理程序在任务优先级调度队列中进行判断: 如果当前存在更高优先级的任务,则按照全局调度策略执行实时抢占,更高优先级的任务将获取处理器,调度结束; 如果不存在更高全局优先级的任务,则给当前客户操作系统的客户级定时器处理线程发送调度权利转移的消息,执行步骤3.2】 .3.2】客户级定时器处理线程判断当前任务是否耗尽了时间片: 如果已经耗尽,则激活客户操作系统的调度器,依据客户操作系统的调度策略进行调度,将选取的新任务加入任务优先级调度队列、停掉被剥夺CPU的上一个任务; 如果未耗尽,将不作处理,当前任务继续执行; .3.3】等到下一个调度时机,回到步骤3.1】。
【文档编号】G06F9/48GK103902366SQ201210578885
【公开日】2014年7月2日 申请日期:2012年12月27日 优先权日:2012年12月27日
【发明者】周霆, 胡宁, 郝继锋, 张灯, 张勇, 杨琼, 何翔, 虞保忠, 尹超 申请人:中国航空工业集团公司第六三一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1