許元飛
XU Yuan-fei
(西安科技大學 計算機學院,西安 710054)
計算機控制系統中關于實時調度的問題,傳統上是由控制系統工程師與實時系統工程師通過各自理解進行調度設計的,這種設計思想在計算機資源富足時其計算機控制系統的運行效果是良好的,而在資源有限時會出現資源共享問題[1]。在計算機控制中,由于控制任務的并行性,我們需要考慮控制性與計算機資源的均衡,同時由于實時系統工程師根據控制系統工程師提供的相關數據信息進行調度設計,而控制系統工程師所提供的數據信息本身就含有很大的不精確性,這將導致計算機資源利用率大大降低,從而影響整個控制系統[2]。計算機控制系統中,某些任務通常是模糊不定的,具有小范圍的隨機波動,例如由時鐘的精確性引起的采樣期誤差等,這些因素導致計算機在進行控制執行時產生延遲和抖動[3],從而影響整個系統的性能和穩定。基于解決以上問題,本文提出了一種基于計算機控制中模糊調度設計的方案,并進行了仿真研究。
計算機控制器在每個采樣周期都會對系統的輸入輸出參數進行對比,對控制量進行權衡,將新的控制量作為輸入參數來控制系統,使系統的輸出在滿足條件的情況下,盡可能的與實時需求相接近,且控制量更新與系統運算過程組成計算機控制回路。在這個回路中涉及到模擬信號與數字信號的相互轉換及其相應的控制算法。
在整個計算機系統中,計算機控制任務主要是控制算法程序調度,具有周期性、反復性,而模態量的轉換對計算機控制任務影響不太大,因此本文僅對計算機控制任務的算法調度問題進行研究,并約束假設計算機系統輸出算法對整個計算機控制系統的影響遠小于控制調度算法。
假設現由N個系統G構成了多任務控制系統,并且每個控制器控制各自所屬對象,n個控制器任務參與計算機資源的競爭。設Q為控制器任務按照優先級大小排列的隊列。調度過程如下:
1)對于新接收到的控制任務,首先對其優先級進行配置,并將其任務插入到Q隊列中,對于優先級越高的任務T優先獲取CPU的資源進行執行。
2)對于完全搶占式調度,其Q隊列等待執行任務與CPU正在執行任務T進行資源競爭,若某個等待執行的任務的優先級高于CPU正在執行的任務,則該任務搶占CPU資源進行調度執行,正在CPU執行的任務退出,并按照優先級順序插回Q隊列。
3)由于調度器本身不知道任務的實際截止期,它將會按照任務的最晚截止期判斷任務是否錯失截止期,當任務T未錯失自身的最晚截止期時仍可繼續對CPU資源進行競爭,或者按照優先級排序于隊列Q中等待調度;當任務T或Q中某些任務錯失自身的最晚截止期時,調度器將終止該任務的執行或等待。
4)所有CPU執行完成的任務或者錯失最晚截止期而被終止的任務由調度器發送到相應隊列中,任務被執行的實例控制量進行更新,錯失昨晚截止期的任務實例不再執行更新。
基于模糊調度設計的計算機控制環計算方法中,假設以下情況:1)計算機控制任務的采樣周期是穩定的;2)在每個采樣循環中判斷當前任務是否得到執行或因錯失最晚截止期而放棄執行。若當前任務執行已經完成,則說明當前采樣環內控制算法計算時間早于最晚截止期完成,此時對任務控制量進行更新;若當前任務錯失最晚截止期而放棄執行,則說明當前采樣控制算法計算不能在截止期完成前結束計算,此時維持控制量不變。
奉獻度是指在計算機控制任務集中每個任務盡可能的在各自任務執行的許可范圍內進行延遲調度,以便更加緊急的任務被優先調度,從而提高整個計算機控制系統的執行效率。奉獻度的前提是每個任務確保即使在最壞情況下自身仍然能夠被調度執行,事實上,計算機控制系統在進行任務調度時本身具有一定的延遲性,該性質確保了任務進程可以實現奉獻精神,以確保計算機系統控制調度過程中可以進行更加有效的優先級任務配置。
在計算機控制系統中,每個任務的奉獻度是逐漸遞增的,因此一旦在某個時刻ti,某個等待執行的任務Ti的奉獻度就會大于正在執行的任務Tj的奉獻度,等待執行的任務Ti將搶占正在執行的任務Tj的資源,等待執行的任務Ti被執行時,其奉獻度不變,但原來正在執行的任務Tj由于出現了等待,它的奉獻度將遞增。一直都某個時刻tj,任務Tj的奉獻度大于Ti,其又開始搶占Ti的資源,造成任務間的不斷切換形成顛簸現象,因此為了節約CPU的資源,我們提出了搶占閥值的最大奉獻優先調度策略。由于優先級P[0,1],設h[p,1],任務的完成率定義為任務完成時間與任務總執行時間之比,對于某個給定的任務完成率a,當任務完成率小于a時,搶占閥值為h=p,此時執行完全搶占CPU資源,否則,h=1,即非搶占方式。
基于此,基于搶占閾值的最大奉獻優先調度策略其調度步驟需要對1.3 調度步驟中的2)進行修改:
對于等待的任務是否搶占當前CPU正在執行任務的資源,其判別條件是p>h,即當h=p時,等待任務完全搶占CPU資源進行任務的執行,而當h=1時,Q隊列中的等待任務只有在當前任務執行完成后才有機會競爭CPU資源。



