一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种能量感知的分层任务调度方法和装置与流程

2021-10-24 09:18:00 来源:中国专利 TAG:调度 实时 分层 感知 能量


1.本发明属于实时任务调度技术领域,具体涉及一种能量感知的分层调度模型下的实时任务调度方法和装置。


背景技术:

2.分层调度以应用为单位对任务进行分组,一个任务属于一个应用,一个应用可以拥有多个任务,一个系统中拥有多个应用。每个应用之间相互独立,如果一个应用的某个任务出现故障,只会对该应用的内部任务产生影响,而不会影响其他应用程序的执行,使整个系统的应用紧密集成又相互隔离。分层调度分为两层调度:第一层全局调度和第二层本地调度。全局调度为操作系统调度应用,操作系统将一个应用视为一个任务,根据全局调度优先级分配算法为每个应用分配优先级,操作系统根据优先级依次调度应用。本地调度为应用调度任务,应用根据本地优先级分配算法为其内的每个任务分配优先级,当某个应用被选中执行时,该应用的本地调度器根据优先级依次调度其内的任务。
3.在分层调度模型下进行实时性任务的调度,充分利用了分层调度的优势,具有灵活性、实时性等特性,在许多复杂的控制场景中被广泛应用,如制造控制、后勤、仿真、分布式智能决策和空间探测等。随着实际应用的复杂化,实时分层调度具备将任务进行分组调度的能力,能够更有效地适应应用软件的调度需求,因而被许多嵌入式设备所采用。嵌入式设备往往具有低功耗的要求,这就要求调度方法能在满足任务的时间约束的同时,尽可能的减少对能量的消耗。
4.现有的分层调度策略(如双层edf调度、图模型任务调度等)仅考虑了任务截止期约束而没有考虑任务运行所产生的处理器能耗,分层调度下支持能耗控制的调度方法研究仍处于空白状态。同时,已有的能量感知的任务调度方法(如使用动态缩放电压技术的double

largest

task

first算法、使用动态功耗管理技术的rate

harmonized scheduling方法等),虽然考虑了处理器的能耗问题,但均只针对单层任务调度模型,其方法无法直接应用于分层调度。总结现有研究,可以发现实时分层调度能耗控制的调度方法处于空白状态。


技术实现要素:

