[发明专利]一种分区系统调度算法在审
申请号: | 201710749941.9 | 申请日: | 2017-08-28 |
公开(公告)号: | CN107544843A | 公开(公告)日: | 2018-01-05 |
发明(设计)人: | 韩辉;徐贵洲;王东方 | 申请(专利权)人: | 北京翼辉信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 北京东方汇众知识产权代理事务所(普通合伙)11296 | 代理人: | 张淑贤 |
地址: | 100080 北京市海淀区信*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分区 系统 调度 算法 | ||
技术领域
本发明涉及一种分区调度方法,尤其涉及一种分区系统调度算法,属于计算机技术领域。
背景技术
在一个多任务计算机系统中,不同任务能够通过线程来处理。对多个线程的CPU资源的分配程序,被称为“调度器”,它决定哪一个线程获得CPU,并且在何时获得。
在一个多任务计算机系统中,一个线程假设有三种状态:
运行:线程需要CPU的执行,并正在运行,可以称为该线程获得了CPU;
就绪:线程准备好执行,但是当前没有运行,需要被分配一个CPU给它开始执行;
阻塞:线程没有准备好执行,在等待一个外部事件。
从一个调度器角度来看,有多个就绪线程需要获得CPU资源,在这里假设需要获得CPU的线程数通大于可用的CPU数,也就是说调度器需要从多个线程中选取一个,让其获得CPU。
现有技术中有多种调度算法:
第一种是优先级调度算法,每一个线程被赋予一个优先级,高优先级的线程相对于低优先级的具有获得CPU的优先权。不允许出现相同优先级的线程出现或者将具有相同优先级的就绪线程按顺序放在一个队列中;线程优先级可以是固定的也可以是动态决定的且能够在运行过程中改变。
这种优先级调度算法不能够保证每个线程都有可能获取到CPU:具有高优先级的线程可以无限占用CPU,在极端情况下,低优先级的线程可能永远无法得到运行。
第二种是时间片轮循算法,每个线程的运行时间是有限制的,一旦分配个一个线程的固定时间段被用完后,该线程将被打断。然后将该线程放入就绪队列的末尾;运行时间段可以是一个固定值也可以是线程相关的变量。这种方法需要一个外部定时器,按照特定的时间产生中断通知操作系统,以便监控线程运行时间,并在适当的时候启动调度器。
这种时间片算法能够保证每个线程都能够获得CPU,但是不能保证对外部时间的快速响应:在最坏情况下,一个线程由于中断而变为就绪状态,必须等待所有其他线程的时间片耗完之后,才能开始执行。
因此,研制一种结合了优先级调度算法和时间片轮循调度算法优点,保证每个线程都能有机会获得CPU资源的算法是非常必要的,而且该算法也有重要的应用前景。
发明内容
本发明目的是提供一种分区系统调度算法,结合了优先级调度算法和时间片轮循调度算法优点,保证每个线程都能有机会获得CPU资源。
本发明解决技术问题采用如下技术方案:一种分区系统调度算法,其特征在于,包括以下步骤:
S1、创建若干个时间分区,其中的第一个所述时间分区为背景分区,所述背景分区中的包含的线程可以在任何时候获取到CPU资源;
S2、开启一级调度器和二级调度器,所述一级调度器为所述背景分区之外的每一个所述时间分区分配一个CPU时间片,并且在所属的CPU时间片内激活一个所述时间分区,被激活的所述时间分区为前景分区;
S3、系统中不同的线程被分配给多个所述时间分区;
S4、所述二级调度器在所述背景分区和所述前景分区之中选择一个优先级最高的线程分配CPU资源。
前述的分区系统调度算法,其特征在于,所述步骤S2中的所述一级调度器是所述背景分区的一个高优先级的无限循环的线程。
前述的分区系统调度算法,其特征在于,所述步骤S2中的所述前景分区没有可运行的线程时,所述背景分区中的低优先级线程将获得CPU。
前述的分区系统调度算法,其特征在于,所述步骤S2中的所述前景分区有且只有一个。
前述的分区系统调度算法,其特征在于,所述步骤S2中的所述二级调度器在线程注册或线程放弃CPU时被调用。
本发明结合了优先级调度算法和时间片轮循调度算法的优点,具有如下有益效果:
(1)相比于时间片轮循调度方法,本发明可以保证外部事件的响应时间在一定的范围内,由于背景分区的存在,背景分区中创建的高优先级线程可以在任意时刻被执行,因此能够保证对外部事件的实时响应;
(2)相比于优先级调度方法,本发明能够保证每个线程都能有机会获得CPU资源,由于时间分区之间采用时间片轮循调度算法,一级调度器确保每个分区都能够被调度;并且一个时间分区内高优先级线程不能够抢占其他时间分区内的低优先级线程的CPU运行时间。
附图说明
图1为本发明的一种分区系统调度算法的一个具体实施例的一级调度器的工作流程图;
图2为本发明的一种分区系统调度算法的一个具体实施例的二级调度器的工作流程图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京翼辉信息技术有限公司,未经北京翼辉信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710749941.9/2.html,转载请声明来源钻瓜专利网。