优先级是指计算机操作系统给任务指定的优先等级。它决定任务在使用资源时的优先次序。②给设备指定的优先等级。它决定设备在提出中断请求时,得到处理机响应的先后次序。任务调度优先级主要是指任务被调度运行时的优先级,主要与任务本身的优先级和调度算法有关。特别在实时系统中,任务调度优先级反应了一个任务重要性与紧迫性。

中文名

任务调度优先级

外文名

task scheduling priority

学    科

计算机科学定    义

任务被调度运行时的优先级

有关术语

优先级、任务调度算法

领    域

操作系统

任务调度优先级任务调度

编辑

语音

任务调度是操作系统的重要组成部分,而对于实时操作系统,任务调度直接影响其实时性能。任务调度方式常规可分为:可打断调度(实时系统基本功能):关键防止优先级倒置;不可打断调度:先来先服务,不可中断。任务调度优先级即操作系统赋予任务的优先数,用于决定任务调度的先后顺序。任务调度优先级不仅与任务调度方式有关,还有与优先级的类型和调度算法有关。

任务调度优先级优先级的类型

编辑

语音

每个进程都有相应的优先级,优先级决定它何时运行和接收多少 CPU 时间。Windows的优先级共 32 级,是从 0 到 31 的数值,称为基本优先级别(Base Priority Level)。系统按照不同的优先级调度进程的运行,0-15 级是普通优先级,进程的优先级可以动态变化,高优先级进程优先运行,只有高优先级进程不运行时,才调度低优先级进程运行,优先级相同的进程按照时间片轮流运行。16-31 级是实时优先级,实时优先级与普通优先级的最大区别在于相同优先级进程的运行不按照时间片轮转,而是先运行的进程就先控制 CPU,如果它不主动放弃控制,同级或低优先级的进程就无法运行。Linux系统的优先级从0-140,0-99表示实时进程,100-140表示非实时进程,与Windows相反,Linux优先级值越小,意味着级别越高,任务优先被内核调度。

静态优先级

静态优先权是在创建进程时确定的,且在进程的整个运行期间保持不变。一般地,优先权是利用某一范围内的一个整数来表示的,例如,0~7 或 0~255 中的某一整数,又把该整数称为优先数,只是具体用法各异:有的系统用“0”表示最高优先权,当数值愈大时,其优先权愈低;而有的系统恰恰相反。确定进程优先权的依据有如下三个方面:

(1)进程类型。通常,系统进程(如接收进程、对换进程、磁盘 I/O 进程)的优先权高于一般用户进程的优先权。

(2)进程对资源的需求。如进程的估计执行时间及内存需要量的多少,对这些要求少的进程应赋予较高的优先权。

(3) 用户要求。这是由用户进程的紧迫程度及用户所付费用的多少来确定优先权的。静态优先权法简单易行,系统开销小,但不够精确,很可能出现优先权低的作业(进程)长期没有被调度的情况。因此,仅在要求不高的系统中才使用静态优先权。

动态优先级

动态优先权是指在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能。例如,我们可以规定,在就绪队列中的进程,随其等待时间的增长,其优先权以速率 a 提高。若所有的进程都具有相同的优先权初值,则显然是最先进入就绪队列的进程将因其动态优先权变得最高而优先获得处理机,此即FCFS 算法。若所有的就绪进程具有各不相同的优先权初值,那么,对于优先权初值低的进程,在等待了足够的时间后,其优先权便可能升为最高,从而可以获得处理机。当采用抢占式优先权调度算法时,如果再规定当前进程的优先权以速率 b 下降,则可防止一个长作业长期地垄断处理机。[1]

任务调度优先级任务调度算法

编辑

语音

任务调度算法可分为:

事件驱动调度算法:根据事件的先后以及任务的优先级安排任务的执行。如先来先服务调度算法。

时钟驱动调度算法:一般用于周期任务。如基于时间片的轮转调度算法,多级反馈队列调度算法。

