CN107544843A - 一种分区系统调度算法 - Google Patents
一种分区系统调度算法 Download PDFInfo
- Publication number
- CN107544843A CN107544843A CN201710749941.9A CN201710749941A CN107544843A CN 107544843 A CN107544843 A CN 107544843A CN 201710749941 A CN201710749941 A CN 201710749941A CN 107544843 A CN107544843 A CN 107544843A
- Authority
- CN
- China
- Prior art keywords
- subregion
- time
- thread
- cpu
- level
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种分区系统调度算法,包括以下步骤:S1、创建若干个时间分区,其中的一个为背景分区,背景分区中的包含的线程可以在任何时候获取到CPU资源;S2、开启一级调度器和二级调度器,一级调度器为背景分区之外的每一个时间分区分配一个CPU时间片,并且在所属的CPU时间片内激活一个时间分区,被激活的时间分区为前景分区;S3、系统中不同的线程被分配给多个时间分区;S4、二级调度器在背景分区和前景分区之中选择一个优先级最高的线程分配CPU资源。本发明结合了优先级调度算法和时间片轮循调度算法的优点,相比于时间片轮循调度方法,保证了外部事件的响应时间在一定的范围内;相比于优先级调度方法,保证每个线程都能有机会获得CPU资源。
Description
技术领域
本发明涉及一种分区调度方法,尤其涉及一种分区系统调度算法,属于计算机技术领域。
背景技术
在一个多任务计算机系统中,不同任务能够通过线程来处理。对多个线程的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为本发明的一种分区系统调度算法的一个具体实施例的二级调度器的工作流程图。
具体实施方式
下面结合实施例及附图对本发明的技术方案作进一步阐述。
实施例1
参考图1和图2,本实施例提供了一种分区系统调度算法,包括以下步骤:
S1、创建若干个时间分区,其中的第一个时间分区为背景分区,背景分区中的包含的线程可以在任何时候获取到CPU资源;
S2、开启一级调度器和二级调度器,一级调度器为背景分区之外的每一个时间分区分配一个CPU时间片,并且在所属的CPU时间片内激活一个时间分区,被激活的时间分区为前景分区;参考图1中的一级调度器,假设时间分区按照预先定义好的时间片被周期性的激活,一级调度器被实现为背景分区中的一个高优先级的无限循环线程,该线程依次读取分区链表中的元素,首先激活被选中的时间分区,当时间片用完后,阻塞本时间分区;然后检查本分区是否是链表中的最后一个元素,如果是最后一个元素,则回到链表开头,如果不是,则选择下一个时间分区。
S3、系统中不同的线程被分配给多个时间分区1;
S4、二级调度器3在背景分区11和前景分区12之中选择一个优先级最高的线程分配CPU资源。参考图2中的二级调度器,二级调度器在线程状态从运行变为阻塞,或者由阻塞变为就绪(比如线程等待的外部事件发生了)时被调用;在第一种情况下,需要从线程所属的时间分区的就绪链表移除刚刚变为阻塞状态的线程;在第二种情况下,就绪链表不需要改变。接下来需要判断所有前景分区中线程的最高优先级是否大于背景分区中的最高优先级,如果是,则从前景分区中选择最高优先级的线程,如果否,则从背景分区中选择最高优先级的线程,接下来激活被选中的线程即分配CPU资源;当前景分区中线程的最高优先级等于背景分区中的最高优先级时,可以根据需要优先选择背景分区的中的线程或前景分区中的线程。
作为一种优选的方案,步骤S2中的一级调度器是背景分区的一个高优先级的无限循环的线程。
作为一种优选的方案,步骤S2中的前景分区没有可运行的线程时,背景分区中的低优先级线程将获得CPU。
作为一种优选的方案,步骤S2中的前景分区有且只有一个。
作为一种优选的方案,步骤S2中的二级调度器在线程注册或线程放弃CPU时被调用。
需要说明的是,以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种分区系统调度算法,其特征在于,包括以下步骤:
S1、创建若干个时间分区,其中的第一个所述时间分区为背景分区,所述背景分区中的包含的线程可以在任何时候获取到CPU资源;
S2、开启一级调度器和二级调度器,所述一级调度器为所述背景分区之外的每一个所述时间分区分配一个CPU时间片,并且在所属的CPU时间片内激活一个所述时间分区,被激活的所述时间分区为前景分区;
S3、系统中不同的线程被分配给多个所述时间分区;
S4、所述二级调度器在所述背景分区和所述前景分区之中选择一个优先级最高的线程分配CPU资源。
2.根据权利要求1所述的一种分区系统调度算法,其特征在于,所述步骤S2中的所述一级调度器是所述背景分区的一个高优先级的无限循环的线程。
3.根据权利要求1所述的一种分区系统调度算法,其特征在于,所述步骤S2中的所述前景分区没有可运行的线程时,所述背景分区中的低优先级线程将获得CPU。
4.根据权利要求1所述的一种分区系统调度算法,其特征在于,所述步骤S2中的所述前景分区有且只有一个。
5.根据权利要求1所述的一种分区系统调度算法,其特征在于,所述步骤S2中的所述二级调度器在线程注册或线程放弃CPU时被调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710749941.9A CN107544843A (zh) | 2017-08-28 | 2017-08-28 | 一种分区系统调度算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710749941.9A CN107544843A (zh) | 2017-08-28 | 2017-08-28 | 一种分区系统调度算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107544843A true CN107544843A (zh) | 2018-01-05 |
Family
ID=60957512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710749941.9A Pending CN107544843A (zh) | 2017-08-28 | 2017-08-28 | 一种分区系统调度算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107544843A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502348A (zh) * | 2019-07-23 | 2019-11-26 | 中国航空无线电电子研究所 | 基于服务的gpu指令提交服务器 |
CN111796921A (zh) * | 2020-06-30 | 2020-10-20 | 西安微电子技术研究所 | 嵌入式多核操作系统调度方法、调度装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049311A (zh) * | 2011-10-11 | 2013-04-17 | 北京科银京成技术有限公司 | 分区操作系统的综合化调度算法 |
CN104503838A (zh) * | 2014-11-23 | 2015-04-08 | 华中科技大学 | 一种虚拟cpu调度方法 |
US9092264B2 (en) * | 2010-08-16 | 2015-07-28 | iHeartMedia Management Service, Inc. | Method and system for controlling a scheduling order per category in a music scheduling system |
CN105045666A (zh) * | 2015-07-09 | 2015-11-11 | 西北工业大学 | Windows操作系统环境下的分区调度方法 |
-
2017
- 2017-08-28 CN CN201710749941.9A patent/CN107544843A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9092264B2 (en) * | 2010-08-16 | 2015-07-28 | iHeartMedia Management Service, Inc. | Method and system for controlling a scheduling order per category in a music scheduling system |
CN103049311A (zh) * | 2011-10-11 | 2013-04-17 | 北京科银京成技术有限公司 | 分区操作系统的综合化调度算法 |
CN104503838A (zh) * | 2014-11-23 | 2015-04-08 | 华中科技大学 | 一种虚拟cpu调度方法 |
CN105045666A (zh) * | 2015-07-09 | 2015-11-11 | 西北工业大学 | Windows操作系统环境下的分区调度方法 |
Non-Patent Citations (2)
Title |
---|
倪永军等: "《Java语言程序设计》", 30 September 2008, 武汉大学出版社 * |
青岛东合信息技术有限公司编著: "《TinyOS操作系统开发技术及实践》", 31 January 2014, 西安电子科技大学出版社 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502348A (zh) * | 2019-07-23 | 2019-11-26 | 中国航空无线电电子研究所 | 基于服务的gpu指令提交服务器 |
CN110502348B (zh) * | 2019-07-23 | 2023-10-27 | 中国航空无线电电子研究所 | 基于服务的gpu指令提交服务器 |
CN111796921A (zh) * | 2020-06-30 | 2020-10-20 | 西安微电子技术研究所 | 嵌入式多核操作系统调度方法、调度装置、电子设备及存储介质 |
CN111796921B (zh) * | 2020-06-30 | 2023-05-30 | 西安微电子技术研究所 | 嵌入式多核操作系统调度方法、调度装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bertogna et al. | Limited preemption EDF scheduling of sporadic task systems | |
JP5770721B2 (ja) | 情報処理システム | |
US8695004B2 (en) | Method for distributing computing time in a computer system | |
Panda et al. | An effective round robin algorithm using min-max dispersion measure | |
US8875146B2 (en) | Systems and methods for bounding processing times on multiple processing units | |
KR20180053359A (ko) | 다중-버전형 태스크들의 효율적 스케줄링 | |
EP3353654A1 (en) | Proactive resource management for parallel work-stealing processing systems | |
US10467054B2 (en) | Resource management method and system, and computer storage medium | |
CN110100235B (zh) | 异类事件队列 | |
CN108536530B (zh) | 一种多线程任务调度方法及装置 | |
JP2014211743A (ja) | マルチコアプロセッサ | |
WO2010135926A1 (zh) | 基于链表的队列调度方法与装置 | |
CN107544843A (zh) | 一种分区系统调度算法 | |
Li et al. | A group priority earliest deadline first scheduling algorithm | |
Nasri et al. | Non-work-conserving scheduling of non-preemptive hard real-time tasks based on fixed priorities | |
US20130014119A1 (en) | Resource Allocation Prioritization Based on Knowledge of User Intent and Process Independence | |
CN109240815B (zh) | 一种共享堆栈的多任务运行方法、装置及设备 | |
CN115695330B (zh) | 嵌入式系统中微程的调度系统、方法、终端及存储介质 | |
CN116302420A (zh) | 并发调度方法、装置、计算机设备及计算机可读存储介质 | |
JP2012093832A (ja) | 情報処理装置 | |
Nosrati et al. | Task scheduling algorithms introduction | |
CN106325983A (zh) | 一种内存占用小、支持并发的微程模型及调度方法 | |
CN112395054A (zh) | 一种线程调度方法、装置及系统 | |
Seemakuthi et al. | A Review on Various Scheduling Algorithms | |
Tyagi et al. | Enhanced priority scheduling algorithm to minimize process starvation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180105 |
|
RJ01 | Rejection of invention patent application after publication |