5.针对现有技术的不足,本发明结合分层调度模型的特性,提出了一种新的能量感知分层任务调度方法(power

aware rate harmonized scheduling for hierarchical scheduling algorithm,简称pa

hrhs方法),可使实时任务在保证可调度的情况下尽可能节省处理器能耗。
6.本发明为一种能量感知的分层任务调度方法,其主要步骤包括:
7.1)根据已知任务集的参数计算调度的协调周期;协调周期是指协调任务调度进度的虚拟周期,用以聚集任务实例;
8.2)根据操作系统所运行的硬件环境的睡眠状态转换时长等设置节能任务执行时
长;
9.3)根据步骤1)和2)中得到的协调周期和节能任务执行时长设置节能应用和节能任务;
10.4)根据步骤1)和2)中得到的协调周期和节能任务执行时长判断已知任务集的可调度性;可调度性判定方法使用定点计算的方法来确定任务的最坏情况响应时间;若已知任务集可调度,则可使用该节能调度方法,否则返回不可调度;
11.5)分层调度模型设置两层调度,包含一级调度器和二级调度器,将应用作为操作系统中的任务并由一级调度器进行调度,应用内的任务由二级调度器进行调度;
12.6)所述一级调度器从应用集合中选择优先级最高的应用,当优先级相同时进行随机选取,并将其分配到cpu上运行;
13.7)若某应用被所述一级调度器选中占有cpu,则该应用的二级调度器以该应用的就绪任务集中的任务按其优先级递减顺序在cpu上依次执行,相同优先级的任务随机排序;
14.8)当某应用的就绪任务集中的任务全部执行完后,释放其所占有的cpu,一级调度器从未被完成且当前未占有处理器的应用中选择一个优先级最高的应用占有cpu,并转到步骤7);
15.9)若操作系统中所有应用均没有就绪任务,操作系统则转入睡眠模式,直至下个协调周期初始的节能任务执行完毕。
16.进一步地,根据优先级最高的任务为应用设置优先级,优先级高的应用可被优先执行。
17.进一步地,根据任务的周期为任务设置优先级,优先级高的任务可优先被应用执行。
18.进一步地,节能任务执行时即将处理器转至睡眠状态。
19.进一步地,协调周期之后到来的任务,若处理器未处于工作状态则加入等待队列,直到下一个协调周期才可加入就绪队列被执行。
20.进一步地,由于节能应用仅有节能任务一个任务,且节能任务的周期为协调周期,即优先级最高,故每个协调周期开始的时刻执行节能应用的节能任务。
21.进一步地,若某个协调周期末尾有空闲时间则和下一个协调周期初始的节能任务连接起来将处理器置于睡眠状态。
22.进一步地,响应请求的任务继承请求任务的到达时间和截止期,避免优先级倒置。
23.优选地,本发明方法采用以下方式实现:
24.设系统为单处理器系统,系统内有m个应用,设应用的集合为a={a1,..a
i
,..a
m
},1≤i≤m,每个应用a
i
包含一组相关任务г
i
,г
i
={τ
i,1

i,2
,...,τ
i,k
}。
25.应用内的任务可以分为以下三类:
26.独立型任务,为周期任务,由一个应用产生,不需要其他应用提供服务;
27.请求服务型任务,为周期任务,由一个应用产生,并需要请求其他应用提供指定服务;
28.响应服务型任务,为非周期任务,不会自己产生,由其他应用的请求服务型任务唤醒,以实现功能复用。应用将自己所能提供的服务包装成响应服务型任务,为其他的应用提供服务。
29.系统中任务具有如下参数(见表1):
30.表1 任务的参数
[0031][0032]
周期t
i,j
:是任务τ
i,j
到达系统的周期,即每隔t
i,j
时间任务τ
i,j
就会有一个任务实例到达系统。
[0033]
执行时间c
i,j
:是处理器完成任务τ
i,j
的所要花费的时间开销。
[0034]
服务任务集sг
i,j
:是任务τ
i,j
执行过程中所需请求服务的所有响应服务型任务的任务集,服务任务集可以为空。
[0035]
相对截止期d
i,j
:是指从任务τ
i,j
的一个实例到达系统到该实例被执行完毕之间允许的最大时间间隔,即任务τ
i,j
的一个实例允许的最大响应时间。优选地,假设相对截止期为隐式截止期,即d
i,j
=t
i,j

[0036]
真实执行时间rc
i,j
:是指任务τ
i,j
的一个实例从到达系统到被执行完毕至少经历的时间间隔,某一任务实例完成必须等待其请求服务的所有响应服务型任务执行完毕,即该任务实例的执行时间和其请求的所有响应服务型任务的执行时间之和,
[0037]
按照任务就绪的规律,任务可分为周期性任务和非周期性任务。周期性任务用五元组{c
i,j
,rc
i,j
,t
i,j
,d
i,j
,sг
i,j
}表示,非周期性任务用四元组{c
i,j
,rc
i,j
,d
i,j
,sг
i,j
}表示。
[0038]
应用可以形式化描述为以下二元组a
k
={γ
k
,p
k
},其中γ
k
表示应用内的任务集,p
k
表示应用的优先级。
[0039]
假设运行在实时操作系统之上(在此,假设运行于实时操作系统vxworks之上),且每个应用被实时操作系统作为一个任务进行调度。此时,实时操作系统调度器(称为一级调度器)总是从应用集合a中选择优先级最高的应用执行。同时,每个应用均有一个调度器(称为二级调度器)负责调度应用就绪任务集中的任务。
[0040]
本发明的pa

hrhs算法的具体步骤如下:
[0041]
1)离线计算协调周期t
h
,协调周期初始相位与系统内周期最小的任务相位相同,协调周期计算方法为:
[0042][0043]
其中,任务为系统内周期最小的任务,ψ表示任务集中除任务以外其他所有任务中周期小于的任务集合。即,若任务集中其他所有任务的周期均不小于则否则
[0044]
2)设置节能应用a
sleep
和节能任务τ
sleep
,系统中仅有一个节能应用a
sleep
,节能应用仅有一个节能任务τ
sleep
,节能任务的周期t
sleep
=t
h
,根据处理器的睡眠状态转换时长st
sleep
设置节能任务的执行时长为c
sleep
=st
sleep
,节能任务执行时会使处理器进入睡眠状态。显然,只要系统调度节能应用a
sleep
,系统就将进入睡眠状态。
[0045]
3)判断已知任务集的可调度性,可调度性判定方法使用定点计算的方法来确定任务的最坏情况响应时间,任务τ
i,j
的最坏情况响应时间的计算公式如下:
[0046]
w0=rc
i,j
t
h

