一種適用于數控系統實時調度的方法
【技術領域】
[0001] 本發明涉及實時系統領域的任務容錯實時調度技術,具體是一種適用于數控系統 的實時調度算法。
【背景技術】
[0002] 數控系統不僅需要保證其實時任務在規定時限內正確完成,還需要保證系統在 出現錯誤時能夠提供標準或降級服務。若系統不能在規定時限內輸出正確結果,將嚴 重影響工件的加工質量,甚至造成安全生產隱患。容錯技術通過增加冗余資源的方法 來屏蔽故障對系統功能的影響,針對單處理器實時系統中的軟件運行故障,Ching-chih Han等人發表的《AFault-TolerantSchedulingAlgorithmforReal-TimePeriodic TaskswithPossibleSoftwareFaults》(干丨J物《IEEETransactionsonComputers》 2003, 52 (3) : 362-372)對主/副版本容錯技術進行研究,提出了基于截止期限機制的BCE算 法。BCE在調度前采用固定優先級調度策略為副版本預分配處理器時間,并在調度過程中采 用CAT子算法預測主版本的可執行性,選擇可行的主版本執行,同時采用EIT子算法在系統 空閑時選擇副版本提前執行,以避免處理器時間的浪費,獲得較好的調度性能。處理器利用 率較高時,CAT子算法的預測精度較低,無法有效地避免處理器時間的浪費。韓建軍等人在 《基于軟件容錯的動態實時調度算法》(期刊《計算機研究與發展》2005, 42 (2) : 315-321)中 對CAT子算法的預測精確性進行改進,提出了PKSA(EBPA)和CUBA算法,通過若干次試探 性檢測可取得較CAT子算法更優的預測準確性,其試探次數的確定以及有限次試探操作使 得算法的在線開銷太大。
[0003] 此外,現有基于主/副版本容錯技術的實時調度算法所采用的預分配子算法所確 定的副版本預留處理器時間在任務調度過程中需要動態調整,這將增加系統的調度開銷, 并降低算法對主版本可執行性的預測精度。
【發明內容】
[0004] 針對現有技術中實時調度算法調度性能不佳且調度開銷太大的情況,本發明要解 決的技術問題是提供一種改善算法調度性能并降低處理時間的一種適用于數控系統實時 調度的方法。
[0005] 為解決上述技術問題,本發明采用的技術方案是:一種適用于數控系統實時調度 的方法,包括以下步驟:
[0006] 為數控系統中每個實時任務定義兩種相互獨立的可執行版本:主版本和副版本;
[0007] 采用預分配算法為副版本預留處理器時間,確定副版本的通知時刻;
[0008] 數控系統運行時,采用RM算法對主版本進行調度,在每個調度時刻,采用預測算 法逐個檢測當前就緒隊列中的就緒任務的主版本的可執行性,并調度執行經預測可執行的 主版本;
[0009] 如果在副版本的通知時刻前主版本成功完成調度,則撤銷其對應副版本,并釋放 為副版本預分配的處理器時間;如果執行到副版本的通知時刻對應主版本尚未完成,副版 本搶占當前主版本執行,并終止對應主版本。
[0010] 所述任務的副版本為主版本功能的簡單實現,提供應用可接受的低精度結果,副 版本的執行時間小于等于主版本的執行時間。
[0011] 所述采用預分配算法為副版本預留處理器時間,確定副版本的通知時刻,具體 為:
[0012] 副版本在預分配過程中占用的時間間隔為其運行時的預留處理器時間,副版本的 預留處理器時間段的起始時刻即為副版本的通知時刻。
[0013] 所述預測算法通過計算主版本在[t,STu]內的可用處理器時間來檢測主 版本Pi,j是否可執行的計算公式為:
[0014]
【主權項】
1. 一種適用于數控系統實時調度的方法,其特征在于,包括以下步驟: 為數控系統中每個實時任務定義兩種相互獨立的可執行版本:主版本和副版本; 采用預分配算法為副版本預留處理器時間,確定副版本的通知時刻; 數控系統運行時,采用RM算法對主版本進行調度,在每個調度時刻,采用預測算法逐 個檢測當前就緒隊列中的就緒任務的主版本的可執行性,并調度執行經預測可執行的主版 本; 如果在副版本的通知時刻前主版本成功完成調度,則撤銷其對應副版本,并釋放為副 版本預分配的處理器時間;如果執行到副版本的通知時刻對應主版本尚未完成,副版本搶 占當前主版本執行,并終止對應主版本。
2. 根據權利要求1所述的一種適用于數控系統實時調度的方法,其特征在于,所述任 務的副版本為主版本功能的簡單實現,提供應用可接受的低精度結果,副版本的執行時間 小于等于主版本的執行時間。
3. 根據權利要求1所述的一種適用于數控系統實時調度的方法,其特征在于,所述采 用預分配算法為副版本預留處理器時間,確定副版本的通知時刻,具體為: 副版本在預分配過程中占用的時間間隔為其運行時的預留處理器時間,副版本的預留 處理器時間段的起始時刻即為副版本的通知時刻。
4. 根據權利要求1所述的一種適用于數控系統實時調度的方法,其特征在于,所述預 測算法通過計算主版本Pu在[t,SU內的可用處理器時間來檢測主版本Pu是否可 執行的計算公式為:
其中,集合A+Set^Ut彡STx,y彡STy},表示預留處理器時間位于[t,STi,j]內的 副版本集合,STi;j為副版本的通知時亥lj,集合hp⑴={TjGrIpriopprioJ表示優先級高 于t,的任務集合,(給出公式中各參數的含義); 在調度時刻t,主版本Pi;」的剩余執行時間為remain^」,則預測算法判斷Pi;」可執行的 充分條件是。
【專利摘要】本發明涉及一種適用于數控系統實時調度的方法。其步驟在于包括:為數控系統中每個實時任務定義兩種相互獨立可執行版本:主版本和副版本;任務調度前,采用InvSeq_Preallocation預分配子算法為副版本預留處理器時間,確定副版本的通知時刻;采用固定優先級調度算法對主版本進行調度,在每個調度時刻,采用PPA預測子算法逐個檢測當前就緒隊列中的就緒任務主版本的可執行性,并調度執行經檢測可執行的主版本;主版本成功完成時,撤銷其對應副版本,并釋放為副版本預分配的處理器時間;當執行到副版本的通知時刻時,副版本搶占當前主版本執行,并終止對應主版本。本發明能夠提供更精確的主版本可執行性預測,從而有效避免處理器時間的浪費,提高主版本的成功率。
【IPC分類】G05B19-18
【公開號】CN104570915
【申請號】CN201310470415
【發明人】郭銳鋒, 劉嫻, 王鴻亮, 張憶文, 卜霄菲
【申請人】中國科學院沈陽計算技術研究所有限公司
【公開日】2015年4月29日
【申請日】2013年10月9日