作者简介:张忆文(1988-),男,博士研究生.研究方向:低功耗调度.E-mail:zywsy2010@126.com
针对包括周期任务和非周期任务的混合任务集,利用动态电压调节(DVS)技术,提出一种混合任务低功耗调度算法。该算法包括两个阶段,第一阶段计算出离线状态的静态速度;第二阶段通过回收空闲时间调节任务的运行速度。仿真实验表明:本文算法比现有的混合任务低功耗调度算法节约27.35%的能耗。
Dynamic Voltage Scaling (DVS) is an effective low-power technology. In this paper, a low-power scheduling algorithm is proposed for mixed task in real-time system. In this algorithm the mixed task set with both periodic tasks and aperiodic tasks is considered using the DVS technology. The algorithm is composed of two phases: in the first phase the static speed is computed off-line; in the second phase the running speed of the task is adjusted based on the slack time. Simulation results show that the proposed algorithm can reduce the average energy consumption by 27.35% over the existing mix task DVS algorithms.
动态电压调节(DVS)技术是一种有效的低功耗和能耗优化技术。近年来, 研究者将实时调度算法和DVS技术结合起来, 取得了丰富的研究成果[1, 2, 3, 4, 5, 6, 7]。文献[1]提出了针对周期任务的DVS算法, 该算法通过回收提早完成任务的空闲时间, 调节处理器运行速度降低能耗, 但该算法忽略了处理器的静态功耗。文献[2]拓展了文献[1]的方法, 既考虑处理器的动态功耗, 又考虑处理器的静态功耗。文献[3]考虑了处理器通用的功耗模型, 利用延迟调度的方法和DVS技术, 提出一种针对周期任务的低功耗调度算法。文献[4]提出了针对非周期任务的低功耗调度算法。该算法不需要事先知道任务的信息。最后, 文献[5]提出了面向嵌入式实时应用的算法, 该算法结合了DVS技术和DPM技术。
针对混合任务的低功耗调度, 也取得了丰富的研究成果。文献[8]提出了混合任务的在线低功耗调度算法, 该算法不需要事先知道任务的任何属性, 但该算法的节能效果差。文献[9]对其进行拓展, 使得该方法能够适用于处理器提供离散频率的情形。更进一步, 文献[10]对文献[8]中算法进行细致认真的研究, 提出了四种改进方法, 分别是引入辅助队列、分析空闲时间、任务划分和反馈方法。文献[11]分别利用可延迟服务器、偶发服务器调度混合任务, 提出了在线混合任务低功耗调度算法。该算法分为两个阶段, 第一阶段计算最佳的静态速度, 第二阶段分析空闲时间, 调节任务的运行速度。文献[12]提出了总带宽服务器混合任务低功耗调度算法, 并且首次提出以能耗与非周期任务平均响应时间的乘积作为性能指标衡量混合任务低功耗调度算法。上述的算法仅考虑处理器的动态功耗, 而忽略了处理器的静态功耗。
本文考虑处理器的通用功耗模型, 即既考虑处理器的动态功耗, 又考虑处理器的静态功耗, 并且使用关键速度[13]降低系统能耗。在能耗和响应时间的权衡中, 和以往的算法不同, 为了不使非周期任务的平均响应时间过大, 非周期任务一直保持离线状态计算的速度运行。提出的混合任务低功耗调度算法, 利用总带宽服务器调度混合任务。最后进行了仿真实验证明了本文算法的有效性。
实时系统混合任务包括时间触发的周期任务和事件触发的非周期任务。周期任务以定长的时间触发, 它有截止期限的限制, 错过截止期限会带来灾难性的后果; 而非周期任务是事件触发到达的时间不确定。
周期任务定义为
非周期任务定义为
使用EDF(Earliest deadline first)算法调度任务集, 根据文献[14], 假设周期任务最坏情况下的执行时间是事先给出的, 而非周期任务的执行时间要等到任务到达时才能确定。同时假设周期任务是相互独立的, 并且都在时刻
DVS处理器的功耗可以分为两个部分:与速度相关的功耗
式中:
短路功耗
式中:
漏电流功耗
式中:
总功耗
处理器存在3个状态:工作状态(active)、空闲状态(idle)、休眠状态(sleep)。当处理器处于空闲状态时, 功耗主要来自与速度无关的漏电流功耗, 关闭处理器可以减少功耗。处理器处于工作状态时, 降低处理器的速度可以降低处理器的动态功耗, 但处理器速度的降低会延长任务的执行时间, 系统的静态功耗会增加。为了更有效地降低系统层次的能耗, 文献[15]提出了关键速度, 也就是系统能耗最低的运行速度。关键速度
假设处理器提供连续的频率和电压, 对处理器的速度进行归一化, 归一化的处理器速度范围为
文献[14]提出的总带宽服务器是一个简单易实现且能够使非周期任务响应时间缩短的调度算法。根据总带宽服务器的规则, 非周期任务与周期任务根据EDF算法一起调度。非周期任务的截止期限
假设
对于周期任务, 运行速度越低, 其能耗也越低。低的运行速度, 会延长任务的执行时间, 这样会增加非周期任务的响应时间, 因此需要在低能耗和低响应时间之间进行权衡。为了充分利用静态的空闲时间, 同时也不至于过高地增加非周期任务的响应时间, 离线状态的速度设置为
定理1 当
证明 当
由于任务实际的执行时间往往低于估计的最坏情况下的执行时间, 可以通过回收空闲时间, 调节处理器的运行速度, 降低系统能耗。在介绍算法前先引入几个概念。
该算法有两个目标:一个是低能耗, 另外一个是低响应时间, 但这两个目标有冲突, 需要在两者之间进行权衡。为了不使非周期任务的响应时间过大, 非周期任务一直保持离线状态计算的速度
由于非周期任务以速度
给出MTLPSA算法步骤如下:
(1)输入:当前调度的周期任务
(2)输出:
(3)计算离线状态的速度
(4)任务
(5)当有新的事件发生(任务到达或完成),
(6)假如任务
(7)假如任务
(8)计算任务的空闲时间
(9)计算任务
(10)假如
任务
考虑有两个周期任务
从图1可看出, 任务
为了评价MTLPSA算法, 提出两个性能指标:能耗(Energy), 能耗与非周期任务的平均响应时间的乘积(Energy * Average response time)。实验使用的硬件平台为Pentium(R) Dual-core CPU 2.20 GHz、2 GB的RAM的个人计算机。利用C语言实现一个模拟混合任务集调度的仿真器, 该仿真器基于EDF调度策略, 使用Intel XScale PXA270 微处理器。该处理器提供的速度为{0.15, 0.4, 0.6, 0.8, 1.0}。本文假设处理器提供的速度为[0.15, 1.0]。根据文献[16]该处理器的功耗模型可以近似为
这一部分设置非周期任务的负载
图2为服务器带宽对能耗的影响, 并且以NODVS算法的Energy为基准进行归一化。随着服务器带宽的增大, DFSA算法的能耗也随之增大, 这是因为带宽越大, DFSA算法的运行速度也就越大; MTLPSA算法的能耗也随之增大, 这是因为非周期任务的运行速度增大, 且周期任务离线的运行速度也增大。MTLPSA算法的能耗始终低于DFSA算法的能耗, MTLPSA算法和DFSA算法相比可以节约大约26.76%的能耗。
图3以NODVS算法的Energy* Average response time作为基准进行归一化。MTLPSA算法的Energy* Average response time始终低于DFSA算法的Energy * Average response time。经过计算MTLPSA算法的Energy * Average response time比DFSA算法的Energy * Average response time大约小11.57%。
设置总带宽服务器的带宽
图4为非周期任务负载对能耗的影响, 并且以NODVS算法的Energy为基准进行归一化。从图4可以看出MTLPSA算法的Energy始终低于DFSA算法的Energy。非周期任务负载对DFSA算法的能耗影响不大, 这主要是因为服务器带宽设定为固定值, DFSA算法的周期任务的运行速度始终保持不变。经过计算可知MTLPSA算法比DFSA算法平均节约27.35%的Energy。
图5为非周期任务的负载对Energy * Average response time的影响, 并且以NODVS算法的Energy * Average response time作为基准进行归一化。MTLPSA算法和DFSA算法的Energy * Average response time高度依赖于非周期任务的负载, 且上下波动很大。MTLPSA算法的Energy * Average response time始终低于DFSA算法Energy * Average response time。经过计算MTLPSA算法的Energy * Average response time比DFSA算法小大约18.31%, 即MTLPSA算法更具有优势。
针对混合任务系统, 提出了混合任务低功耗调度算法MTLPSA。该算法采用通用的功耗模型, 即包含动态功耗和静态功耗。为了更好地评价算法的性能, 提出了能耗与非周期任务的平均响应时间作为性能指标, 仿真实验表明, MTLPSA算法比DFSA算法节约大约27.35%的能耗, 本文算法比现有的混合任务的低功耗算法更具有优势。
The authors have declared that no competing interests exist.