c
sleep
[0047][0048]
其中,w0表示递归初始任务τ
i,j
的响应时间,w
k
表示第k次递归任务τ
i,j
的最坏情况响应时间,w
k 1
表示第k 1次递归任务τ
i,j
的最坏情况响应时间,k表示第k的递归计算,e1(τ
i,j
)表示优先级高于任务τ
i,j
的任务对其造成的最坏延迟时长,e2(τ
i,j
)表示优先级低于任务τ
i,j
的任务对其造成的最坏延迟时长。
[0049][0050]
п为优先级高于任务τ
i,j
的所有独立型任务和请求服务型任务的集合,响应服务型任务的执行时长计算入唤醒其工作的请求服务型任务的真实执行时长中。
[0051][0052]
其中,b为系统中的任一应用,m表示系统中应用的数量,num(τ
i,j
,k,b)为任务τ
i,j
被应用a
b
中的任务抢先执行的次数,由于本地调度的不可抢占性,每一次的抢占行为都有被优先级低的任务所间接延迟的可能,故为被应用a
b
中优先级低于任务τ
i,j
的任务延迟的最坏时长,c表示某任务集根据任务执行时间降序排列的任务执行时间列表,d表示第d个任务,c(d,b,τ
i,j
)表示应用a
b
的所有优先级低于任务τ
i,j
的任务组成的任务集中按照任务执行时间c倒序排列任务后第d个任务的执行时间。迭代计算w
k 1
,直到w
k 1
=w
k
,若w
k 1
≤d
i,j
,则该任务集可调度,否则任务τ
i,j
视为不可调度。若已知任务集可调度,则可使用该节能调度方法,否则返回不可调度。
[0053]
4)初始时,一级调度器从应用集合a中选择优先级最高的应用(优先级相同时随机选取),分配到cpu上运行(应用优先级的计算方法见步骤11))。
[0054]
5)若应用a
i
被一级调度器选中占有cpu,则应用a
i
的二级调度器将以就绪任务集г
i
中的任务按其优先级递减顺序在该cpu上依次执行,相同优先级的任务随机排序(任务优先级的计算方法见10)),直至a
i
就绪任务集合中的所有任务均被完成。
[0055]
5.1)当执行到任务τ
i,j
时,将任务τ
i,j
从就绪队列中移至当前任务,若τ
i,j
需请求服务则在请求服务后挂起该任务,并将该任务从当前任务移至等待队列;
[0056]
5.2)当任务τ
i,j
被执行完成后,重新计算应用a
i
的优先级(应用a
i
的优先级计算方法见7))。若应用a
i
的优先级发生变化,则转入8)。
[0057]
6)当应用a
i
就绪任务集中的任务全部执行完后,a
i
优先级置为0,并释放cpu,一级调度器从未被完成且的应用中选择一个优先级最高的应用占有cpu,并转到5);若此时系统中已无未被完成且未占有处理器的应用,则将cpu转至睡眠状态直到下一个协调周期初始睡眠任务执行完毕。
[0058]
7)当应用a
i
中有新任务到达,设τ
i,j
为应用a
i
中新到达的任务。
[0059]
7.1)若新到达的任务τ
i,j
是应用a
i
为了响应某个应用(记为a
m
)的请求任务(记为τ
m,k
)对其所发出的服务请求而产生的响应任务,则d
i,j
=d
m,k
,c
i,j
根据应用设定,τ
i,j
优先级与τ
m,k
相同。且任务τ
i,j
立即加入就绪队列。
[0060]
7.2)若新到达任务τ
i,j
是应用a
i
中自身产生的任务,则c
i,j
,rc
i,j
,t
i,j
,d
i,j
,sг
i,j
均根据应用设定,若τ
i,j
到达时处理器未处于工作状态且非某个协调周期的开始时刻,则需等到下一个协调周期才可加入就绪队列。
[0061]
7.3)若任务τ
i,j
加入就绪队列则重新计算应用a
i
的优先级(计算方法见11)),若应用a
i
优先级发生变化,则转到8)。
[0062]
8)当有一个或多个应用的优先级发生变化,一级调度器将进行如下处理:
[0063]
8.1)若当前优先级最高的应用正在占有cpu,则继续占有cpu执行任务。
[0064]
8.2)若当前优先级最高的应用正处于等待状态(即未被完成且未占有cpu),则该应用抢占cpu并转到5)开始调度该应用的就绪任务。
[0065]
9)当到达某一个协调周期开始节能任务执行完毕的时刻,即t=k*t
h
c
sleep

