一種工控系統嵌入式裝置TEE的實時分層調度方法
一種工控系統嵌入式裝置tee的實時分層調度方法
技術領域
1.本發明屬于工控裝置tee實時進程管理技術領域,具體是涉及一種工控系統嵌入式裝置tee的實時分層調度方法。
背景技術:
2.在工控系統嵌入式裝置實時系統中,安全性、關鍵性和及時性是單個實時任務(進程)最重要的屬性。安全性即在攻擊中保持機密性和完整性的能力??尚艌绦协h境(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的復雜度。該方法由環境調度器恢復安全環境或非安全環境,在系統協同工作的同時減少了兩個環境間的交互,提高了系統安全性。該方法基于事件驅動,根據可預測的調度事件設置安全計時器,大幅減少了調度過程中的中斷次數,顯著降低了系統的中斷開銷。顯著降低了系統的中斷開銷。顯著降低了系統的中斷開銷。
