分区操作系统的综合化调度算法的制作方法

文档序号:6435261阅读:158来源:国知局
专利名称:分区操作系统的综合化调度算法的制作方法
分区操作系统的综合化调度算法
技术领域分区
本发明是一种针对分区操作系统的综合化调度算法。
背景描述
目前,不同类型的分区操作系统调度算法有差异又有共性,有必要研究其中的差 异和共性技术,降低研发和维护成本,并且需要保证调度的高可靠和实时性,因此这就需要 提供一种针对分区操作系统的综合化调度算法。发明内容
本发明包含具体的功能内容有
分区分类为核心分区和普通分区
任务分类为空闲任务和分区内任务
用四个就绪链表管理就绪优先级调度分区和核心分区与普通分区内就绪任务
采用8x32的位图管理就绪优先级调度分区和就绪任务0-255的优先级
高可靠实时多级调度具体实施方式
1.分区分类为核心分区和普通分区
分区是资源的管理者,分区分类为核心态运行的唯一核心分区和用户态运行的时 间调度表和优先级调度的普通分区。优先级调度分区的优先级为0-255。核心态分区主要 应用于监控和管理时间调度表和优先级调度分区。普通分区由于核心分区的监控,可靠性 得到提闻。
2.任务分类为空闲任务和分区内任务
系统中存在唯一的空闲任务,它不属于任何分区,运行在核心态。分区内任务是由 分区创建和启动,它是分区中的执行单元,优先级为0-255。仅在核心分区和普通分区内任 务不运行时,空闲任务才运行。
3.采用四个就绪链表管理就绪优先级调度分区和核心分区与普通分区内就绪任 务
系统使用一个就绪链表管理优先级为0-255的所有就绪优先级调度分区。核心分 区、时间调度表分区和优先级分区分别使用一个就绪链表来管理本分区内优先级为0-255 的所有就绪任务。一个就绪链表由256条就绪链组成,每条就绪链管理一个优先级的就绪 分区或者任务。空闲任务不在任何就绪链上。
4.采用8x32的位图管理就绪优先级调度分区和就绪任务0_255的优先级
8x32的位图管理中,优先级调度分区或者分区内任务优先级为0-255,优先级右 移5位后的值0-7作为优先级主索引号,优先级低有效5位的值0-31作为优先级次索引号, 使用8位图作为优先级主索引号位图,使用8组32位图作为优先级8个主索引号对应的次 索引号位图,优先级次索引号位图为第主索引号组对应的32位图,位图中对应位的索引号为优先级的主索引号或者次索引号。
优先级调度分区或者任务变为就绪态时,在优先级主索引号位图中将优先级主索 引号对应的位置位,在优先级次索引号位图中将优先级次索引号对应的位置位,并且将就 绪分区或者任务加到对应优先级就绪链上。
就绪优先级调度分区或者就绪任务变为非就绪态时,将非就绪分区或者任务从对 应优先级就绪链上摘除。如果非就绪分区或者任务对应优先级就绪链上没有分区或者任 务,则在优先级次索引号位图中将优先级次索引号对应的位清除。如果优先级次索引号位 图中的每位值都为0,则在优先级主索引号位图中将优先级主索引号对应的位清除。
在获取优先级调度分区的最高优先级就绪分区或者分区内最高优先级就绪任务 时,如果优先级主索引号位图中的每位值都为0,则所有优先级调度分区或者任务所属分区 放弃调度。否则,在优先级主索引号位图中获取位值为I的最低位索引号作为最高优先级 主索引号,在最高优先级次索引号位图中获取位值为I的最低位索引号作为最高优先级次 索引号,最高优先级为最高优先级主索引号左移5位后的值加上最高优先级次索引号。最 高优先级分区就绪链上的第一个分区是参与优先级分区调度的最高优先级就绪分区,最高 优先级任务就绪链上的第一个任务是参与分区内任务调度的最高优先级就绪任务。在获取 就绪分区和任务的最高优先级时,无论最高优先级是多少,获取的时间都是一样的,而且获 取最高优先级的算法是高可靠和快速的。
5.高可靠实时多级调度
分区调度支持时间调度表、优先级和时间片三种调度方式。系统中允许有多个时 间调度表,可以在运行时更换时间调度表,但任何时刻至多有一个时间调度表参与调度。时 间调度表调度分区必须在时间调度表中配置时间窗口,并且当系统使用了该时间调度表进 行调度时才能参与调度。时间调度表调度在非空闲时间窗口时是时间窗口分区与核心分区 在运行。优先级调度分区只能够在时间调度表调度的空闲时间窗口和时间窗口分区的空闲 时间运行,优先级相同的分区支持时间片调度。
任务调度时,任务存在是否被抢占的属性,当任务不允许抢占时,只有当任务主动 放弃处理器,其它任务才能被调度获取处理器;当任务允许抢占时,分区内同优先级任务按 照时间片轮转方式调度。高优先级任务需要通过指定高优先级来保证其被优先执行。
在调度时,系统从如下三个就绪链表中选择被调度任务当前正在进行时间调度 表调度的时间窗口分区就绪链表(如果是空闲时间窗口或者时间窗口分区不是正常态的, 此链表上任务不参与调度),核心分区就绪链表(如果核心分区不是正常态的,此链表上任 务不参与调度),优先级调度分区中最高优先级分区就绪链表(如果最高优先级调度分区 不是正常态的,此链表上任务不参与调度)。如果三个就绪链表上任务都不参与调度或者就 绪链表上没有任务,则运行空闲任务。系统首先判断当前时间窗口是否是空闲窗口,时间窗 口调度分区是否正常态,分区中是否存在就绪任务
当前时间窗口是空闲窗口或者时间窗口调度分区不是正常态或者正常态的时间 窗口分区中不存在就绪任务将核心分区的最高优先级就绪任务与优先级调度分区的最高 优先级就绪任务进行优先级比较,两者中取高优先级任务运行,优先级相同运行核心分区 的最高优先级就绪任务;
当前时间窗口存在分区并且分区是正常态和分区中存在就绪任务将核心分区的最高优先级就绪任务与时间调度表调度分区的最高优先级就绪任务进行优先级比较,两者 中取高优先级任务运行,优先级相同运行时间调度表调度分区的最高优先级就绪任务。