[0066]
9.1)若有已到达但尚未加入就绪队列的任务,则将任务加入就绪队列;
[0067]
9.2)若有新任务加入应用a
i
的就绪队列,则重新计算a
i
的优先级(计算方法见11));
[0068]
9.3)若有应用优先级发生变化,则转到8)。
[0069]
10)应用a
i
就绪任务集中任务的优先级根据其周期设定,任务周期越小,优先级越高,设t
max
为任务集中周期最大的任务的周期,任务τ
i,j
的优先级计算公式如下:
[0070]
p
i,j
=255

(t
i,j
*254)/t
max
[0071]
11)应用a
i
的优先级计算方法:设τ
i,k
是应用a
i
就绪任务集和当前任务中优先级最高的任务,应用a
i
优先级即为τ
i,k
的优先级值即p
i,k
,若应用a
i
就绪任务集为空,则应用a
i
优先级为0。即应用a
i
的优先级计算方法为:
[0072][0073]
其中,γ
current&ready
表示该应用a
i
的当前任务和就绪任务集中任务组成的任务集。
[0074]
基于同一发明构思,本发明还提供一种能量感知的分层任务调度装置,例如是一
种电子装置(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。
[0075]
本发明的有益效果是:
[0076]
本发明根据分层调度模型的特点,考虑一级调度可抢占、二级调度不可抢占的分层调度和支持包括独立型任务、请求服务型任务及响应服务型任务在内的多种任务的调度情况,通过最大程度地聚集处理器空闲时间,保证在所有空闲时间内处理器均处于睡眠状态来最小化系统静态泄露功率,提出了一种能量感知的分层任务调度方法,使运行的任务在保证可调度的前提下,满足了系统的节能需求。
附图说明
[0077]
图1是分层调度模型的结构示意图。
[0078]
图2是应用占有cpu后任务执行流程图。
[0079]
图3是有新任务到达后处理流程图。
[0080]
图4是应用优先级变化后处理流程图。
[0081]
图5是到达某一协调周期开始节能任务执行完毕的时刻的处理流程图。
[0082]
图6是睡眠优化利用率实验结果图。
[0083]
图7是cpu平均能耗实验结果图。
具体实施方式
[0084]
下面将结合本发明的实施例及附图,对本发明中的技术方案进行清楚、完整地描述。所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0085]
发明原理:本发明分析现有的能量感知方式,并根据分层调度的调度模型,如图1所示,应用视作操作系统中的任务,由操作系统调度器(图1中称为全局调度器)进行可抢占式的调度,应用内部的任务由应用的调度器(图1中称为本地调度器)进行不可抢占式的调度。
[0086]
调度算法描述了应用和任务被调度的过程,调度算法的具体步骤如下:
[0087]
1)系统执行前,离线计算协调周期t
h
、节能任务周期t
sleep
和节能任务执行时长c
sleep
,设置节能应用a
sleep
和节能任务τ
sleep
。t
sleep
=t
h
,c
sleep
=st
sleep
,其中st
sleep
处理器最小睡眠转换时间,由硬件参数决定。
[0088]
2)根据1)中计算出的值,离线判断给定任务集的可调度性,若该任务集中的每个任务都可调度则该任务集可调度;否则返回不可调度。
[0089]
3)初始时,一级调度器从应用集合a中选择优先级最高的应用(优先级相同时随机选取),分配到cpu上运行(应用优先级计算方式如前文所述)。
[0090]
4)图2给出了当应用a
i
被选中占有cpu核后的具体流程,包括:
[0091]
4.1)应用a
i
的应用调度器执行a
i
就绪任务集中优先级最高的任务;
[0092]
4.2)当执行到任务τ
i,j
时,若任务τ
i,j
需请求服务则在请求服务后挂起该任务,并
将该任务从当前任务移至等待队列;
[0093]
4.3)当任务τ
i,j
被执行完成后,重新计算应用a
i
的优先级。若应用a
i
的优先级发生变化,则转入7);
[0094]
4.4)重复4.1)