表1給出了計算機系統控制參數值,同時約定控制器進行計算機資源競爭時, TS=2000,控制系統的輸入設為階躍函數,當T≤500或者1000≤T≤1500時,R (T)=1,其余時間段內R(T)=-1。單位為ms。

表1 計算機系統控制參數

在進行計算機控制性能比較時,我們參考文獻[4]中的控制性能損失指標來衡量。根據表1中所給的數據,T1、T2所有的任務實例分別為166、200,任務的截止期為模糊量,考慮到可行性問題,我們使用最晚截止期B來代替模糊截止期D,則利用率的下界為

因此,計算機控制系統仍然會發生過載現象。
計算機控制系統在基于搶占閾值的調度策略的計算機控制性能如圖1所示:
其中X軸是時間變化,圖1(a)和(c)為兩個子系統的測量比較,控制參考輸入信號為虛線,實際測量為實線,理想測量為點線;圖1(b)和(d)為兩個子系統控制信號的比較,其中,實際控制量為實線,理想控制量為虛線。
仿真結果表明:
1)計算機總系統過載時產生額外調度的損失與任務進程完成情況具有無關性,但與子系統的控制性能變化呈相關性。子系統1的控制性能隨著任務的完成率單調遞增,而子系統2則相反。
2)對于完全搶占或較大的任務完成率,子系統2的控制性能影響較小,T2的所有實例都完成了進程調度,但子系統1的系統過載時產生額外調度的損失與截止期錯失率都達到峰值。
3)CPU的有效利用率是隨著系統的任務完成率遞減的,而系統任務未完成但被搶占的次數隨著系統完成率遞增的。
4)對于任何一個控制系統,總的截止期錯失率是一定的,與子系統的截止期錯失率變化無關。
可以看出,通過搶占閾值的最大奉獻優先調度策略,系統任務的切換次數減少了,搶占權限被有條件搶占調度得到控制。
截止期的模糊調度問題是計算機控制系統中影響系統控制性能損失的重要問題之一,對于不確定截止期的任務實現調度在實時系統處理中會影響運算控制效率,從而造成負載過重現象,在計算機計算資源有限的條件下,對任務進程之間實現可控調度和控制任務的模糊調度策略研究,有利于提高計算機的資源利用率。本文通過基于搶占閾值的最大奉獻優先調度策略對這一問題進行仿真模擬,實驗表明,該方案有效的提高了計算機的利用率,均衡了子系統控制性能,減少了總系統的開銷。
[1] Potkonjak M.,Wolf W. . A methodology and algorithms for the design of hard real-time multitasking Asics. ACM Transactions on Design Automation of Electronic Systems,1999,4(4): 430-459.
[2] Marti P.,Fuertes J. M. ,Fohler G.,Ramamritham K..Improving quality—of-control using flexible timing constraints: Metric and scheduling. In: Proceedings of the 23rd IEEE Real-Time Systems Symposium,Texas,USA,2002,91-100.
[3] Lopez J. ,Marti P. ,Fuertes J. M. . Control loop scheduling paradigm in distributed control systems. In: Proceedings of the 29th IEEE Annual Conference on Industrial Electronics Society,Virginia,USA,2003,2: 1441-1446.
[4] Jin H,Wang H A,Wang H,Wang D. Scheduling design of controllers with fuzzy deadline. Wang L.,Jin H. eds..Lecture Notes in Artificial Intelligence 3613,Berlin Heidelberg: Springer-Vela,2005,861-864.