说明书附图中图1是优先级为42的就绪任务在位图中的位设置示例;图2是时 间调度表调度分区在时间调度表上的时间窗口 ;图3是运行分区和运行任务的选择过程。
权利要求
1. 一种针对分区操作系统的综合化调度算法,完成一次功能完整的调度过程含以下几 ①时间调度表调度在非空闲时间窗口时是时间窗口分区与核心分区在运行。
②优先级调度分区只能够在时间调度表调度的空闲时间窗口和时间窗口分区的空闲时间运行。
采用8x32的位图管理就绪优先级调度分区和就绪任务0-255的优先级,能快速可靠的选择优先级调度分区中的最高优先级就绪分区和分区内的最高优先级就绪任务。
③核心分区内最高优先级就绪任务与时间调度表调度分区内最高优先级就绪任务以及优先级调度分区内最高优先级就绪任务通过比较优先级的方式来确定最终运行的任务。
④在调度时,系统从如下三个就绪链表中选择被调度任务当前正在进行时间调度表调度的时间窗口分区就绪链表(如果是空闲时间窗口或者时间窗口分区不是正常态的,此链表上任务不参与调度),核心分区就绪链表(如果核心分区不是正常态的,此链表上任务不参与调度),优先级调度分区中最高优先级分区就绪链表(如果最高优先级调度分区不是正常态的,此链表上任务不参与调度)。如果三个就绪链表上任务都不参与调度或者就绪链表上没有任务,则运行空闲任务。系统首先判断当前时间窗口是否是空闲窗口,时间窗口调度分区是否正常态,分区中是否存在就绪任务 ⑤当前时间窗口是空闲窗口或者时间窗口调度分区不是正常态或者正常态的时间窗口分区中不存在就绪任务将核心分区的最高优先级就绪任务与优先级调度分区的最高优先级就绪任务进行优先级比较,两者中取高优先级任务运行,优先级相同运行核心分区的最闻优先级就绪任务; ⑥当前时间窗口存在分区并且分区是正常态和分区中存在就绪任务将核心分区的最高优先级就绪任务与时间调度表调度分区的最高优先级就绪任务进行优先级比较,两者中取高优先级任务运行,优先级相同运行时间调度表调度分区的最高优先级就绪任务。
全文摘要
本发明是一种针对分区操作系统的综合化调度算法,该方法将分区分类为核心分区和普通分区,对普通分区进行时间调度表、优先级和时间片调度,对分区内任务进行优先级和时间片调度,采用8x32的位图管理就绪优先级调度分区和就绪任务0-255的优先级,能快速可靠的选择优先级调度分区中的最高优先级就绪分区和分区内的最高优先级就绪任务,对比核心分区和普通分区中的任务,选择优先级高的任务进行运行,从而为分区操作系统提供高可靠、实时运行的调度机制。
文档编号G06F9/46GK103049311SQ20111030596
公开日2013年4月17日 申请日期2011年10月11日 优先权日2011年10月11日
发明者李燕, 尹立孟, 戴凯 申请人:北京科银京成技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1