4.4)直至a
i
就绪任务集合中的所有任务均被完成,a
i
优先级置为0,并释放cpu。
[0095]
5)当应用a
i
就绪任务集中的任务全部执行完时,若系统中已无未被完成且未占有处理器的应用,则将cpu转至睡眠状态直到下一个协调周期初始睡眠任务执行完毕后恢复工作状态。
[0096]
6)图3给出了当应用a
i
中有新任务τ
i,j
到达后的具体流程,包括:
[0097]
6.1)若新到达的任务τ
i,j
是应用a
i
为了响应某个应用(记为a
m
)的请求任务(记为τ
m,k
)对其所发出的服务请求而产生的响应任务,则d
i,j
=d
m,k
,c
i,j
根据应用设定,τ
i,j
优先级与τ
m,k
相同。且任务τ
i,j
立即加入就绪队列。
[0098]
6.2)若新到达任务τ
i,j
是应用a
i
中自身产生的任务,则c
i,j
,rc
i,j
,t
i,j
,d
i,j
,sг
i,j
均根据应用设定,若τ
i,j
到达时处理器未处于工作状态且非某个协调周期的开始时刻,则需等到下一个协调周期才可加入就绪队列。
[0099]
6.3)若任务τ
i,j
加入就绪队列则重新计算应用a
i
的优先级,若应用a
i
优先级发生变化,则转到7)。
[0100]
7)图4给出了当一个或多个应用的优先级发生变化后的具体流程,包括:
[0101]
7.1)若当前优先级最高的应用正在占有cpu,则继续占有cpu执行任务。
[0102]
7.2)若当前优先级最高的应用正处于等待状态,则该应用抢占cpu并转到4)开始调度该应用的就绪任务。
[0103]
8)图5给出了当系统到达某一个协调周期开始节能任务完成的时刻的具体流程,包括:
[0104]
8.1)检查是否有已到达但尚未加入就绪队列的任务,若有,则将所有任务加入就绪队列;
[0105]
8.2)若有新任务加入应用a
i
的就绪队列,则重新计算a
i
的优先级;
[0106]
8.3)若有应用优先级发生变化,则转到7)。
[0107]
下面结合表2、表3、表4给出的应用a1、a2、a3的相关任务数据,来对本发明提出的实时任务调度方法做进一步说明。
[0108]
表2 应用a1中的任务集合
[0109][0110]
表3 应用a2中到达任务集合
[0111][0112]
表4 应用a3中到达任务集合
[0113][0114]
假设所有独立型任务和请求服务型任务的初始相位均为0,即在时刻0所有任务都有第一个任务实例到来。任务执行前预处理步骤如下:
[0115]
(1)计算协调周期t
h
,周期最小的任务为τ
1,1
,周期为40,其他任务周期均大于等于2*40,故协调周期t
h
为40。
[0116]
(2)节能任务周期t
sleep
等于t
h
,即,t
sleep
=40。
[0117]
(3)假设该系统的最小睡眠转化时间st
sleep
为10,则节能任务执行时长c
sleep
=st
sleep
=10。
[0118]
(4)判断给定任务集的可调度性,无需考虑响应服务型任务,即依次计算τ
1,1
、τ
1,2
、τ
1,3
、τ
2,2
、τ
2,3
、τ
3,2
、τ
3,3
七个任务的可调度性。
[0119]
(5)首先计算任务τ
1,1
的最坏情况响应时间:
[0120]
a.由于τ
1,1
为优先级最高的任务,协调周期的初始相位与优先级最高的任务相同,且协调周期与该任务周期相同,故w0=rc
1,1
=1。
[0121][0122]
c.因为τ
1,1
是优先级最高的任务,故
[0123]
d.根据num
b
的计算方法,τ
1,1
是独立型任务,且没有优先级高于它的任务,故num1=1,num2=0,num3=0,应用a1中任务按照c的降序排序,e2=6。
[0124][0125][0126]
g.同c.中计算方法,
[0127]
h.同d.中计算方法,e2=6。
[0128][0129]
j.w2=w1,且w2≤d
1,1
=40,故τ
1,1
可调度。
[0130]
(6)计算任务τ
1,2
的最坏情况响应时间:
[0131]
a.w0=rc
1,2
t
h

c
sleep
=9 40

