CN103164274B - 一种基于温度约束的固定优先级实时任务静态调度方法 - Google Patents

一种基于温度约束的固定优先级实时任务静态调度方法 Download PDF

Info

Publication number
CN103164274B
CN103164274B CN201310052875.1A CN201310052875A CN103164274B CN 103164274 B CN103164274 B CN 103164274B CN 201310052875 A CN201310052875 A CN 201310052875A CN 103164274 B CN103164274 B CN 103164274B
Authority
CN
China
Prior art keywords
task
treater
temperature
real
restraint
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.)
Expired - Fee Related
Application number
CN201310052875.1A
Other languages
English (en)
Other versions
CN103164274A (zh
Inventor
魏同权
陈靓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
East China Normal University
Original Assignee
East China Normal University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by East China Normal University filed Critical East China Normal University
Priority to CN201310052875.1A priority Critical patent/CN103164274B/zh
Publication of CN103164274A publication Critical patent/CN103164274A/zh
Application granted granted Critical
Publication of CN103164274B publication Critical patent/CN103164274B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Feedback Control In General (AREA)

Abstract

本发明公开了一种基于温度约束的固定优先级实时任务静态调度方法,包括:获取待分配任务及待分配任务的处理器的参数;对任务进行模糊温度约束检测与精确温度约束检测,将任务分配至处理器中。本发明综合考虑任务的自身特性以及处理器功耗、温度特性,寻求最优的任务分配方案,使得分配后的系统所需总能耗最小。本发明适用于电池容量较低的,温度条件严苛的多处理器实时系统。

Description

一种基于温度约束的固定优先级实时任务静态调度方法
技术领域
本发明涉及多处理器实时系统的调度技术,尤其涉及一种基于温度约束的固定优先级实时任务静态调度方法。
背景技术
所谓的实时系统是指能够在指定或者确定的时间内完成系统功能并做出响应的系统。它具有一定的时间约束,即任务要在指定的时限之前完成操作。近年来,嵌入式实时系统,因其具有较高的可靠性,被广泛应用于航空航天、军事、核工业、信息采集以及环境勘测等领域。为了使储能相对低的嵌入式系统能提供更优质的服务,学术界以及产业界在嵌入式实时系统能耗以及温度方面进行了深入的研究。
在嵌入式实时系统的能量管理方面,普遍被采用和研究方法主要包括动态电压调节技术以及动态电源管理技术。而在温度管理上则主要应用动态的温度管理技术。虽然这些技术都被广泛研究也行之有效,但它们都对嵌入式系统的硬件配置有较高的要求。一方面,动态的能量管理要求系统的处理器支持多种执行频率,并且支持动态的频率切换功能;另一方面,动态的温度管理还需要系统有内置的温度传感器来实时的获取当前的温度情况。
本发明针对更加普遍的嵌入式多处理器的提出静态的任务调度方法,不仅能够静态的保证系统的温度安全,还能最小化系统的能耗。本发明所提出的方法并不需要处理器支持动态的频率调节功能,亦不需要增置额外的温度监控设备。
GangQuan等人提出了温度约束下的可行性检测技术,该技术可以应用于固定优先级实时任务的温度安全检测。这项技术推进了温度约束下静态实时任务调度的研究进步。然而,该方法需要通过对一个超周期内所有的非安全区间进行温度可行性检查,计算复杂度很高。此外,在温度可感知的静态调度方面,有一些研究通过安排任务执行的顺序来降低处理器的温度峰值。这些研究提出的冷热间隔执行任务的策略来降低处理器峰值的目的。但现有研究大多是基于等周期任务模型。对于普通的非等周期模型还没有深入的研究应用。
发明内容
本发明克服了现有技术中对于超周期的检测计算复杂和温度感知的静态调度未涉及非等周期模型等缺陷,提出了一种基于温度约束的固定优先级实时任务静态调度方法。
本发明提出了一种基于温度约束的固定优先级实时任务静态调度方法,包括以下步骤:
步骤一:获取所有待分配的任务和所有待分配任务的处理器,并获取所述任务的能耗贡献值Metric与所述处理器的能耗贡献值PeMetric;
步骤二:对于一个处理器,选取一个任务进行模糊温度约束检测;若不通过,则不分配所述任务至所述处理器上并选取下一个任务重新执行步骤二;若通过,则将所述任务分配至所述处理器上,并选取下一个待分配的任务重新执行步骤二;直至检测所有待分配的任务后,执行步骤三;
步骤三:对所述处理器上的任务进行精确温度约束检测;若通过,则执行步骤四;否则,删除所述处理器中能耗贡献值Metric最小的任务并重新执行步骤三;
步骤四:若所有待分配的任务均已分配至处理器,则执行步骤五;若还存在待分配的任务未分配至处理器,判断当前分配任务的处理器是否为最后一个处理器;若不是,则选用下一个处理器并重新执行所述步骤二;否则,终止所述静态调度;
步骤五:保存所述静态调度的方案,并根据所述方案实施调度。
其中,步骤一中进一步包括:将所述按处理器的能耗贡献值PeMetric从低至高排序。
其中,执行所述步骤二前进一步包括:将所述任务根据任务的能耗贡献值Metric从高至低排序;选取第一个处理器并开始执行所述步骤二。
其中,步骤二中所述模糊温度约束检测包括以下步骤:
步骤A1:将一个任务预分配至当前的处理器的任务集中;
步骤A2:对所述处理器的任务集进行实时约束检测,测量所述任务集中每个任务的响应时间;若所述响应时间小于延迟阈值,则执行步骤A3;否则,所述模糊温度约束检测结果为不通过;
步骤A3:构造一个调度序列,对所述处理器上第一个超周期内的调度序列进行模糊温度约束下的温度可行性检测,所述超周期表示所述处理器中所有任务的周期的最小公倍数;若所述调度序列满足所述温度可行性检测,则所述模糊温度约束检测结果为通过;否则,所述模糊温度约束检测结果为不通过。
其中,步骤三中所述精确温度约束检测包括以下步骤:
步骤B1:对所述处理器的任务集进行空闲时间分配;
步骤B2:构造一个调度序列,对所述处理器上第一个超周期内的调度序列进行精确温度约束下的温度可行性检测,所述超周期表示所述处理器中所有任务的周期的最小公倍数;若所述调度序列满足所述温度可行性检测,则所述精确温度约束检测结果为通过;否则,所述精确温度约束检测结果为不通过。
其中,所述调度序列如以下公式表示:
S ^ ( t ) = < [ st i , ed i ] , mode r , cf i > ;
式中,表示调度序列,[sti,edi]表示处理器执行区间,moder表示处理器的工作模式,cfi表示执行任务的电路活动因子,i表示任务的编号,r表示处理器的编号。
其中,对所述调度序列进行的所述温度可行性检测包括以下检测过程:
B(edi-sti)=Bi=(b-a*cfi*v(r))
Kj=exp(-B(ed0-sto)-…-B(edj-stj);
K=exp(-B(ed0-sto)-…-B(ed1-st1)
式中,B(edi-sti)表示第i个调度区间[sti,edi]的温度变化速度因子,Kj表示从第0个调度区间到第j个调度区间内的温度变化因子,st表示执行区间的起始端,ed表示执行区间的截止端,cfi表示执行任务的电路活动因子,0表示第一个超周期的起始端,l表示第一个超周期的截止端。
其中,所述调度序列经所述温度可行性检测后,当且仅当满足以下条件时,通过所述模糊温度约束检测:
0<K<1;T(L)≤Tmax(1-K);
且,在第一个超周期[0,L]内,区间[sti,edi]满足:
T ( ed i ) &le; T max - T ( L ) 1 - K * K j ;
其中, &ForAll; 0 &le; j &le; l , 有T(edi)≥T(edj);
式中,Tmax表示系统温度阈值,K表示一个超周期结束点的温度变化因子,j表示一个超周期内的温度峰值点所在的调度区间,st表示执行区间的起始端,ed表示执行区间的截止端,l表示第一个超周期的截止端。
其中,所述调度序列经所述温度可行性检测后,当且仅当满足以下条件时,满足所述精确温度约束检测:
0<K<1
T(L)≤Tmax(1-K)
在第一个超周期[0,L]内,对于任意区间[sti,edi]有:
T ( ed i ) &le; T max - T ( L ) 1 - K * K j
式中,Tmax表示系统温度阈值,K表示一个超周期结束点的温度变化因子,j表示在一个超级周期内的任意执行区间的下标号,st表示执行区间的起始端,ed表示执行区间的截止端,L表示第一个超周期的截止端。
其中,所述空闲时间分配用于构造混合任务集,降低处理器执行任务的温度峰值,其包括以下步骤:
步骤C1:根据所述处理器和所述处理器上分配的任务,构成所述混合任务集;
步骤C2:计算所述混合任务集中各每一个混合任务的稳定温度,并根据稳定温度判断所述每一个混合任务属于热任务或冷任务;
步骤C3:计算所述混合任务集的理想均衡温度,选取所述混合任务集中周期最长的任务,判断所述任务是否为热任务;若是,执行步骤C4,否则执行步骤C8;
步骤C4:计算当前混合任务集的理想空闲时间;
步骤C5:计算当前混合任务的最大可用空闲时间;
步骤C6:计算所述当前混合任务的实际空闲时间;
步骤C7:更新所述当前混合任务的执行长度;
步骤C8:判断当前混合任务是否为所述混合任务集中最后一个混合任务;若是,则结束所述空闲时间分配,否则选取下一个混合任务并重新执行所述步骤C4。
本发明中提出一种模糊稳定检测机制。它只对一个超周期内温度最高的不安全区间做温度安全检查。通过这种模糊温度约束下的检测可以检测出大部分不符合温度要求的任务集,大大加快的任务的分配过程。与此同时,本发明考虑到优先级固定的实时系统固有的约束,提出一个温度可感知的空闲时间分配技术,将冷热间隔的优越性应用与普通周期任务调度。更具普遍应用价值。
附图说明
图1为基于温度约束的固定优先级实时任务静态调度方法的流程图。
图2为模糊温度约束下的静态调度的流程图。
图3为精确温度约束下的静态调度的流程图。
图4为空闲时间分配的流程图。
具体实施方式
结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
实时系统任务是一种具有固定优先级的实时周期任务。任务一般可以表示为一个三元组,如τi=(ai,ci,pi).其中pi是周期,di是时限,ci是τi最坏情况下执行的时钟周期(cycles)数。假设所有的任务的周期等于时限,即pi=di与此同时,每个任务都有优先级,周期越小的任务,优先级越高。优先级高的任务可以抢占正在执行的低优先级任务的处理器以及其他资源。所有的任务在系统运行的一开始就全部就绪。
本发明应用于一种多处理器模型,在该模型下,每个处理器只支持一种工作频率,不同的处理器的工作频率可以相同也可以不同。假设,系统有R个处理器:PE1,PE2,...,PER,每个处理器支持的频率记作:f(1),f(2),...,f(R);每个处理器支持的工作电压记作:v(1),v(2),...,v(R)。
本发明基于一种被广泛采用的能量模型。处理器PEr的能耗由两部分构成,一部分是系统的漏电功耗Pst(r)=C1*v(r)+C2Tamb;另一部分是系统的动态功耗Pdy=C0*v(r)3。系统的总功耗可以表示为:P(r)=Pdy(r)+Pst(r)=C0*v(r)3+C1*v(r)+C2Tamb(1)。
当任务τi在处理器PEr上运行是,产生的能耗还与任务本身的一个属性相关,一般被称作电路活动因子cfi(circuitactivityfactor)。任务的活动特性与能耗的关系可表述为:
P(i,r)=cfi*P(r)(2)。
本发明基于标准的RC温度模型。该模型可表述为如下等式:
RC dT ( t ) dt = RP ( t ) + ( T ( t ) - T amb ) - - - ( 3 ) .
其中,T(t)是在时刻t,处理器芯片的温度。Tamb是外部环境温度。P(t)是时刻t,处理器功耗。R,C是芯片的热阻和热容。
本发明的目标是设计静态的实时任务分配方法,在满足系统温度约束的前提下,最小化系统功耗。的系统功耗是指在一个超级周期L内系统平均功耗。所谓的超级周期实际上是分配在同一个处理器上的所有任务周期的最小公倍数(LowestCommonMultiple,LCM)。
L=LCM(p1,p2,...,pK)(4)
本发明为目标问题作建模工作,假设有任务集Γ={τ1,τ2,...,τN}要分配到处理器PE1,PE2,...,PER上。分配后将产生静态映射矩阵MR×N
设:Ptot为所有处理器的总功耗,那么它可以表示为:
P tot = &Sigma; r = 1 r = R P LCM ( r )
PLCM(r)表示处理器r上,一个超级周期内,任务的平均功耗为,那么:
P LCM ( r ) = &Sigma; i = 1 i = K [ P ( r , i ) * c i f r ] * L ( r ) p i + L ( r ) = P ( r ) f ( r ) * &Sigma; i = 1 i = K ( cf i * c i / p i ) .
那么,目标函数可以表示为,
P tot = &Sigma; r = 1 r = R P ( r ) f ( r ) &times; &Sigma; i = 1 i = N M r , i &times; ( cf i &times; c i / T i ) - - - ( 5 )
为了寻求可行的任务分配方案,使得在满足任务实时约束条件下,所有处理器总能耗最小,本发明为目标问题建立如下模型:
求解最优的映射矩阵M,使得在满足条件一、二的情况下,目标式 P tot = &Sigma; r = 1 r = R P ( r ) f ( r ) &times; &Sigma; i = 1 i = N M r , i &times; ( cf i &times; c i / T i ) 具有最小值。
条件一、对于任意的τi,1≤i≤N,必须满足Rt(i)<Di
其中,Rt(i)是τi的响应时间:
条件二、保证处理器在运行过程中的任意时刻温度均小于系统阈值Tmax
当完成系统任务、能耗、温度模型的建立以及目标问题的建模之后,本发明通过以下步骤解决,如图1所示:
步骤一:获取所有待分配的任务和所有待分配任务的处理器,并获取任务的能耗贡献值Metric与处理器的能耗贡献值PeMetric。其中,进一步包括:将按处理器的能耗贡献值PeMetric从低至高排序。
计算任务的能耗贡献值Metric值: Metric k = cf k &times; c k p k ;
其中,Metrick表示τk的对能耗的贡献值。cfk是任务τk的电路活动因子(0<cfk≤1)。pk是任务的释放周期。ck是τk在每个周期需要完成的时钟周期(cycles)个数。
计算所有处理器的能耗贡献值PeMetricr
PeMetric r = P ( r ) f ( r ) = C 0 * v ( r ) 3 + C 1 * v ( r ) + C 2 T amb f ( r ) ;
其中,PeMetricr是处理器PEr对能耗的贡献值。C0,C1,C2是与处理器功耗相关的常系数。v(r)表示PEr所支持的工作电压,而f(r)是PEr所支持的工作频率。Tamb是系统工作的外部环境温度(室温)。根据目标公式(5)可得:
P tot = &Sigma; r = 1 r = R PeMetric r &Sigma; i = 1 i = N M r , i &times; metric i - - - ( 7 ) .
本发明中提出静态任务分配方法,其主要思想如下:在满足温度和实时约束的条件下,尽可能将能耗贡献值Metrici大的任务分配到能耗贡献值PeMetricr小的处理器上。因此,首先需要对处理器按照其能耗贡献值PeMetricr进行从小到大的排序。将处理器按照其能耗贡献值PeMetricr从低到高排序,PE1,PE2,...,PER,使得:PeMetric1≤PeMetric2≤…≤PeMetricR
初始化相关标记量:处理器下标r初始化为1;待分配任务集合Γ={τ1,...,τN}为系统待分配的所有任务。例如,待分配任务集Γ={τ1,τ2,...τN},N=29。任务属性如表1所示:
表1待分配任务集的任务属性表
ID Cycles Period Cf
1 2000 50 0.96
2 5000 50 0.73
3 5000 70 0.81
4 6000 40 0.93
5 4000 20 0.97
6 5000 40 0.9
7 16000 90 0.94
8 16000 90 0.87
9 17000 100 0.87
10 6000 90 0.97
11 3000 30 0.85
12 1000 10 0.77
13 4000 20 0.9
14 2000 30 0.77
15 10000 50 0.77
16 13000 70 0.32
17 1000 10 0.24
18 12000 60 0.39
19 14000 90 0.34
20 3000 60 0.22
21 4000 50 0.23
22 2000 70 0.2
23 7000 70 0.23
24 10000 50 0.25
25 2000 60 0.28
26 6000 30 0.29
27 7000 50 0.24
28 1000 40 0.31
29 8000 80 0.24
待分配的处理器集PE1,...,PER。处理器参数如表2所示:
表2处理器参数
1 2 3 4 5 6
Vdd(V) 0.85 0.90 0.95 1.00 1.05 1.10
c0 7.3249 8.6126 10.238 12.315 14.998 18.497
C1 0.1666 0.1754 0.1846 0.194 0.2043 0.2149
c2 15.0 15.0 15.0 15.0 15.0 15.0
frequency 801.0 829.1 855.3 879.7 902.7 1000
其中,R=6;处理器的电容值C=8.415mJ/K;热阻值;R=1.83℃/W;Tmax=85℃,Tamb=25℃
计算任务能耗贡献值Metric: Metric k = cf k &times; c k p k . 其中,Metrick表示τk的对能耗的贡献值。cfk是任务τk的电路活动因子(0<cfk≤1)。Pk是任务的释放周期。ck是τk在每个周期需要完成的时钟周期(cycles)个数。计算后各任务的能耗贡献值Metric及属性如表3所示:
表3任务的能耗贡献值及属性表
Index Id Cycles Period Cf Metri
1 1 2000 50 0.96 38.4
2 2 5000 50 0.73 73
3 3 5000 70 0.81 57.8571
4 4 6000 40 0.93 139.5
5 5 4000 20 0.97 194
6 6 5000 40 0.9 112.5
7 7 16000 90 0.94 167.111
8 8 16000 90 0.87 154.667
9 9 17000 100 0.87 147.9
10 10 6000 90 0.97 64.6667
11 11 3000 30 0.85 85
12 12 1000 10 0.77 77
13 13 4000 20 0.9 180
14 14 2000 30 0.77 51.3333
15 15 10000 50 0.77 154
16 16 13000 70 0.32 59.4286
17 17 1000 10 0.24 24
18 18 12000 60 0.39 78
19 19 14000 90 0.34 52.8889
20 20 3000 60 0.22 117 -->
21 21 4000 50 0.23 18.4
22 22 2000 70 0.2 5.71429
23 23 7000 70 0.23 23
24 24 10000 50 0.25 50
25 25 2000 60 0.28 9.33333
26 26 6000 30 0.29 58
27 27 7000 50 0.24 33.6
28 28 1000 40 0.31 7.75
29 29 8000 80 0.24 24
计算所有处理器的能耗贡献值PeMetricr
PeMetric r = P ( r ) f ( r ) = C 0 * v ( r ) 3 + C 1 *v ( r ) + C 2 T amb f ( r ) ;
其中,PeMetricr是处理器PEr对能耗的贡献值。C0,C1,C2是与处理器功耗相关的常系数。v(r)表示PEr所支持的工作电压,而f(r)是PEr所支持的工作频率。Tamb是系统工作的外部环境温度(室温)。
将处理器按照其能耗贡献值从低到高排序,PE1,PE2,...,PER,使得PeMetric1≤PeMetric2≤…≤PeMetricR
在本实施例中,处理器的能耗贡献值以及顺序如表4所示:
表4处理器的能耗贡献值与顺序表
PE1 PE1 PE3 PE4 PE5 PE6
Vdd(V) 0.85 0.90 0.95 1.00 1.05 1.10
c0 7.3249 8.6126 10.238 12.315 14.998 18.497
c1 0.1666 0.1754 0.1846 0.194 0.2043 0.2149
c2 15.0 15.0 15.0 15.0 15.0 15.0
frequency 801.0 829.1 855.3 879.7 902.7 1000
PeMetric 23.69 27.30 31.53 36.56 42.93 46.22
初始化相关标记量:处理器下标初始化为r=1;待分配任务集合Γ={τ1,...,τ20}为系统待分配的所有任务。
步骤二:对于一个处理器,选取一个任务进行模糊温度约束检测;若不通过,则不分配任务并选取下一个任务重新执行步骤二;若通过,则将任务分配至处理器上,并选取下一个待分配的任务重新执行步骤二;直至检测所有待分配的任务后,执行步骤三。
在执行步骤二之前先对待分配的任务进行排序处理,对待分配任务集Γ按照任务的Metrlc从大到小排序。置置任务下标i=1。那么一开始τi=τ1′。在本示例中,排序后的任务集Γ如下表5所示:
表5排序后的任务集顺序表
Index Id Cycles Period Cf Metri
1 5 4000 20 0.97 1948 -->
2 13 4000 20 0.9 180
3 7 16000 90 0.94 167.111
4 8 16000 90 0.87 154.667
5 15 10000 50 0.77 154
6 9 17000 100 0.87 147.9
7 4 6000 40 0.93 139.5
8 6 5000 40 0.9 112.5
9 11 3000 30 0.85 85
10 18 12000 60 0.39 78
11 12 1000 10 0.77 77
12 2 5000 50 0.73 73
13 10 6000 90 0.97 64.6667
14 16 13000 70 0.32 59.4286
15 3 5000 70 0.81 57.8571
16 26 6000 30 0.29 58
17 19 14000 90 0.34 52.8889
18 14 2000 30 0.77 51.3333
19 24 10000 50 0.25 50
20 1 2000 50 0.96 38.4
21 27 7000 50 0.24 33.6
22 17 1000 10 0.24 24
23 29 8000 80 0.24 24
24 23 7000 70 0.23 23
25 21 4000 50 0.23 18.4
26 20 3000 60 0.22 11
27 25 2000 60 0.28 9.33333
28 28 1000 40 0.31 7.75
29 22 2000 70 0.2 5.71429
如图2所示,选取第一个处理器及第一个任务执行模糊温度约束检测。先将该任务预分配至该处理器上的任务集中,即Γr=Γri。之后对该处理器上的任务集进行实施约束下的检测,假设处理器PEr上有任务集Γr={γ1,γ2,..,γK}。所有任务都在时刻0释放。根据公式(6)来计算每个任务的响应时间,并检查响应时间是否小于延迟阈值,即Rt(i)<Di是否成立。若任务集中所有任务都满足上式,那么Γr在处理器PEr上运行可以满足实时性;否则,当前的任务不分配至当前的处理器中,并选取下一个任务重新进行模糊温度约束测试。
若任务满足实时性时,进行模糊温度约束下的温度可行性测检测。构造一个调度序列[sti,edi]:表示处理器执行区间,在该区间内,处理器工作在moder下,所执行任务的电路活动因子为cfi
对处理器r上第一个超周期[0,L]内的调度序列,其中st0=0,ed1=L;进行如下温度可行性检测,令:
B(edi-sti)=Bi=(b-a*cfi*v(r))
Kj=exp(-B(ed0-sto)-…-B(edj-stj);
K=exp(-B(ed0-sto)-…-B(ed1-st1)
在处理器r上可以通过模糊温度约束当且仅当满足如下条件:
0<K<1
T(L)≤Tmax(1-K)
且,在第一个超周期[0,L]内,存在区间[sti,edi]满足:
T ( ed i ) &le; T max - T ( L ) 1 - K &CenterDot; K i
其中, &ForAll; 0 &le; j &le; l , 有T(edi)≥T(edj)。令 T peak = T ed i , T peak &prime; = T max - T ( L ) 1 - K * K i ,
若不满足,当前的任务不分配至当前的处理器中,并选取下一个任务重新进行模糊温度约束测试。
若任务通过上述模糊温度约束测试,表示任务τi可以分配到PEr上,则更新系统待分配任务集Γ=Γ-τi;否则,更新处理器r上的任务集Γr=Γri。检查当前所处理任务是否为最后一个任务,若是则结束模糊静态调度工作;否则,可选择下一个任务(i=i+1),并跳回步骤二中重新进行处理。
在本实施例中,对任务集Γ进行模糊温度约束下的静态调度:一开始,已分配给处理器PE1的任务集Γ1为空。接着,从下标最小的任务τ1到下标最大的任务τ29逐一进行实时检测以及温度检测。假设当前检测任务为τi。当实时约束检测结果为TRUE且温度检测结果也为TURE时,
分配所检测任务到处理器上。并更新Γ1=Γ1i。具体实施过程如下表6所示:
表6任务进行模糊温度约束下的静态调度结果表
步骤三:对处理器上的任务进行精确温度约束检测;若通过,则执行步骤四;否则,删除处理器中能耗贡献值Metric最小的任务并重新执行步骤三。
步骤四,若所有待分配的任务均已分配至处理器,则执行步骤五;若还存在待分配的任务未分配至处理器,判断当前分配任务的处理器是否为最后一个处理器;若不是,则选用下一个处理器并重新执行步骤二;否则,终止静态调度。
步骤五:保存静态调度的方案,并根据方案实施调度。调度结束时,若任务集Γ非空,那么宣布静态调度失败。否则,保存静态调度将产生满足实时性和温度约束的调度方案。
如图3所示,步骤三中先对已分配任务集Γr进性空闲时间分配(SLACK分配),然后检测任务集是否能通过精确温度检测条件;若无法通过,则移除Metric最小的任务,否则结束精确温度条件下的任务调度。
图4描述了本发明的Slack分配方法。本发明Slack分配方法的具体流程如下:先计算要构造的混合任务集的理想温度。然后从下标最低的任务开始,依次判断每一个任务是否是热任务,若是,那么依次计算任务的理想SALCK以及计算当前任务的最大可用slack长度,最终可以计算出任务的实际slack长度。若不是热任务,则不为该任务作SLACK分配。当前任务处理结束后,查看当前任务是否是最后一个任务。若不是,则继续选择下一个任务执行同上的slack分配流程,直到最后一个任务被处理完毕。SLACK方法的具体步骤为:
A.初始化工作:
ψi=(γi,0)。混合任务按周期从小到大排序。使得规定周期小的任务优先级大,周期相同的任务,下标越小优先级就越大。初始化任务下标i=1。
B.计算理想的均衡温度,并计算每个任务的理想slack长度。
B.1计算任务的稳定温度Tss(i,γ),将Γr中的任务分为冷任务和热任务两类。
B.2计算理想的均衡温度Tideal
T ideal = &Sigma; i = 1 M k i &times; et i &times; T ss ( i , r ) L - &Sigma; i = 1 N et i &times; k i + &Sigma; i = 1 M k i &times; et i - - - ( 10 )
根据RC模型可以求解对于混合任务ψi={τi,sli},τi=(ai,ci,pi),其稳定温度可以由如下式子表示:
T ss ( &psi; i , r ) = T ss ( i , r ) &times; 1 - e - B ( et i ) 1 - e - B ( et i + sl i ) - - - ( 11 )
B.3根据公式(10,11)可以求解ψi理想的slack长度的slideal,i.
sl i = ln ( 1 - 1 - e - B ( et i ) T ideal T ss ( i , r ) ) - et i
C.若i>N,结束SLACK分配。否则进入D。
D.选取:ψi.若ψi是冷任务。那么,跳入H。否则,进入E。
E.计算ψi的最大可分配的slack长度sli,max
E.1初始化:设定一个slack的下界,sllow=0;设定一个slack的上界,slhigh=Di-Rt′i;设置变量slmid=0;设定变量δ=slhigh-sllow
E.2检查δ≤0.1是否成立,若成立则结束搜索过程,跳至步骤E.7;否则进入下一步。
E.3计算: sl mid = sl high + sl low 2
E.4设定混合任务ψi={τi,slmid}。
E.5使用公式(9)来验证混合任务集Ψ是否满足实时性。若满足,则置sllow=slmid;否则,置slhigh=slmid
E.6置δ=slhigh-sllow。跳转至E.2
E.7置sli,max=slmid
在本实施例中,以ψi为例,它的最大空闲时间的求解方法如下:
ψ1=(τ1,sl1);τ1=(4000,20,20);eti=4.994,cf=0.97;
根据E.1可以设定sllow=0;slhigh=20-4.994=15.006;
根据E.2-E.6可以二分搜索检查最大可用空闲长度,搜索过程如下表7所示:
表7二分搜索检查最大可用空闲长度结果表
slhigh sllow δ slmid et+slmid Feasible Operation
15.0062 0 15.006 7.50312 12.4969 no high<-mid
7.50312 0 7.50312 3.75156 8.74532 no high<-mid
3.75156 0 3.75156 1.87578 6.86954 no high<-mid
1.87578 0 1.87578 0.93789 5.93165 no high<-mid
0.93789 0 0.93789 0.468945 5.4627 no high<-mid
0.468945 0 0.468945 0.234473 5.22823 yes low<-mid
0.468945 0.234473 0.234473 0.351709 5.34547 no high<-mid
0.351709 0.234473 0.117236 0.293091 5.28685 yes low<-mid
0.351709 0.293091 0.0586181
当δ=0.0586181时,跳出循环搜索过程。
根据E.7,sli,max=slmid=0.293091。
F.计算ψi实际可用的空闲时sli=MIN{sli,max,sli,ideal}。
G.更新混合任务ψi=(τi,sli)。
选取下一个任务i=i+1。跳转至C。
在本实施例中,经过模糊温度约束下的静态调度,PE1上分配的任务集为:
Γ1={γ1,γ2,γ3,γ4,γ5,γ6}={τ1,τ2,τ3,τ9,τ28,τ29}。
按照步骤A,构建混合任务Ψ1={ψ1,ψ2,ψ3,ψ4,ψ5,ψ6}。其中,ψ1=(γ1,0)=(τ1,0),ψ2=(γ,0)=(τ2,0),ψ3=(γ3,0)=(τ3,0),ψ4=(γ4,0)=(τ9,0),ψ5=(γ5,0)=(τ28,0),ψ6=(γ6,0)=(τ29,0)
按照步骤B,先将任务划分为冷热两类,划分结果如表8所示:
表8冷任务与热任务划分结果表
任务 ID号 稳定温度 温度阈值 冷热属性
τ1 5 94.33 85
τ2 13 86.504 85
τ3 7 90.89 85
τ9 11 81.322 85
τ28 28 40.465 85
τ29 22 34.499 85
然后,求解理想稳定温度:Tideal=83.5091。
最后,对热任务进行slack分配,构造混合任务的结果如下表9所示:
表9构造后混合任务的结果表
混台任务 任务 稳定温度 冷热属性 理想空闲长度 最大可用空闲长度 实际空闲长度
ψ1 τ1 94.33 0.924 0.293 0.293
ψ2 τ2 86.504 0.256 0.313 0.256
ψ3 τ3 90.89 2.520 1.330 1.330
ψ4 τ9 81.322 0 0 014 -->
ψ5 τ28 40.465 0 0 0
ψ6 τ25 34.499 0 0 0
经过SLACK分配后,应用精确温度检测条件对任务集Γr进行检测。
对处理器r上第一个超周期[0,L]内的调度序列,其中st0=0,ed1=L;进行如下温度可行性检测,令:
B(edi-sti)=Bi=(b-a*cfi*v(r))
Kj=exp(-B(ed0-sto)-…-B(edj-stj);
K=exp(--B(ed0-sto)-…-B(ed1-st1)
在处理器r上可以通过模糊温度约束当且仅当满足如下条件:
0<K<1
T(L)≤Tmax(1-K)
且,在第一个超周期[0,L]内,区间[sti,edi]满足:
T ( ed i ) &le; T max - T ( L ) 1 - K &CenterDot; K j
根据检测结果,调整处理器的任务分配或者结束该处理器的分配工作。若未通过检测,那么从Γr中选择一个贡献值最小的任务τm移除,令Γr=Γrm,Γ=Γ+τm。然后转向重新执行步骤三,对Γr作精确温度约束下的静态调度工作。若通过检测,则结束PEr的任务分配工作,执行步骤四。
在本实施例中,所构建的任务集Ψ1的温度峰值为81.69。应用精确温度检测条件对任务集其进行检测。结果满足精确温度约束条件,则执行步骤四。步骤四中,还检查未分配的任务集Γ是否为空,对剩余任务进行处理。若Γ为空,则结束静态调度工作,执行步骤五。否则,检查是否当前处理器是否是最后一个处理器,若不是,则选择下一个处理器,并跳转至步骤二继续进行调度。
在本实施例中,经过前述四个步骤,已经完成了对处理器PE1的分配,得到该处理器的任务分配表如下表10所示,其中未分配的任务集Γ={τ4,τ5,τ6,τ7,τ8,τ10,τ11,…,τ26,τ29},未分配的任务集不为空。且当前分配任务的处理器是PE1,它不是最后一个处理器。于是重新执行步骤二,将剩余任务分配到PE2上。直至分配完所有处理器后时,若任务集Γ非空,那么宣布静态调度失败。否则,保存静态调度将产生满足实时性和温度约束的调度方案。
表10处理器上的任务分配表
本实施例中,经过静态调度,每个处理器产生一个任务集Γ1,Γ2,...,Γ6:如表11所示:
表11处理器及其任务集表
产生并保存的静态分配矩阵表MR×N如表12所示:
表12静态分配矩阵表
ID 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
PE1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0
PE2 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0
PE3 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0
PE4 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0
PE5 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1
PE6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ID 20 21 22 23 24 25 26 27 28 29
PE1 0 0 1 0 0 0 0 0 1 017 -->
PE2 0 0 0 0 0 0 1 0 0 0
PE3 1 0 0 0 1 0 0 1 0 0
PE4 0 0 0 0 0 1 0 0 0 0
PE5 0 1 0 1 0 0 0 0 0 1
PE6 0 0 0 0 0 0 0 0 0 0
最终所需的总功耗为: P tot = &Sigma; r = 1 r = R PeMetric r &times; &Sigma; &tau; k = &Gamma; r metric k = 65.446 .
通过本发明,可以有效的在静态分配任务阶段寻找到能耗比较低的任务分配方案。并且该调度方案可以确保任务在动态执行过程中,处理器的温度始终在安全的范围内。对同对比该实施例相比于基于单调速率先合适优先算法(ratemonotonicfirstfit,RMFF)的分配方法可降低13%左右的能耗。
本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。

Claims (10)

1.一种基于温度约束的固定优先级实时任务静态调度方法,其特征在于,包括以下步骤:
步骤一:获取所有待分配的任务和所有待分配任务的处理器,并获取所述任务的能耗贡献值Metric与所述处理器的能耗贡献值PeMetric;
步骤二:对于一个处理器,选取一个任务进行模糊温度约束检测;若不通过,则不分配所述任务至所述处理器上并选取下一个任务重新执行步骤二;若通过,则将所述任务分配至所述处理器上,并选取下一个待分配的任务重新执行步骤二;直至检测所有待分配的任务后,执行步骤三;
步骤三:对所述处理器上的任务进行精确温度约束检测;若通过,则执行步骤四;否则,删除所述处理器中能耗贡献值Metric最小的任务并重新执行步骤三;
步骤四:若所有待分配的任务均已分配至处理器,则执行步骤五;若还存在待分配的任务未分配至处理器,判断当前分配任务的处理器是否为最后一个处理器;若不是,则选用下一个处理器并重新执行所述步骤二;否则,终止所述静态调度;
步骤五:保存所述静态调度的方案,并根据所述方案实施调度;
在步骤一中,任务的能耗贡献值Metric值如下式表示:其中,Metrick表示τk的对能耗的贡献值;cfk是任务τk的电路活动因子(0<cfk≤1);pk是任务的释放周期;ck是τk在每个周期需要完成的时钟周期个数;
处理器的能耗贡献值PeMetricr如下式表示:
PeMetric r = P ( r ) f ( r ) = C 0 * v ( r ) 3 + C 1 * v ( r ) + C 2 T a m b f ( r ) ;
其中,PeMetricr是处理器PEr对能耗的贡献值;C0,C1,C2是与处理器功耗相关的常系数;v(r)表示PEr所支持的工作电压,而f(r)是PEr所支持的工作频率;Tamb是系统工作的外部环境温度。
2.如权利要求1所述的基于温度约束的固定优先级实时任务静态调度方法,其特征在于,步骤一中进一步包括:将所述处理器的能耗贡献值PeMetric按从低至高排序。
3.如权利要求1所述的基于温度约束的固定优先级实时任务静态调度方法,其特征在于,执行所述步骤二前进一步包括:将所述任务根据任务的能耗贡献值Metric从高至低排序;选取第一个处理器并开始执行所述步骤二。
4.如权利要求1所述的基于温度约束的固定优先级实时任务静态调度方法,其特征在于,步骤二中所述模糊温度约束检测包括以下步骤:
步骤A1:将一个任务预分配至当前的处理器的任务集中;
步骤A2:对所述处理器的任务集进行实时约束检测,测量所述任务集中每个任务的响应时间;若所述响应时间小于延迟阈值,则执行步骤A3;否则,所述模糊温度约束检测结果为不通过;
步骤A3:构造一个调度序列,对所述处理器上第一个超周期内的调度序列进行模糊温度约束下的温度可行性检测,所述超周期表示所述处理器中所有任务的周期的最小公倍数;若所述调度序列满足所述温度可行性检测,则所述模糊温度约束检测结果为通过;否则,所述模糊温度约束检测结果为不通过。
5.如权利要求1所述的基于温度约束的固定优先级实时任务静态调度方法,其特征在于,步骤三中所述精确温度约束检测包括以下步骤:
步骤B1:对所述处理器的任务集进行空闲时间分配;
步骤B2:构造一个调度序列,对所述处理器上第一个超周期内的调度序列进行精确温度约束下的温度可行性检测,所述超周期表示所述处理器中所有任务的周期的最小公倍数;若所述调度序列满足所述温度可行性检测,则所述精确温度约束检测结果为通过;否则,所述精确温度约束检测结果为不通过。
6.如权利要求4或5任意一项所述的基于温度约束的固定优先级实时任务静态调度方法,其特征在于,所述调度序列如以下公式表示:
S ^ ( t ) = < &lsqb; st i , ed i &rsqb; , mode r , cf i > ;
式中,表示调度序列,[sti,edi]表示处理器执行区间,moder表示处理器的工作模式,cfi表示执行任务的电路活动因子,i表示任务的编号,r表示处理器的编号。
7.如权利要求4或5任意一项所述的基于温度约束的固定优先级实时任务静态调度方法,其特征在于,对所述调度序列进行的所述温度可行性检测包括以下检测过程:
B(edi-sti)=Bi=(b-a*cfi*v(r));
Kj=exp(-B(ed0-st0)-…-B(edj+stj));
K=exp(-B(ed0-st0)-…-B(edl-stl));
式中,B(edi-sti)表示第i个调度区间[sti,edi]的温度变化速度因子,Kj表示从第0个调度区间到第j个调度区间内的温度变化因子,st表示执行区间的起始端,ed表示执行区间的截止端,cfi表示执行任务的电路活动因子,0表示第一个超周期的起始端,l表示第一个超周期的截止端;v(r)表示处理器PEr所支持的工作电压,r表示处理器的编号,K表示一个超周期结束点的温度变化因子。
8.如权利要求7所述的基于温度约束的固定优先级实时任务静态调度方法,其特征在于,所述调度序列经所述温度可行性检测后,当且仅当满足以下条件时,通过所述模糊温度约束检测:
O<K<1;T(L)≤Tmax(1-K);
且,在第一个超周期[O,L]内,区间[sti,edi]满足:
T ( ed i ) &le; T max - T ( L ) 1 - K * K j ;
其中,有T(edi)≥T(edj);
式中,Tmax表示系统温度阈值,K表示一个超周期结束点的温度变化因子,j表示一个超周期内的温度峰值点所在的执行区间的编号,st表示执行区间的起始端,ed表示执行区间的截止端。
9.如权利要求7所述的基于温度约束的固定优先级实时任务静态调度方法,其特征在于,所述调度序列经所述温度可行性检测后,当且仅当满足以下条件时,满足所述精确温度约束检测:0<K<1
T(L)≤Tmax(1-K)
在第一个超周期[0,L]内,对于任意区间[sti,edi]有:
T ( ed i ) &le; T max - T ( L ) 1 - K * K j
式中,Tmax表示系统温度阈值,K表示一个超周期结束点的温度变化因子,j表示在一个超级周期内的任意执行区间的下标号,st表示执行区间的起始端,ed表示执行区间的截止端。
10.如权利要求5所述的基于温度约束的固定优先级实时任务静态调度方法,其特征在于,所述空闲时间分配用于构造混合任务集,降低处理器执行任务的温度峰值,其包括以下步骤:
步骤C1:根据所述处理器和所述处理器上分配的任务,构成所述混合任务集;
步骤C2:计算所述混合任务集中各每一个混合任务的稳定温度,并根据稳定温度判断所述每一个混合任务属于热任务或冷任务;
步骤C3:计算所述混合任务集的理想均衡温度,选取所述混合任务集中周期最长的任务,判断所述任务是否为热任务;若是,执行步骤C4,否则执行步骤C8;
步骤C4:计算当前混合任务集的理想空闲时间;
步骤C5:计算当前混合任务的最大可用空闲时间;
步骤C6:计算所述当前混合任务的实际空闲时间;
步骤C7:更新所述当前混合任务的执行长度;
步骤C8:判断当前混合任务是否为所述混合任务集中最后一个混合任务;若是,则结束所述空闲时间分配,否则选取下一个混合任务并重新执行所述步骤C4。
CN201310052875.1A 2013-02-18 2013-02-18 一种基于温度约束的固定优先级实时任务静态调度方法 Expired - Fee Related CN103164274B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310052875.1A CN103164274B (zh) 2013-02-18 2013-02-18 一种基于温度约束的固定优先级实时任务静态调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310052875.1A CN103164274B (zh) 2013-02-18 2013-02-18 一种基于温度约束的固定优先级实时任务静态调度方法

Publications (2)

Publication Number Publication Date
CN103164274A CN103164274A (zh) 2013-06-19
CN103164274B true CN103164274B (zh) 2016-06-01

Family

ID=48587389

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310052875.1A Expired - Fee Related CN103164274B (zh) 2013-02-18 2013-02-18 一种基于温度约束的固定优先级实时任务静态调度方法

Country Status (1)

Country Link
CN (1) CN103164274B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105242966A (zh) * 2015-09-28 2016-01-13 华东师范大学 一种面向自主获能异构系统的非精确实时任务调度方法
CN106293909B (zh) * 2016-07-29 2019-06-14 华东师范大学 一种对异构多核处理器温度-调度长度感知的实时任务调度方法
CN107728466B (zh) * 2017-09-28 2020-08-07 华侨大学 一种适用于数控系统固定优先级可靠性感知能耗优化方法
CN108874517B (zh) * 2018-04-19 2021-11-02 华侨大学 固定优先级待机备用系统利用率划分能耗优化方法
CN108733491B (zh) * 2018-05-15 2021-10-15 华东师范大学 一种面向异构MPSoC系统的热感知及低能耗任务调度方法
CN109117304B (zh) * 2018-07-05 2022-02-18 北京珠穆朗玛移动通信有限公司 文件备份方法、系统及装置
CN113360273A (zh) * 2020-03-04 2021-09-07 北京百度网讯科技有限公司 处理器资源动态分配方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182538A2 (en) * 2000-08-21 2002-02-27 Texas Instruments France Temperature field controlled scheduling for processing systems
CN101283323A (zh) * 2005-08-25 2008-10-08 苹果公司 用于动态热控制的方法和设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182538A2 (en) * 2000-08-21 2002-02-27 Texas Instruments France Temperature field controlled scheduling for processing systems
CN101283323A (zh) * 2005-08-25 2008-10-08 苹果公司 用于动态热控制的方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《Reliability-Driven Energy-Efficient Task Scheduling for Multiprocessor Real-Time Systems》;Tongquan Wei el.;《IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS》;20111031;第30卷(第10期);全文 *

Also Published As

Publication number Publication date
CN103164274A (zh) 2013-06-19

Similar Documents

Publication Publication Date Title
CN103164274B (zh) 一种基于温度约束的固定优先级实时任务静态调度方法
Chang Estimation of wind energy potential using different probability density functions
CN105572498A (zh) 一种电子产品可靠性加速试验方法
CN101571802A (zh) 一种嵌入式软件测试数据可视化自动生成方法及系统
Wang et al. Evolution of coordination degree of eco-economic system and early-warning in the Yangtze River Delta
CN103914587B (zh) 一种基于模拟退火/回火现场可编程门阵列布局的方法
CN105320809A (zh) 一种针对风电场空间相关性的风速预测方法
CN104504257B (zh) 一种基于双重并行计算的在线Prony分析方法
CN106021839B (zh) 一种地铁隧道电缆支架疲劳可靠性的预测方法
CN103440419B (zh) 一种基于故障树和层次分析法的可靠性分配系统及分配方法
CN103473120A (zh) 一种基于加速因子的多核实时系统任务划分方法
CN109086542A (zh) 一种服务器机箱底座凸包的仿真优化方法、系统及装置
Liu et al. A systems dynamic model of a coal-based city with multiple adaptive scenarios: A case study of Ordos, China
CN105242966A (zh) 一种面向自主获能异构系统的非精确实时任务调度方法
CN107728466A (zh) 一种适用于数控系统固定优先级可靠性感知能耗优化方法
CN105898866A (zh) 一种WiFi室内定位中指纹库的构建方法
CN104143036B (zh) 基于失效率的空间辐射环境可靠性定量控制方法
CN108875127A (zh) 一种计算机气象软件中基于风场数据的槽线修正方法
Bao et al. The extended 2-dimensional state-queuing model for the thermostatically controlled loads
Cao et al. A multi-layered point reordering study of GPU-based meshless method for compressible flow simulations
CN105243021A (zh) 多任务测试性指标分配方法
CN104700218B (zh) 用于确定电网分区数量以及电网分区的方法和系统
CN106529096A (zh) 一种整体油箱温度场分析方法
CN103796217B (zh) 一种基于路测数据的预测区域划分方法及装置
Cai et al. Random testing with dynamically updated test profile

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160601

Termination date: 20190218