CN110347507A - 基于时间片轮转的多级融合实时调度方法 - Google Patents
基于时间片轮转的多级融合实时调度方法 Download PDFInfo
- Publication number
- CN110347507A CN110347507A CN201910586068.5A CN201910586068A CN110347507A CN 110347507 A CN110347507 A CN 110347507A CN 201910586068 A CN201910586068 A CN 201910586068A CN 110347507 A CN110347507 A CN 110347507A
- Authority
- CN
- China
- Prior art keywords
- vcpu
- robin
- round
- queue
- idle
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本发明公开一种基于时间片轮转的多级融合实时调度方法,当运行于MILS架构上的所有分区“客户”操作系统没有严格的实时性需求时,本发明中每个物理CPU维持一个就绪队列,队列中的VCPU对应一个信用度值,根据信用度值将VCPU分为四种状态:BOOST、UNDER、OVER和IDLE,BOOST状态的VCPU具有最高优先级;UNDER表示该VCPU还有剩余的信用度值,处于UNDER状态的VCPU可以正常参与调度;当VCPU消耗完其信用度值时其状态会从UNDER变为OVER,处于OVER状态的VCPU无法参与调度;IDLE表示VCPU处于空闲状态,是最低的优先级,保证了各个分区都能公平地使用CPU资源。
Description
技术领域
本发明属于安全操作系统领域,特别涉及一种MILS架构的多级安全操作系统的任务调度技术。
背景技术
操作系统是管理和控制计算机硬件和软件资源的计算机程序,是运行其他应用软件的基础软件,操作系统自身的防危性对用户的信息安全起着至关重要的作用。以“WannaCry”病毒为例,其核心问题即本地计算机执行了外来的木马程序,因此,从操作系统的角度来说,如果操作系统自身具备强制访问控制功能,即可有效地防止外来程序的运行,其次,“WannaCry”病毒可以通过文件共享网络端口在校园网中迅速传播,这表明系统之间的通信路径并不安全,通过操作系统的可信通信路径机制即可有效防止类似安全威胁。由此可见,对安全操作系统的研究迫在眉睫,多个独立安全等级(Multiple IndependentLevels of Security and Safety,MILS)架构是由美国Idaho大学的Jim教授等人所提出的一种基于安全分离型内核的多级安全架构,该架构以分离的思想为基础,在同一个硬件平台上构建多个分离的不同安全等级的分区,分区之间的数据完全隔离,每个分区只能在自己的地址空间中运行,并且分区之间的通信由分离内核进行统一控制,该架构目前已经被当做构建高可信操作系统的有效手段,且已被美国以及英国等多个国家的军用系统所采用。
为了提高“客户”操作系统的设备响应速度,研究MILS架构下的多级安全操作系统的调度算法具有重大意义。
发明内容
为解决上述技术问题,本发明提出一种基于时间片轮转的多级融合实时调度方法,保证各个分区都能公平地使用CPU资源。
本发明采用的技术方案为:基于时间片轮转的多级融合实时调度方法,包括:
S1、一级调度:可信分离内核基于时间片轮转的调度算法对“客户”操作系统的VCPU调度;
S2、二级调度:“客户”操作系统对自身任务的调度。
步骤S1所述基于时间片轮转的调度算法具体为:每个物理CPU维持一个就绪队列,每个就绪队列中的VCPU对应一个信用度值credit,根据credit值的不同,将VCPU分为四种状态,分别为BOOST、UNDER、OVER和IDLE,当VCPU被I/O操作唤醒后,其状态变为BOOST,处于BOOST状态的VCPU具有最高优先级;UNDER表示该VCPU还有剩余的credit值,处于UNDER状态的VCPU可以正常参与调度;当VCPU消耗完其credit值时其状态会从UNDER变为OVER,处于OVER状态的VCPU无法参与调度;IDLE表示该VCPU处于空闲状态,IDLE是最低的优先级。
步骤S1所述基于时间片轮转的调度算法实现过程包括以下步骤:
A1、判断当前运行的VCPU是否为idle_vcpu,如果不是,则需要更新该VCPU的credit值;然后执行步骤A2;其中,其中,idle_vcpu是一个特殊的VCPU,当PCPU没有其他可运行的VCPU时,则运行idle_vcpu;
A2、判断调度的时机,即判断当前是否应该切换VCPU,如果不切换,则返回当前VCPU继续运行,否则从该物理CPU的就绪队列中取得队首的VCPU;
A3、如果从队首取得的VCPU处于BOOST或者UNDER状态,则直接返回该VCPU并运行,否则执行步骤A4;
A4、责从其他物理CPU的就绪队列中窃取一个优先级大于OVER的VCPU,然后在该物理CPU上运行这个窃取到的VCPU;
A5、如果步骤A4从其他PCPU的就绪队列中窃取到一个可运行的VCPU,则返回这个VCPU,否则在该物理CPU上运行idle_vcpu,进入休眠。
步骤A1所述的更新该VCPU的credit值,具体为:从该VCPU的credit值中减去相应的credit消耗。
还包括:中断队列,中断队列中的所有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(Physical CentralProcessing Unit);
2)二级调度:“客户”操作系统对自身任务的调度,其调度的基本单位是任务,竞争的资源则是分配给这个分区的所有VCPU。
针对各个分区内的二级调度器,由于运行的“客户”操作系统的不同,其采取的调度算法也各不相同,比如Linux系统的O(1)调度算法和CFS(Completely Fair Schedule)算法、实时操作系统的RM(Rate Monotonic)调度算法和EDF(Earliest Deadline First)调度算法等,这些调度算法的使用取决于内部系统的不同应用需求,与MILS架构本身的关系并不紧密,因此,在本发明的多级融合实时调度机制中,主要从可信分离内核的一级调度的角度去考虑。
在MILS架构的可信分离内核中,一级调度器的目的是,根据某种调度算法,从VCPU就绪队列中挑选出最合适的一个VCPU,使其占有PCPU资源。这儿的调度算法,根据不同的应用需求将有所不同,如图1所示,本节中的综合实时两级调度机制主要提供了:基于时间片轮转的调度算法,注重各个分区的公平性,主要目的是为了保证各个分区都能公平地使用CPU资源。
当运行于MILS架构上的所有分区“客户”操作系统没有严格的实时性需求时,采用基于时间片轮转的调度算法可以保证各个分区都能公平获得运行时间,从而提高整个系统的吞吐率。具体的基于时间片轮转的调度算法为:
每个物理CPU维持一个就绪队列,每个队列中的VCPU都有一个信用度值credit,根据credit值的不同,每个VCPU可能有四种状态,分别为BOOST、UNDER、OVER和IDLE,单个PCPU的就绪队列如图2所示。
BOOST状态是为了提高I/O性能所引入的状态,当VCPU被I/O操作唤醒后,其状态变为BOOST,处于BOOST状态的VCPU具有最高优先级;UNDER表示该VCPU还有剩余的credit值,处于UNDER状态的VCPU可以正常参与调度;当VCPU消耗完其credit值时其状态会从UNDER变为OVER,处于OVER状态的VCPU无法参与调度;IDLE表示该VCPU处于空闲状态,idle_vcpu是一个特殊的VCPU,属于idle_domain,当PCPU没有其他可运行的VCPU时,则运行idle_vcpu,因此IDLE是最低的优先级。
如图3所示为基于时间片轮转的调度算法的实现流程图,包括以下步骤:
1)判断当前运行的VCPU是否为idle_vcpu,如果不是,则需要更新该VCPU的credit值,即从其credit值中减去相应的credit消耗;
2)判断调度的时机,即判断当前是否应该切换VCPU,如果不切换,则返回当前VCPU继续运行,否则从该PCPU的就绪队列中取得队首的VCPU;
3)如果从队首取得的VCPU处于BOOST或者UNDER状态,则直接返回该VCPU并运行,否则执行负载均衡算法;
4)负载均衡算法负责从其他PCPU的就绪队列中窃取一个优先级大于OVER的VCPU,然后在该PCPU上运行这个窃取到的VCPU;
5)如果步骤4)中无法从其他PCPU的就绪队列中窃取到一个可运行的VCPU,则在该PCPU上运行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 (6)
1.基于时间片轮转的多级融合实时调度方法,其特征在于,包括:
S1、一级调度:可信分离内核基于时间片轮转的调度算法对“客户”操作系统的VCPU调度;
S2、二级调度:“客户”操作系统对自身任务的调度。
2.根据权利要求1所述的基于时间片轮转的多级融合实时调度方法,其特征在于,步骤S1所述基于时间片轮转的调度算法具体为:每个物理CPU维持一个就绪队列,每个就绪队列中的VCPU对应一个信用度值credit,根据credit值的不同,将VCPU分为四种状态,分别为BOOST、UNDER、OVER和IDLE,当VCPU被I/O操作唤醒后,其状态变为BOOST,处于BOOST状态的VCPU具有最高优先级;UNDER表示该VCPU还有剩余的credit值,处于UNDER状态的VCPU可以正常参与调度;当VCPU消耗完其credit值时其状态会从UNDER变为OVER,处于OVER状态的VCPU无法参与调度;IDLE表示该VCPU处于空闲状态,IDLE是最低的优先级。
3.根据权利要求2所述的基于时间片轮转的多级融合实时调度方法,其特征在于,步骤S1所述基于时间片轮转的调度算法实现过程包括以下步骤:
A1、判断当前运行的VCPU是否为idle_vcpu,如果不是,则需要更新该VCPU的credit值;然后执行步骤A2;其中,idle_vcpu是一个特殊的VCPU,当PCPU没有其他可运行的VCPU时,则运行idle_vcpu;
A2、判断调度的时机,即判断当前是否应该切换VCPU,如果不切换,则返回当前VCPU继续运行,否则从该物理CPU的就绪队列中取得队首的VCPU;
A3、如果从队首取得的VCPU处于BOOST或者UNDER状态,则直接返回该VCPU并运行,否则执行步骤A4;
A4、责从其他物理CPU的就绪队列中窃取一个优先级大于OVER的VCPU,然后在该物理CPU上运行这个窃取到的VCPU;
A5、如果步骤A4从其他PCPU的就绪队列中窃取到一个可运行的VCPU,则返回这个VCPU,否则在该物理CPU上运行idle_vcpu,进入休眠。
4.根据权利要求3所述的基于时间片轮转的多级融合实时调度方法,其特征在于,步骤A1所述的更新该VCPU的credit值,具体为:从该VCPU的credit值中减去相应的credit消耗。
5.根据权利要求4所述的基于时间片轮转的多级融合实时调度方法,其特征在于,还包括:中断队列,中断队列中的所有VCPU的中断注入标识都大于0,当其处理完所有的中断请求后,则将其从中断队列中删除,然后插入就绪队列。
6.根据权利要求5所述的基于时间片轮转的多级融合实时调度方法,其特征在于,每个VCPU分配一个中断注入标识,中断注入标识记录了该VCPU还未处理的中断请求的数量,每次为VCPU注入中断时,则将其中断注入标识加一,而中断请求处理完成后,再将其中断注入标识减一。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910586068.5A CN110347507A (zh) | 2019-07-01 | 2019-07-01 | 基于时间片轮转的多级融合实时调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910586068.5A CN110347507A (zh) | 2019-07-01 | 2019-07-01 | 基于时间片轮转的多级融合实时调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110347507A true CN110347507A (zh) | 2019-10-18 |
Family
ID=68177127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910586068.5A Pending CN110347507A (zh) | 2019-07-01 | 2019-07-01 | 基于时间片轮转的多级融合实时调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347507A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596891A (zh) * | 2021-03-03 | 2021-04-02 | 南京信息工程大学 | 时间片轮转结合扩展中断的多任务管理方法 |
CN113687909A (zh) * | 2021-07-28 | 2021-11-23 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于微内核的分时vcpu多核调度方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7676608B1 (en) * | 2006-12-12 | 2010-03-09 | Rockwell Collins, Inc. | System for extending Multiple Independent Levels of Security (MILS) partitioning to input/output (I/O) devices |
CN104901874A (zh) * | 2014-03-07 | 2015-09-09 | 空中客车运营简化股份公司 | 互连不同域的高保障安全网关 |
-
2019
- 2019-07-01 CN CN201910586068.5A patent/CN110347507A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7676608B1 (en) * | 2006-12-12 | 2010-03-09 | Rockwell Collins, Inc. | System for extending Multiple Independent Levels of Security (MILS) partitioning to input/output (I/O) devices |
CN104901874A (zh) * | 2014-03-07 | 2015-09-09 | 空中客车运营简化股份公司 | 互连不同域的高保障安全网关 |
Non-Patent Citations (2)
Title |
---|
杨姗: "基于MILS架构多级安全操作系统的若干关键技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 * |
焦煦然: "云平台中虚拟机调度系统的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596891A (zh) * | 2021-03-03 | 2021-04-02 | 南京信息工程大学 | 时间片轮转结合扩展中断的多任务管理方法 |
CN112596891B (zh) * | 2021-03-03 | 2021-06-11 | 南京信息工程大学 | 时间片轮转结合扩展中断的多任务管理方法 |
CN113687909A (zh) * | 2021-07-28 | 2021-11-23 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于微内核的分时vcpu多核调度方法及系统 |
CN113687909B (zh) * | 2021-07-28 | 2024-01-30 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于微内核的分时vcpu多核调度方法及系统 |
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 | |
Sprunt et al. | Aperiodic task scheduling for hard-real-time systems | |
US9268594B2 (en) | Processor extensions for execution of secure embedded containers | |
Wieder et al. | Efficient partitioning of sporadic real-time tasks with shared resources and spin locks | |
Lakshmanan et al. | Mixed-criticality task synchronization in zero-slack scheduling | |
US9836418B2 (en) | System and method for deterministic time partitioning of asynchronous tasks in a computing environment | |
JP3008896B2 (ja) | 共有バス型マルチプロセッサシステムの割り込み負荷分散システム | |
Lyons et al. | Scheduling-context capabilities: A principled, light-weight operating-system mechanism for managing time | |
US20030236816A1 (en) | Spin-yielding in multi-threaded systems | |
KR20110103257A (ko) | 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법 | |
Tokuda et al. | Evaluation of Real-Time Synchronization in Real-Time Mach. | |
CN110347507A (zh) | 基于时间片轮转的多级融合实时调度方法 | |
Kim et al. | vMPCP: A synchronization framework for multi-core virtual machines | |
Leyva-del-Foyo et al. | Integrated task and interrupt management for real-time systems | |
US20060095908A1 (en) | Per processor set scheduling | |
CN110321212A (zh) | 基于最早截止时间优先的多级融合实时调度方法 | |
CN107203428A (zh) | 一种基于Xen的VCPU多核实时调度算法 | |
Bernat et al. | Multiple servers and capacity sharing for implementing flexible scheduling | |
Lyons et al. | Mixed-criticality support in a high-assurance, general-purpose microkernel | |
Rocha et al. | A QoS aware non-work-conserving disk scheduler | |
Lehoczky et al. | Scheduling periodic and aperiodic tasks using the slack stealing algorithm | |
McKenney | ‘Real time’vs.‘real fast’: How to choose? | |
Stavrinides et al. | Scheduling different types of gang jobs in distributed systems | |
Horowitz | A run-time execution model for referential integrity maintenance |
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 |