10=39。
[0132][0133]
c.优先级高于τ
1,2
的任务有:τ
1,1
、τ
2,3
,故
[0134]
d.根据num
b
的计算方法,τ
1,2
是请求服务型任务,故num1=num1 2=2,num2=num2 1=1,num3=0。
[0135]
e.优先级高于τ
1,2
的任务有独立型任务τ
1,1
,故,故
[0136]
f.优先级高于τ
1,2
的任务还有独立型任务τ
2,3
,故num1=3,=3,num3=0。
[0137]
g.每个应用中任务按照c的降序排序,a1中任务为τ
1,4
、τ
1,3
、τ
1,2
、τ
1,1
,num1=3,则最多累加三次,由于τ
1,2
为本任务,τ
1,1
优先级高于本任务,故只有τ
1,4
、τ
1,3
两个任务满足,e2(τ
1,2
)=e2(τ
1,2
) 6 5=11。
[0138]
h.a2中任务为τ
2,1
、τ
2,2
、τ
2,3
,num2=2,则最多累加两次,由于τ
2,1
共被两个任务唤醒,其中有一次为本任务唤醒,故仅有一次可计算,τ
2,3
优先级高于本任务,故只有τ
2,1
、τ
2,2
两个任务满足,e2(τ
1,2
)=e2(τ
1,2
) 5 5=21。
[0139]
i.a3中任务为τ
3,3
、τ
3,2
、τ
3,1
,num3=0,则最多累加零次,e2(τ
1,2
)=21。
[0140][0141][0142]
l.同c.中计算方法,
[0143]
m.同d

i.中计算方法,e2(τ
1,2
)=21。
[0144][0145][0146]
p.同c.中计算方法,
[0147]
q.同d

i.中计算方法,e2(τ
1,2
)=21。
[0148][0149][0150]
t.同c.中计算方法,
[0151]
u.同d

i.中计算方法,e2(τ
1,2
)=21。
[0152][0153]
w.w4=w3,且w4≤d
1,2
=105,故τ
1,2
可调度。
[0154]
(7)计算任务τ
1,3
的最坏情况响应时间:
[0155]
a.同(6)中计算方法,w0=rc
1,3
t
h

c
sleep
=35。
[0156][0157][0158][0159][0160][0161][0162]
h.w6=w5,且w6≤d
1,3
=154,故τ
1,3
可调度。
[0163]
(8)计算任务τ
2,2
的最坏情况响应时间:
[0164]
a.同(6)中计算方法,w0=rc
2,2
t
h

c
sleep
=43。
[0165][0166][0167][0168][0169][0170][0171]
h.w6=w5,且w6≤d
2,2
=205,故τ
2,2
可调度。
[0172]
(9)计算任务τ
2,3
的最坏情况响应时间:
[0173]
a.同(6)中计算方法,w0=rc
2,3
t
h

c
sleep
=34。
[0174][0175][0176][0177]
e.w3=w2,且w3≤d
2,3
=85,故τ
2,3
可调度。(10)计算任务τ
3,2
的最坏情况响应时间:
[0178]
a.同(6)中计算方法,w0=rc
3,2
t
h

c
sleep
=34。
[0179][0180][0181][0182][0183]
f.w4=w3,且w4≤d
3,2
=134,故τ
3,2
可调度。
[0184]
(11)计算任务τ
3,3
的最坏情况响应时间:
[0185]
a.同(6)中计算方法,w0=rc
3,3
t
h

c
sleep
=42。
[0186][0187][0188][0189][0190][0191][0192]
h.w6=w5,且w6≤d
3,3
=140,故τ
3,3
可调度。
[0193]
(12)根据(5)

(11)计算结果可得该任务集可被调度,离线计算过程完毕。
[0194]
调度流程如下所示:
[0195]
(1)在时刻0,应用a1中有τ
1,1
、τ
1,2
和τ
1,3
三个任务,根据任务优先级计算方法,三个任务优先级分别为205、125和64,根据应用优先级计算方法a1应用优先级为205。a2应用中有τ
2,2
和τ
2,3
两个任务,根据任务优先级计算方法,两个任务优先级分别为1和150,根据应用优先级计算方法应用a2优先级为150。应用a3中有τ
3,2
和τ
3,3
两个任务,根据任务优先级计算方法,两个任务优先级分别为89和79,根据应用优先级计算方法应用a3优先级为89。此时应用优先级顺序为:
[0196]
应用a1>应用a2>应用a3[0197]
选择优先级最高的应用a1占有处理器并执行其中的任务,按照任务优先级由大到小,应用a1执行任务τ
1,1

