一种工控系统嵌入式装置TEE的实时分层调度方法
一种工控系统嵌入式装置tee的实时分层调度方法
技术领域
1.本发明属于工控装置tee实时进程管理技术领域,具体是涉及一种工控系统嵌入式装置tee的实时分层调度方法。
背景技术:
2.在工控系统嵌入式装置实时系统中,安全性、关键性和及时性是单个实时任务(进程)最重要的属性。安全性即在攻击中保持机密性和完整性的能力。可信执行环境(tee)基于硬件提供的隔离机制,专注于保护系统的机密性和完整性。关键性即任务对系统正确运行的重要性,通常与安全性是一致的。因此,应用tee有效保护了系统的安全性和关键性。而及时性指在截止时间前完成特定任务。为确保及时性,常在设计时进行可调度分析,采用一组实时任务特征(周期、截止时间、预算),并生成一组调度参数,这些参数可以确保所有任务都有计算资源在截止时间之前完成。但直接为所有的安全进程和非安全进程实现这样的调度器,会显著增加tcb的复杂性,从而影响系统的性能。
3.目前大多数tee实时进程管理主要由非安全环境中的全局调度器负责,在安全环境中没有调度器,不能保证系统的可用性。如果将全局调度器直接移入安全环境内,会带来两个问题。1)全局调度器仍需要理解非安全任务的语义,并维持运行时信息,这会显著增加调度器的复杂性;2)调度过程中,安全环境假设来自非安全环境的输入信息都是恶意的,因此两个环境在调度上的交互需要最小化。已采用的一种最小化交互的调度方法是空闲调度,即始终优先安全任务。但安全任务不一定需要最短的响应时间,因此空闲调度可能导致系统整体性能下降。另外,传统调度算法通常利用计时器以固定时间间隔中断,其开销在没有安全架构的系统中可以容忍。但在tee中,安全环境和非安全环境的上下文切换复杂,时间片中断带来的开销难以接受。
技术实现要素:
4.为此,本发明所要解决的技术问题在于现有技术中用于工控系统嵌入式装置tee的实时进程管理会显著增加tcb的复杂度,带来过大的中断开销,影响系统的整体性能,从而本技术提出一种工控系统嵌入式装置tee的实时分层调度方法。该方法在已部署tee的工控系统嵌入式装置安全环境中实现了仅根据优先级进行实时任务调度的安全调度器,有效保障了系统的实时可用性。该方法采用两层分层调度设计,将安全性和实时性解耦,使安全环境和非安全环境的交互最小化,降低tcb复杂度,并保障系统整体性能。该方法基于事件驱动,根据可预测的调度事件设置中断,大幅减少了调度过程中的中断次数,显著降低了系统的中断开销。
5.为达到上述目的,本发明的技术方案如下:一种工控系统嵌入式装置tee的实时分层调度方法,该方法包括如下步骤:
6.s1:在已部署tee的工控系统嵌入式装置的非安全环境中,初始化安全环境和非安全环境参数,初始化实时任务参数,加载用户任务,启动安全环境中的环境调度器;
7.s2:环境调度器根据当前环境参数,为安全环境和非安全环境补充预算和更新截止时间,将两个环境置为可运行状态;
8.s3:环境调度器根据下一个调度事件设置安全计时器,然后根据环境优先级算法,跳转到步骤s4安全环境的安全调度器或步骤s5非安全环境的调度器;
9.s4:安全调度器消耗步骤s2中补充的预算,为安全实时任务更新预算,根据安全调度算法切换安全实时任务执行;
10.s5:非安全调度器根据非安全调度算法切换非安全实时任务执行;
11.s6:当步骤s3中设置的安全计时器计时结束时,中断当前任务执行,保存任务上下文,跳转到步骤s2中的环境调度器。
12.进一步地,步骤s1中,所述环境参数包括安全环境和非安全环境的环境预算、环境截止时间、环境周期和环境状态;所述环境状态包括运行中、可运行、预算不足和空闲四种,初始为预算不足状态。
13.进一步地,步骤s1中,所述初始化实时任务参数具体包括如下步骤:
14.s11:确定安全和非安全环境的实时任务模型;
15.s12:对步骤s11中得到的实时任务模型进行综合可调度分析;
16.s13:生成实时任务参数,包括任务预算、任务运行时间、任务截止时间、任务周期和任务优先级。
17.进一步地,步骤s2中,嵌入式装置初始化时,环境参数为步骤s1中的初始化参数,初始化之后环境参数的更新由环境调度器在安全环境中进行。
18.进一步地,步骤s2中的补充预算具体包括如下步骤:
19.s21:更新执行预算,若执行预算小于消耗量,则跳转到步骤s22;若执行预算不小于消耗量,则跳转到步骤s24;
20.s22:比较补充区头部预算与消耗量,若补充区头部预算小于消耗量,则跳转到步骤s23,否则跳转到步骤s24;
21.s23:从消耗量中减去补充区头部预算,将原补充区头部预算赋给尾部,补充区预算整体上移,跳转到步骤s22;
22.s24:执行预算与头部预算合并,完成预算补充。
23.进一步地,步骤s3中,环境调度器根据下一个调度事件设置安全计时器,所述下一个调度事件包括高优先级任务进入队列、预算补充和任务完成。
24.进一步地,步骤s3中,采用的环境优先级算法为延迟单调速率算法,当前任务τi延迟抢占状态时间ti为:
25.ti≤d
1-t-e
1-cout
i-cini26.其中d1为被抢占任务τ1的任务截止时间,t为当前时刻,e1为任务τ1的任务运行时间,couti和cini分别为任务τi的切出和切入时间。
27.进一步地,步骤s4中,安全调度器根据单调速率算法切换安全实时任务执行,包括rtu管理控制任务、实时i/o中断任务、超额模拟量输入汇报任务和状态突变汇报任务;安全任务τi的优先级pi计算方式为:
28.29.其中wi为安全权重,体现任务的安全重要度,ti为任务周期,周期越短优先级越高,k为紧迫性系数。
30.进一步地,步骤s5中,非安全调度器根据轮转调度算法切换非安全实时任务执行,包括kwh计数器监控任务、实时i/o驱动任务和实时网络传输任务。
31.进一步地,步骤s6中,所述任务上下文为结构体,包括任务周期、任务预算、任务截止时间、补充区长度、补充区头部、补充区尾部和执行预算补充部分,其中执行预算补充部分长度可变,其他参数长度固定。
32.本发明的有益效果在于:
33.本发明采用两层分层设计,将安全性和实时性解耦,在安全环境中分别实现了安全调度器和环境调度器,降低了tcb的复杂度;安全调度器仅根据优先级进行实时任务调度,保障了系统的实时可用性;由环境调度器恢复安全环境或非安全环境,在系统协同工作的同时减少了两个环境间的交互,提高了系统的安全性;基于可预测的调度事件来适当设置安全计时器,大幅减少了中断次数,降低了系统调度过程中的中断开销。
附图说明
34.图1为本发明一个实施例的一种工控系统嵌入式装置tee的实时分层调度方法的流程图;
35.图2为本发明一个实施例的一种工控系统嵌入式装置tee的实时分层调度方法的api执行流图;
36.图3为本发明一个实施例的一种工控系统嵌入式装置tee的实时分层调度方法中步骤s2补充预算流程图;
37.图4为本发明一个实施例的一种工控系统嵌入式装置tee的实时分层调度方法的调度架构图。
具体实施方式
38.为了更好的理解本技术的技术方案,下面结合附图对本技术实施例进行详细描述。
39.如图1所示,本发明提出的一种工控系统嵌入式装置tee的实时分层调度方法,包括如下步骤:
40.s1:本实施例中,在基于armv8架构的变电站rtu上实现tee,安全环境的操作系统由op-tee实现。在非安全环境(rtu执行环境)中初始化安全环境和非安全环境参数,初始化实时任务参数,加载用户任务,启动安全环境中的环境调度器,如图2所示。环境参数包括安全环境和非安全环境的环境预算、环境截止时间、环境周期和环境状态;环境状态包括运行中、可运行(环境有预算而未运行)、预算不足和空闲(环境有预算而无任务运行)四种,初始为预算不足状态。初始化实时任务参数具体包括如下步骤:
41.s11:确定安全和非安全环境的实时任务模型;
42.s12:对步骤s11中得到的实时任务模型进行综合可调度分析;
43.s13:生成实时任务参数,包括任务预算、任务运行时间、任务截止时间、任务周期和任务优先级。
44.s2:环境调度器根据当前环境参数,为安全环境和非安全环境补充预算和更新截止时间,将两个环境置为可运行状态。嵌入式装置初始化时,环境参数为步骤s1中的初始化参数,初始化之后环境参数的更新由环境调度器在安全环境中进行。如图3所示,补充预算具体包括如下步骤:
45.s21:更新执行预算,若执行预算小于消耗量,则跳转到步骤s22;若执行预算不小于消耗量,则跳转到步骤s24;
46.s22:比较补充区头部预算与消耗量,若补充区头部预算小于消耗量,则跳转到步骤s23,否则跳转到步骤s24;
47.s23:从消耗量中减去补充区头部预算,将原补充区头部预算赋给尾部,补充区预算整体上移,跳转到步骤s22;
48.s24:执行预算与头部预算合并,完成预算补充。
49.s3:环境调度器根据下一个调度事件设置安全计时器,下一个调度事件包括高优先级任务进入队列、预算补充和任务完成。然后根据延迟单调速率(drm)算法,跳转到步骤s4安全环境的安全调度器或步骤s5非安全环境的调度器。当前任务τi延迟抢占状态时间ti为:
50.ti≤d
1-t-e
1-cout
i-cini51.其中d1为被抢占任务τ1的任务截止时间,t为当前时刻,e1为任务τ1的任务运行时间,couti和cini分别为任务τi的切出和切入时间。
52.s4:安全调度器消耗步骤s2中补充的预算,为安全实时任务更新预算,根据单调速率(rm)算法切换安全实时任务执行,包括rtu管理控制任务、实时i/o中断任务、超额模拟量输入汇报任务和状态突变汇报任务。安全任务τi的优先级pi计算方式为:
[0053][0054]
其中wi为安全权重,体现任务的安全重要度,ti为任务周期,周期越短优先级越高,k为紧迫性系数,可以取k=1。
[0055]
s5:非安全调度器根据linux系统调度器自带的轮转调度算法,切换非安全实时任务执行,包括kwh计数器监控任务、实时i/o驱动任务和实时网络传输任务。
[0056]
s6:当步骤s3中设置的安全计时器计时结束时,中断当前任务执行,保存任务上下文,如图4所示,跳转到步骤s2中的环境调度器。任务上下文为结构体,包括任务周期、任务预算、任务截止时间、补充区长度、补充区头部、补充区尾部和执行预算补充部分,其中执行预算补充部分长度可变,其他参数长度固定。
[0057]
本实施例所述的一种工控系统嵌入式装置tee的实时分层调度方法,采用两层分层设计,将安全性和实时性解耦,在安全环境中分别实现了安全调度器和环境调度器,降低了tcb的复杂度;由环境调度器恢复安全环境或非安全环境,在系统协同工作的同时减少了两个环境间的交互,提高了系统的安全性;安全调度器仅根据优先级进行实时任务调度,保障了系统的实时可用性;基于可预测的调度事件来适当设置安全计时器,大幅减少了中断次数,降低了系统调度过程中的中断开销。
[0058]
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或
变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
技术特征:
1.一种工控系统嵌入式装置tee的实时分层调度方法,其特征在于,包括如下步骤:s1:在已部署tee的工控系统嵌入式装置的非安全环境中,初始化安全环境和非安全环境参数,初始化实时任务参数,加载用户任务,启动安全环境中的环境调度器;s2:环境调度器根据当前环境参数,为安全环境和非安全环境补充预算和更新截止时间,将两个环境置为可运行状态;s3:环境调度器根据下一个调度事件设置安全计时器,然后根据环境优先级算法,跳转到步骤s4安全环境的安全调度器或步骤s5非安全环境的调度器;s4:安全调度器消耗步骤s2中补充的预算,为安全实时任务更新预算,根据安全调度算法切换安全实时任务执行;s5:非安全调度器根据非安全调度算法切换非安全实时任务执行;s6:当步骤s3中设置的安全计时器计时结束时,中断当前任务执行,保存任务上下文,跳转到步骤s2中的环境调度器。2.根据权利要求1所述的工控系统嵌入式装置tee的实时分层调度方法,其特征在于,步骤s1中,所述环境参数包括安全环境和非安全环境的环境预算、环境截止时间、环境周期和环境状态;所述环境状态包括运行中、可运行、预算不足和空闲四种,初始为预算不足状态。3.根据权利要求1所述的工控系统嵌入式装置tee的实时分层调度方法,其特征在于,步骤s1中,所述初始化实时任务参数具体包括如下步骤:s11:确定安全和非安全环境的实时任务模型;s12:对步骤s11中得到的实时任务模型进行综合可调度分析;s13:生成实时任务参数,包括任务预算、任务运行时间、任务截止时间、任务周期和任务优先级。4.根据权利要求1所述的工控系统嵌入式装置tee的实时分层调度方法,其特征在于,步骤s2中,嵌入式装置初始化时,环境参数为步骤s1中的初始化参数,初始化之后环境参数的更新由环境调度器在安全环境中进行。5.根据权利要求1所述的工控系统嵌入式装置tee的实时分层调度方法,其特征在于,步骤s2中的补充预算具体包括如下步骤:s21:更新执行预算,若执行预算小于消耗量,则跳转到步骤s22;若执行预算不小于消耗量,则跳转到步骤s24;s22:比较补充区头部预算与消耗量,若补充区头部预算小于消耗量,则跳转到步骤s23,否则跳转到步骤s24;s23:从消耗量中减去补充区头部预算,将原补充区头部预算赋给尾部,补充区预算整体上移,跳转到步骤s22;s24:执行预算与头部预算合并,完成预算补充。6.根据权利要求1所述的工控系统嵌入式装置tee的实时分层调度方法,其特征在于,步骤s3中,环境调度器根据下一个调度事件设置安全计时器,所述下一个调度事件包括高优先级任务进入队列、预算补充和任务完成。7.根据权利要求1所述的工控系统嵌入式装置tee的实时分层调度方法,其特征在于,步骤s3中,采用的环境优先级算法为延迟单调速率算法,当前任务τ
i
延迟抢占状态时间t
i
为:t
i
≤d
1-t-e
1-cout
i-cin
i
其中d1为被抢占任务τ1的任务截止时间,t为当前时刻,e1为任务τ1的任务运行时间,cout
i
和cin
i
分别为任务τ
i
的切出和切入时间。8.根据权利要求1所述的工控系统嵌入式装置tee的实时分层调度方法,其特征在于,步骤s4中,安全调度器根据单调速率算法切换安全实时任务执行,包括rtu管理控制任务、实时i/o中断任务、超额模拟量输入汇报任务和状态突变汇报任务;安全任务τ
i
的优先级p
i
计算方式为:其中w
i
为安全权重,体现任务的安全重要度,t
i
为任务周期,周期越短优先级越高,k为紧迫性系数。9.根据权利要求1所述的工控系统嵌入式装置tee的实时分层调度方法,其特征在于,步骤s5中,非安全调度器根据轮转调度算法切换非安全实时任务执行,包括kwh计数器监控任务、实时i/o驱动任务和实时网络传输任务。10.根据权利要求1所述的工控系统嵌入式装置tee的实时分层调度方法,其特征在于,步骤s6中,所述任务上下文为结构体,包括任务周期、任务预算、任务截止时间、补充区长度、补充区头部、补充区尾部和执行预算补充部分,其中执行预算补充部分长度可变,其他参数长度固定。
技术总结
本发明公开了一种工控系统嵌入式装置TEE的实时分层调度方法。该方法面向工控系统中嵌入式装置的可信执行环境TEE,在安全环境中实现了仅根据优先级进行实时任务调度的安全调度器,有效保障了系统的实时可用性。采用两层分层调度设计,将安全性和实时性解耦,在安全环境中分别实现了安全调度器和环境调度器,降低了TCB的复杂度。该方法由环境调度器恢复安全环境或非安全环境,在系统协同工作的同时减少了两个环境间的交互,提高了系统安全性。该方法基于事件驱动,根据可预测的调度事件设置安全计时器,大幅减少了调度过程中的中断次数,显著降低了系统的中断开销。显著降低了系统的中断开销。显著降低了系统的中断开销。