事件驱动调度:依赖外部硬件设备,通过产生中断方式为任务调度提供信号。分两种,集成事件驱动调度:中断的优先级与任务的优先级相对应,中断只有在其优先级高于正在执行的任务时才会被处理器响应。 非集成事件驱动调度:任务通过外部中断启动,中断优先级与相关任务优先级没有关系。

一种基于调度粒度的任务优先级计算方法

背景

近些年来,多核处理器快速发展的同时,也给任务调度带来了新的挑战,如何利用 高效的任务调度策略使多核处理器系统充分发挥其性能,已经是我们必须要解决的问题。 动态任务调度可以根据运行时情况动态地将任务分配到各个内核上,由于需要实时地收 集、存储并分析状态信息,动态调度的实施有一定的系统开销,但这种开销和付出通常是有 回报的。

比较经典的调度算法有Min-Min、Max-Min、MCT(Minimum Completion Time)、 MET(Minimum Execution Time)等算法。Min-Min算法实现简单,执行时间较快。算法的思想是比较所有待调度的任务,优先选取最早完成时间最小的一个任务进行调度。缺点是如果任务集中存在过多执行时间比较小的任务,那么时间比较大的任务将无法得到及时执行。Max-Min算法类似于Min-Min算法,不同的是Max-Min算法首先调度最早完成时间最大的任务。缺点是完成时间较小的任务等待时间过长,影响执行效率,也可能造成负载不均衡。

步骤

将任务分配到最合适的处理器内核上是任务调度的核心问题,而任务优先级计算是任务分配的关键,任务优先级表明任务被优先调度的程度,因此本发明方法在计算任务 优先级时引入调度粒度,用来决定调度过程分配的任务数量,进而决定调度频度。

(1)确定任务优先级

计算任务相对于一个确定内核的优先级Tipk,取所有内核上的最大值作为任务优 先级Tip:

m为内核数量,Tipk表示任务Ti相对于内核Pk的优先级;

(2)设定调度粒度

在计算任务1\相对于一个处理器内核P的任务优先级时,设定调度粒度,其中处 理器内核P的调度粒度定义为一次调度过程中为处理器内核P分配的任务数量,一次调度 过程是指一个处理器内核请求调度;调度算法为其分配任务的过程中,调度的任务数量等 于为每个处理器内核分配的任务数量之和,调度粒度为:

Ik=l*spkm-1

其中Ip表示处理器内核P的调度粒度,1表示粒度因子,spp表示处理器内核P的 处理速度;

(3)任务优先级计算细化

计算一个任务在所有处理器内核上的任务优先级Tip及任务等待时间和任务间通 信开销因素:

其中PW1代表任务Ti的等待时间,PC1P代表平均通信开销,Ip代表内核P的调度粒 度,Cip表示任务Ti的通信开销;t表示当前时间,Tlt表示任务就绪时间。

任务调度优先级总结

编辑

语音

本发明方法首先计算一个 任务在所有处理器内核上的任务优先级,然后取其在所有处理器内核上任务优先级的最大 值作为该任务的优先级,在任务调度时优先调度任务优先级大的任务。在计算任务相对于 一个确定处理器内核的任务优先级时,综合考虑任务等待时间、任务间通信开销和调度粒度因素,其中任务等待时间因素可避免存在就绪任务长时间不被调度的现象;同时计算任务间的平均通信开销,可以将通信开销大的任务分配到相应的处理器内核上,以节省更多 的任务间通信开销;同样调度粒度通过粒度因子和处理器内核的处理速度来调节大小,对 于一个实际的处理器系统,处理器内核速度是确定的已知量,其中粒度大小要根据系统模 型而定,它起到将处理器内核的计算速度转换为处理器内核的调度任务数量的作用,结合 三种因素计算任务优先级可充分发挥任务调度优势,提高处理器效率,从而降低调度频率, 减少调度消耗时间。[2]

参考资料

1.

汤小丹.计算机操作系统:西安电子科技大学出版社,2010

2.

一种基于调度粒度的任务优先级计算方法

.patents[引用日期2017-06-18]