[0198]
(2)根据上述调度方法,第一个协调周期内,即前40内的调度过程如表5所示。
[0199]
(3)在时刻40,新的协调周期开始,节能应用a
sleep
的任务τ
sleep
到达,a
sleep
优先级最高,抢占处理器,并执行节能任务,处理器进入睡眠状态,并于时刻50恢复工作状态。
[0200]
表5 0—40内的任务调度过程
[0201]
开始时间结束时间任务名称开始时间结束时间任务名称01τ
1,1
1821τ
3,3
15τ
2,3
2126τ
2,1
57τ
1,2
2630τ
3,3
712τ
2,1
3035τ
1,3
1214τ
1,2
3537τ
2,2
1418τ
3,2
3740τ
1,4
[0202]
(4)任务τ
1,1
于时刻40第二次到来,并当处理器完成睡眠任务后加入任务队列,在时刻50,系统中存在的任务有:
[0203]
a.应用a1就绪任务队列有任务τ
1,1
优先级为205,正在执行的有响应服务型任务τ
1,4
优先级为1,根据应用优先级规则,应用a1优先级为205;
[0204]
b.应用a2就绪任务队列为空,无正在执行的任务,挂起任务队列有任务τ
2,2
,根据应用优先级规则,应用a2优先级为0;
[0205]
c.应用a3无任何任务,根据应用优先级规则,应用a3优先级为0;
[0206]
按照应用优先级顺序,选择应用a1占有处理器并执行未执行完的任务τ
1,4

[0207]
(5)根据上述调度方法,第二个协调周期内,即40

80内的调度过程如表6所示。
[0208]
表6 40—80内的任务调度过程
[0209][0210]
53时刻,任务τ
1,4
完成并唤醒任务τ
2,2
将任务τ
2,2
从挂起队列转至就绪队列,此时三个应用的优先级分别为:205、1、0,故根据优先级调度执行应用a1的任务τ
1,1

[0211]
59时刻,系统中所有任务都已完成,三个应用优先级都为0,则将处理器转至睡眠状态并直到下个协调周期初始的节能任务执行完毕后恢复工作状态。
[0212]
(6)根据上述调度方法,第三个协调周期内,即80

120内的调度过程如下表7所示:
[0213]
表7 80—120内的任务调度过程
[0214][0215]
95时刻,系统中所有任务都已完成,则将处理器转至睡眠状态并直到下个协调周期初始的节能任务执行完毕后恢复工作状态。
[0216]
105时刻任务τ
1,2
到达,但是由于处理器不处于工作状态,故根据算法规则,任务τ
1,2
加入等待队列直到下一个协调周期才可进入就绪队列。
[0217]
(7)根据上述调度方法,第四个协调周期内,即120

160内的调度过程如下表8所示:
[0218]
表8 120—160内的任务调度过程
[0219][0220]
在120时刻,新的协调周期开始,任务τ
1,2
加入就绪队列,任务τ
1,1
到达并加入就绪队列。
[0221]
在134时刻,任务τ
3,2
到达,由于处理器正处于工作状态,故无需等到下一个协调周期即可加入就绪队列。
[0222]
(8)根据上述调度方法,第五个协调周期内,即160

200内的调度过程如下表9所示:
[0223]
表9 160—200内的任务调度过程
[0224][0225]
时刻170,应用a1中就绪队列中有任务τ
1,1
,正在执行的有任务τ
1,3
,应用a2中有任务τ
2,3
,τ
1,1
优先级为205,τ
1,3
优先级为64,τ
2,3
优先级为89,根据应用优先级设置a1为205,a2为89,优先执行应用a1中正在执行的任务τ
1,3
。故虽然τ
2,3
优先级高于τ
1,3
,但是由于需要等待更高优先级的任务τ
1,1
完成,所以也会由优先级更低的任务τ
1,3
抢先执行。
[0226]
(9)根据以上所述规则继续执行。
[0227]
实验数据:每组实验设置包含3

10个应用,每个应用包含3

