CN110347485A - 基于固定优先级的多核抢占式的多级融合实时调度方法 - Google Patents
基于固定优先级的多核抢占式的多级融合实时调度方法 Download PDFInfo
- Publication number
- CN110347485A CN110347485A CN201910586624.9A CN201910586624A CN110347485A CN 110347485 A CN110347485 A CN 110347485A CN 201910586624 A CN201910586624 A CN 201910586624A CN 110347485 A CN110347485 A CN 110347485A
- Authority
- CN
- China
- Prior art keywords
- vcpu
- priority
- queue
- subqueue
- ready queue
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开一种基于固定优先级的多核抢占式的多级融合实时调度方法,针对基于MILS架构的多级安全操作***上运行了各种各样的分区操作***时,实时分区需要保证其强实时性的问题,本发明多个物理CPU共享同一个就绪队列,就绪队列所采用的优先级即为分配给每个VCPU的固定优先级,固定优先级的可取值范围为0到N‑1,根据优先级的可取值范围,就绪队列划分为N个子队列,每个子队列代表一个优先级,就绪队列按照子队列优先级数值的大小从小到大进行排列,即数值越小,表示其优先级越高,则越靠近就绪队列的队首;每个子队列中的所有VCPU的固定优先级相等,按照其到达就绪队列的时间进行排序,保证了强实时分区内的实时任务都能按时完成。
Description
技术领域
本发明属于安全操作***领域,特别涉及一种MILS架构的多级安全操作***的任务调度技术。
背景技术
操作***是管理和控制计算机硬件和软件资源的计算机程序,是运行其他应用软件的基础软件,操作***自身的防危性对用户的信息安全起着至关重要的作用。以“WannaCry”病毒为例,其核心问题即本地计算机执行了外来的木马程序,因此,从操作***的角度来说,如果操作***自身具备强制访问控制功能,即可有效地防止外来程序的运行,其次,“WannaCry”病毒可以通过文件共享网络端口在校园网中迅速传播,这表明***之间的通信路径并不安全,通过操作***的可信通信路径机制即可有效防止类似安全威胁。由此可见,对安全操作***的研究迫在眉睫,多个独立安全等级(Multiple IndependentLevels of Security and Safety,MILS)架构是由美国Idaho大学的Jim教授等人所提出的一种基于安全分离型内核的多级安全架构,该架构以分离的思想为基础,在同一个硬件平台上构建多个分离的不同安全等级的分区,分区之间的数据完全隔离,每个分区只能在自己的地址空间中运行,并且分区之间的通信由分离内核进行统一控制,该架构目前已经被当做构建高可信操作***的有效手段,且已被美国以及英国等多个国家的军用***所采用。
为了提高“客户”操作***的设备响应速度,研究MILS架构下的多级安全操作***的调度算法具有重大意义。
发明内容
为解决上述技术问题,本发明提出一种基于固定优先级的多核抢占式的多级融合实时调度方法,保证强实时分区内的实时任务都能按时完成。
本发明采用的技术方案为:基于固定优先级的多核抢占式的多级融合实时调度方法,包括:
S1、一级调度:可信分离内核基于固定优先级的多核抢占式的调度算法对“客户”操作***的VCPU调度;
S2、二级调度:“客户”操作***对自身任务的调度。
所述基于固定优先级的多核抢占式的调度算法,具体为:多个物理CPU共享同一个就绪队列,就绪队列所采用的优先级即为分配给每个VCPU的固定优先级,固定优先级的可取值范围为0到N-1,根据优先级的可取值范围,就绪队列划分为N个子队列,每个子队列代表一个优先级,就绪队列按照子队列优先级数值的大小从小到大进行排列,即数值越小,表示其优先级越高,则越靠近就绪队列的队首;每个子队列中的所有VCPU的固定优先级相等,按照其到达就绪队列的时间进行排序。
所述基于固定优先级的多核抢占式的调度算法实现过程包括以下分步骤:
A1、首先判断调度的时机,即判断当前是否应该切换VCPU,如果不切换,则返回当前VCPU继续运行,否则,按照优先级从高到低的顺序依次遍历就绪队列的N个子队列,找到第一个非空的就绪子队列,并取得子队列的队首VCPU;
A2、比较步骤A1中获得的VCPU的优先级和当前正在运行的VCPU的优先级,如果当前VCPU的优先级较高,则返回当前VCPU并继续运行,否则,从就绪队列中删除步骤A1中获得的VCPU,并返回该VCPU并运行;
A3、如果此时该物理CPU上没有VCPU需要运行,则运行idle_vcpu,进入休眠;其中,idle_vcpu是一个特殊的VCPU,当PCPU没有其他可运行的VCPU时,则运行idle_vcpu。
还包括:中断队列,中断队列中的所有VCPU的中断注入标识都大于0,当其处理完所有的中断请求后,则将其从中断队列中删除,然后***就绪队列。
每个VCPU分配一个中断注入标识,中断注入标识记录了该VCPU还未处理的中断请求的数量,每次为VCPU注入中断时,则将其中断注入标识加一,而中断请求处理完成后,再将其中断注入标识减一。
本发明的有益效果:本发明采用基于固定优先级的多核抢占式的调度算法的一级调度算法,注重单个分区的强实时需求,可以保证强实时分区内的实时任务都能按时完成;在此基础上,本发明还提出了基于设备请求的动态调度算法,提高设备的响应速度,以满足设备响应的时限需求。
附图说明
图1为本发明实施例提供的基于MILS架构的综合实时两级调度机制的整体框架;
图2为本发明实施例提供的单个PCPU的就绪队列;
图3为本发明实施例提供的基于固定优先级的多核抢占式的调度算法流程图;
图4为本发明实施例提供的中断队列和就绪队列。
具体实施方式
为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。
在基于MILS架构的多级安全操作***中,可以在分区内运行多种异构操作***,比如Windows、Linux、uC/OS、VxWorks等,这些分区内运行的“客户”操作***都有各自的任务调度器,因此,这些分区内部的任务调度器和可信分离内核的VCPU(Virtual CentralProcessing Unit)调度器共同构成了MILS的两级调度。基于MILS架构的综合实时两级调度机制的整体框架如图1所示,其中参与两级调度的主体主要包括:“客户”操作***中运行的任务Task、“客户”操作***的任务调度器、以及分配给分区内的“客户”操作***的VCPU和可信分离内核的VCPU调度器。
如图1所示,从下往上,分区内的任务要获得物理CPU资源从而运行需要经过如下的两级调度过程:
1)一级调度:可信分离内核基于最早截止时间优先的调度算法对“客户”操作***的VCPU调度,其调度的基本单位是VCPU,竞争的资源是硬件平台的所有PCPU(PhysicalCentral Processing Unit);
2)二级调度:“客户”操作***对自身任务的调度,其调度的基本单位是任务,竞争的资源则是分配给这个分区的所有VCPU。
针对各个分区内的二级调度器,由于运行的“客户”操作***的不同,其采取的调度算法也各不相同,比如Linux***的O(1)调度算法和CFS(Completely Fair Schedule)算法、实时操作***的RM(Rate Monotonic)调度算法和EDF(Earliest Deadline First)调度算法等,这些调度算法的使用取决于内部***的不同应用需求,与MILS架构本身的关系并不紧密,因此,在本发明的多级融合实时调度机制中,主要从可信分离内核的一级调度的角度去考虑。
在MILS架构的可信分离内核中,一级调度器的目的是,根据某种调度算法,从VCPU就绪队列中挑选出最合适的一个VCPU,使其占有PCPU资源。这儿的调度算法,根据不同的应用需求将有所不同,如图1所示,本发明中的综合实时两级调度机制主要提供了:基于固定优先级的多核抢占式的调度算法,注重单个分区的强实时需求,可以保证强实时分区内的实时任务都能按时完成。
当基于MILS架构的多级安全操作***上运行了各种各样的分区操作***时,比如Linux、windows、VxWorks等,在这种情况下,运行VxWorks等实时操作***的实时分区需要保证其强实时性,基于固定优先级的多核抢占式的调度算法中,多个物理CPU共享同一个就绪队列,就绪队列所采用的优先级即为分配给每个VCPU的固定优先级,固定优先级的可取值范围为0到N-1,就绪队列的示意图如图2所示。根据优先级的可取值范围,就绪队列划分为N个子队列,每个子队列代表一个优先级,就绪队列按照子队列优先级数值的大小从小到大进行排列,即数值越小,表示其优先级越高,则越靠近就绪队列的队首,每个子队列中的所有VCPU的固定优先级相等,他们按照其到达就绪队列的时间进行排序,从而保证先来先服务。
如图3所示,本发明的基于固定优先级的多核可抢占式调度算法在每次触发调度时的执行流程如下:
1)首先判断调度的时机,即判断当前是否应该切换VCPU,如果不切换,则返回当前VCPU继续运行,否则,按照优先级从高到低的顺序依次遍历就绪队列的N个子队列,找到第一个非空的就绪子队列,并取得子队列的队首VCPU;
2)比较1)中获得的VCPU的优先级和当前正在运行的VCPU的优先级,如果当前VCPU的优先级较高,则返回当前VCPU并继续运行,否则,从就绪队列中删除1)中获得VCPU,并返回该VCPU并运行;
3)如果此时该PCPU上没有VCPU需要运行,则运行idle_vcpu,进入休眠。
在基于MILS架构的多级安全操作***上,可信分离内核中没有设备驱动,因此,当外部设备产生物理中断时,可信分离内核捕捉到该中断请求后则直接采用中断注入的方式将中断请求注入给对应分区的VCPU,如果调度器采用前面的三种调度算法,如果该VCPU正在运行,则可以直接进行中断响应,但是,如果该VCPU没有运行,则必须等到该VCPU下次被调度时才能进行中断响应,这严重影响了设备的响应速度。因此,本发明在基于时间片轮转的调度算法的基础上,提供了一种能够满足设备请求响应时间要求的辅助算法,即基于设备请求的动态调度算法。
基于设备请求的动态调度算法的主要思想为:在基于时间片轮转的调度算法的基础上,优先调度有设备请求的“客户”操作***的VCPU,如果同一时刻有多个“客户”操作***都需要处理设备请求,则这些“客户”操作***的VCPU按照原调度算法进行调度,从而保证分区设备响应的实时性。
为了优先调度有设备请求的VCPU,基于设备请求的动态调度算法为每个VCPU分配了一个中断注入标识,中断注入标识记录了该VCPU还未处理的中断请求的数量,每次为VCPU注入中断时,则将其中断注入标识加一,而中断请求处理完成后,再将其中断注入标识减一。根据这个标识,在其他调度算法的就绪队列的基础上,额外增加一个中断队列,中断队列中的所有VCPU的中断注入标识都大于0,当其处理完所有的中断请求后,则将其从中断队列中删除,然后***就绪队列。
如图4所示,中断队列中的所有VCPU的中断注入标识irq_flag都大于0,而就绪队列中的所有VCPU的irq_flag都等于0,中断队列和就绪队列所采用的优先级一样,都为原调度算法的优先级。当中断队列中的某个VCPU的中断请求都被处理完时,则将其***到就绪队列,而当就绪队列中的某个VCPU被注入中断请求时,则将其从就绪队列中删除,然后***中断队列。
通常情况下,当PCPU触发调度时,优先从中断队列中挑选VCPU,然后再考虑就绪队列中的VCPU,但是,当***中运行了实时分区时,尽管非实时分区的VCPU处于中断队列,但是其优先级仍然低于处于就绪队列中的实时分区的VCPU,因此,总的来说,当PCPU进行调度时,处于中断队列且属于实时/非实时分区的VCPU的优先级,高于处于就绪队列且属于实时/非实时分区的VCPU,而无论VCPU处于哪个队列,实时分区的VCPU的优先级无条件高于非实时分区的VCPU。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (5)
1.基于固定优先级的多核抢占式的多级融合实时调度方法,其特征在于,包括:
S1、一级调度:可信分离内核基于固定优先级的多核抢占式的调度算法对“客户”操作***的VCPU调度;
S2、二级调度:“客户”操作***对自身任务的调度。
2.根据权利要求1所述的基于固定优先级的多核抢占式的多级融合实时调度方法,其特征在于,所述基于固定优先级的多核抢占式的调度算法,具体为:多个物理CPU共享同一个就绪队列,就绪队列所采用的优先级即为分配给每个VCPU的固定优先级,固定优先级的可取值范围为0到N-1,根据优先级的可取值范围,就绪队列划分为N个子队列,每个子队列代表一个优先级,就绪队列按照子队列优先级数值的大小从小到大进行排列,即数值越小,表示其优先级越高,则越靠近就绪队列的队首;每个子队列中的所有VCPU的固定优先级相等,按照其到达就绪队列的时间进行排序。
3.根据权利要求2所述的基于固定优先级的多核抢占式的多级融合实时调度方法,其特征在于,所述基于固定优先级的多核抢占式的调度算法实现过程包括以下分步骤:
A1、首先判断调度的时机,即判断当前是否应该切换VCPU,如果不切换,则返回当前VCPU继续运行,否则,按照优先级从高到低的顺序依次遍历就绪队列的N个子队列,找到第一个非空的就绪子队列,并取得子队列的队首VCPU;
A2、比较步骤A1中获得的VCPU的优先级和当前正在运行的VCPU的优先级,如果当前VCPU的优先级较高,则返回当前VCPU并继续运行,否则,从就绪队列中删除步骤A1中获得的VCPU,并返回该VCPU并运行;
A3、如果此时该物理CPU上没有VCPU需要运行,则运行idle_vcpu,进入休眠;其中,idle_vcpu是一个特殊的VCPU,当PCPU没有其他可运行的VCPU时,则运行idle_vcpu。
4.根据权利要求3所述的基于时间片轮转的多级融合实时调度方法,其特征在于,还包括:中断队列,中断队列中的所有VCPU的中断注入标识都大于0,当其处理完所有的中断请求后,则将其从中断队列中删除,然后***就绪队列。
5.根据权利要求4所述的基于时间片轮转的多级融合实时调度方法,其特征在于,每个VCPU分配一个中断注入标识,中断注入标识记录了该VCPU还未处理的中断请求的数量,每次为VCPU注入中断时,则将其中断注入标识加一,而中断请求处理完成后,再将其中断注入标识减一。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910586624.9A CN110347485A (zh) | 2019-07-01 | 2019-07-01 | 基于固定优先级的多核抢占式的多级融合实时调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910586624.9A CN110347485A (zh) | 2019-07-01 | 2019-07-01 | 基于固定优先级的多核抢占式的多级融合实时调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110347485A true CN110347485A (zh) | 2019-10-18 |
Family
ID=68177518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910586624.9A Pending CN110347485A (zh) | 2019-07-01 | 2019-07-01 | 基于固定优先级的多核抢占式的多级融合实时调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347485A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414626A (zh) * | 2020-04-01 | 2020-07-14 | 中国人民解放军国防科技大学 | 基于tee扩展的实时性保证方法及*** |
CN111506397A (zh) * | 2020-01-21 | 2020-08-07 | 广东工业大学 | 一种基于linux实时操作***的单调速率优先级调度方法 |
CN111796921A (zh) * | 2020-06-30 | 2020-10-20 | 西安微电子技术研究所 | 嵌入式多核操作***调度方法、调度装置、电子设备及存储介质 |
CN112596891A (zh) * | 2021-03-03 | 2021-04-02 | 南京信息工程大学 | 时间片轮转结合扩展中断的多任务管理方法 |
CN113726682A (zh) * | 2021-08-30 | 2021-11-30 | 北京天空卫士网络安全技术有限公司 | 一种基于限速策略的数据传输方法和装置 |
CN114911539A (zh) * | 2022-05-17 | 2022-08-16 | 武汉深之度科技有限公司 | 一种运行***的启动方法及计算设备 |
CN115098430A (zh) * | 2022-06-27 | 2022-09-23 | 西安电子科技大学 | 一种基于amp架构的核间通信优先级调度方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894047A (zh) * | 2010-06-24 | 2010-11-24 | 北京航空航天大学 | 一种基于内核虚拟机调度策略的实现方法 |
-
2019
- 2019-07-01 CN CN201910586624.9A patent/CN110347485A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894047A (zh) * | 2010-06-24 | 2010-11-24 | 北京航空航天大学 | 一种基于内核虚拟机调度策略的实现方法 |
Non-Patent Citations (1)
Title |
---|
杨姗: "基于MILS架构多级安全操作***的若干关键技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506397B (zh) * | 2020-01-21 | 2023-04-28 | 广东工业大学 | 一种基于linux实时操作***的单调速率优先级调度方法 |
CN111506397A (zh) * | 2020-01-21 | 2020-08-07 | 广东工业大学 | 一种基于linux实时操作***的单调速率优先级调度方法 |
CN111414626A (zh) * | 2020-04-01 | 2020-07-14 | 中国人民解放军国防科技大学 | 基于tee扩展的实时性保证方法及*** |
CN111414626B (zh) * | 2020-04-01 | 2023-09-26 | 中国人民解放军国防科技大学 | 基于tee扩展的实时性保证方法及*** |
CN111796921A (zh) * | 2020-06-30 | 2020-10-20 | 西安微电子技术研究所 | 嵌入式多核操作***调度方法、调度装置、电子设备及存储介质 |
CN111796921B (zh) * | 2020-06-30 | 2023-05-30 | 西安微电子技术研究所 | 嵌入式多核操作***调度方法、调度装置、电子设备及存储介质 |
CN112596891A (zh) * | 2021-03-03 | 2021-04-02 | 南京信息工程大学 | 时间片轮转结合扩展中断的多任务管理方法 |
CN112596891B (zh) * | 2021-03-03 | 2021-06-11 | 南京信息工程大学 | 时间片轮转结合扩展中断的多任务管理方法 |
CN113726682A (zh) * | 2021-08-30 | 2021-11-30 | 北京天空卫士网络安全技术有限公司 | 一种基于限速策略的数据传输方法和装置 |
CN113726682B (zh) * | 2021-08-30 | 2024-05-31 | 北京天空卫士网络安全技术有限公司 | 一种基于限速策略的数据传输方法和装置 |
CN114911539A (zh) * | 2022-05-17 | 2022-08-16 | 武汉深之度科技有限公司 | 一种运行***的启动方法及计算设备 |
CN114911539B (zh) * | 2022-05-17 | 2024-05-14 | 武汉深之度科技有限公司 | 一种运行***的启动方法及计算设备 |
CN115098430A (zh) * | 2022-06-27 | 2022-09-23 | 西安电子科技大学 | 一种基于amp架构的核间通信优先级调度方法 |
CN115098430B (zh) * | 2022-06-27 | 2024-03-19 | 西安电子科技大学 | 一种基于amp架构的核间通信优先级调度方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347485A (zh) | 基于固定优先级的多核抢占式的多级融合实时调度方法 | |
US7251815B2 (en) | Multiple virtual machines sharing processor and work queue in memory having program/dispatch functions for assigning and accessing work items while the virtual machine was not idle | |
Thuel et al. | Algorithms for scheduling hard aperiodic tasks in fixed-priority systems using slack stealing | |
US5758184A (en) | System for performing asynchronous file operations requested by runnable threads by processing completion messages with different queue thread and checking for completion by runnable threads | |
US5452452A (en) | System having integrated dispatcher for self scheduling processors to execute multiple types of processes | |
Wieder et al. | Efficient partitioning of sporadic real-time tasks with shared resources and spin locks | |
US9697041B2 (en) | Method for dynamic interrupt balanced mapping based on current scheduling states of VCPUs | |
US20140373021A1 (en) | Assigning and Scheduling Threads for Multiple Prioritized Queues | |
Al-bayati et al. | Enhanced partitioned scheduling of mixed-criticality systems on multicore platforms | |
CN110321212A (zh) | 基于最早截止时间优先的多级融合实时调度方法 | |
Kim et al. | vMPCP: A synchronization framework for multi-core virtual machines | |
Behera et al. | A new dynamic round robin and SRTN algorithm with variable original time slice and intelligent time slice for soft real time systems | |
Leyva-del-Foyo et al. | Integrated task and interrupt management for real-time systems | |
CN110347507A (zh) | 基于时间片轮转的多级融合实时调度方法 | |
Lehoczky et al. | Scheduling periodic and aperiodic tasks using the slack stealing algorithm | |
McKenney | ‘Real time’vs.‘real fast’: How to choose? | |
Rocha et al. | A QoS aware non-work-conserving disk scheduler | |
Saranya et al. | Dynamic partitioning based scheduling of real-time tasks in multicore processors | |
Horowitz | A run-time execution model for referential integrity maintenance | |
Pathan | Unifying fixed-and dynamic-priority scheduling based on priority promotion and an improved ready queue management technique | |
Parmer | The case for thread migration: Predictable IPC in a customizable and reliable OS | |
Garg | Real-time linux kernel scheduler | |
KR100848323B1 (ko) | 임베디드 운영체제 커널의 실시간 성능을 향상시키는 방법 | |
Nosrati et al. | Task scheduling algorithms introduction | |
Zuberi et al. | EMERALDS: A small-memory real-time microkernel |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20191018 |
|
WD01 | Invention patent application deemed withdrawn after publication |