5个任务。每个任务的参数随机生成,具体方法如表10所示。
[0228]
表10 实验参数设置
[0229][0230]
任务周期服从均匀分布;执行时间是服从参数为的指数分布,通过调节λ的大小来生成不同的系统负载;任务相对截止时间被设置为与任务周期相等。
[0231]
实验中,任务类型按照比例随机分配,请求服务型任务对应的响应服务型任务根据任务类型随机分配;真实执行时间根据生成的任务类型和对应的响应服务任务等进行计算。
[0232]
独立型任务利用率不得超过25%,请求服务型任务与所需的响应服务型任务的利用率之不得超过25%。若超过上述利用率限制则重新生成任务。本节中的所有实验结果均是1000次随机实验的平均值。
[0233]
根据上述实验设置方法,与传统rm算法以及去掉节能任务设置的hrhs调度算法进行比较实验,包括睡眠优化利用率模拟实验和cpu平均能耗模拟实验。
[0234]
在睡眠优化利用率模拟实验中,测试了cpu利用率以及最小睡眠时长对处理器睡眠优化利用率的影响。在实验中,系统随机包含3

5个应用,每个应用随机包含3到5个任务。独立型任务与请求服务型任务比值为1:1。
[0235]
实验结果如图6所示,(a)、(b)两图分别为睡眠时长为10和20时的睡眠优化利用率表现。根据睡眠优化利用率的定义可知,睡眠优化利用率越大,系统节能效果表现越好。如图所示,不论睡眠时长如何设置,实验结果均为pa

hrhs睡眠优化利用率最高,hrhs次之,分层rm调度最差。pa

hrhs算法的睡眠优化利用率始终为1,表明pa

hrhs算法可以有效的聚集处理器空闲时间。随着系统cpu利用率的提高,由于传统实时调度rm算法的空闲时间片更为零碎,因此pa

hrhs睡眠优化利用率的优势越来越明显。并且,比较图6的(a)(b)两图,还可以看出最小睡眠时间更长时,pa

hrhs睡眠优化利用率的优势更加明显。
[0236]
在cpu平均能耗模拟实验中,以atmega1281处理器参数为实验参数,活动模式功耗为23mw,空闲模式功耗为6.6mw,睡眠模式功耗为16μw,c
sleep
参数为15。
[0237]
实验计算结果如图7所示,(a)中系统包含5个应用,每个应用3个任务,独立型任务和请求服务型任务数量比值为1:1。实验结果表明在10%利用率时,pa

hrhs平均能耗低于分层rm调度58%。随着cpu利用率增加,该节能幅度略有降低,但是依然保持在较高水平。
[0238]
图7的(b)

(d)分别修改了实验中应用的数量、应用中任务的数量和不同任务类型的任务数量比,对比实验该算法在不同情况下的节能效果。其中图7的(b)中系统包含8个应用,每个应用3个任务,独立型任务和请求服务型任务数量1:1。图7的(c)中系统包含5个应用,每个应用5个任务,独立型任务和请求服务型任务数量1:1。图7的(d)中系统包含5个应用,每个应用3个任务,独立型任务和请求服务型任务数量1:2。
[0239]
实验结果显示在以上系统中,pa

hrhs的平均能耗始终明显低于hrhs和rm。当cpu利用率提高时,一段时间内系统的非工作时间与工作时间的比值降低,可转换为睡眠状态的非工作时间也相应减少,显而易见,当系统利用率为1时,系统没有非工作时间,则无需降低静态泄露功率。因此,当cpu利用率提高时,pa

hrhs的节能效果也随之减弱。
[0240]
对比图7的(a)和图7的(b)、(c)、(d),可以看出,对于相同利用率的情况下,由于应用数量、任务数量以及任务类型数量比例仅对调度过程有一定的影响,但对工作时长不会造成较大影响,故在分层调度的多种不同情况下pa

hrhs都可以表现出较好的节能效果,有较好的鲁棒性。
[0241]
基于同一发明构思,本发明的另一实施例提供能量感知的分层任务调度装置,是一种电子装置(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。
[0242]
基于同一发明构思,本发明的另一实施例提供一种计算机可读存储介质(如rom/ram、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。
[0243]
可以理解的是,上述实施例仅为例示性说明本发明的原理及其功效,而非用于限制本发明的范围。任何熟于此技术的本领域技术人员均可在不违背本发明的技术原理及精神下,对实施例作修改与变化。本发明的保护范围应以权利要求书所述为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