E代碼

E代碼

微核由E(嵌入)機和S(程式調度)機構成,E機是物理過程和套用軟體過程之間的一個媒介,它執行E代碼。E代碼是系統級的機器代碼,監督和物理事件相關的軟體過程的執行情況。E代碼的執行由環境中斷觸發,它傳送例如,信息或感測器值的到來等外部事件的信號,和套用任務給S機。E代碼是平台獨立的,因為它僅和環境時間相關。

微核

軟體實時系統的核心是一個微核,它的中斷處理和任務調度是完全可程式的。微核由兩個相互作用的虛擬機E(嵌入)機和S(程式調度)機構成。運行在微核上的系統代碼分別進入E和S代碼。E代碼管理系統和物理環境的相互作用。E代碼的執行由環境中斷觸發,它傳送例如,信息或感測器值的到來等外部事件的信號,和套用任務給S機,S代碼管理處理器和系統的相互作用,S代碼的執行由硬體中斷觸發。它傳送內部事件例如任務的執行過程和時間片的信號,並傳送套用任務到CPU,有可能優先一個正在運行的任務,系統的這種劃分使得實時執行過程的兩個主要部分毫不相關,E代碼依賴於環境時間,由此定義以獨立硬體和獨立調度程式方式的系統反應性。S代碼依賴於CPU時間和定義一個系統調度程式,如果兩者的時間線路是一致的話,那么這個代碼就稱為時間安全,時間安全的違背通過運行時間的異常由可程式的方式重新被處理。

E機由環境事件,例如通道信息的到來或感測器新值的到來,造成的外部中斷所觸發,一旦觸發,E機跟隨E代碼指令做三件事:第一、運行一些處理感測器的驅動器,調節器,網路和其他設備;第二、釋放一些用於執行的套用軟體任務;第三、更新觸發順序,其中包括多對form(e,a),表明了未來環境事件e將導致一個中斷,它將觸發具有可程式計數器的E機到E代碼地址a,然後,E機返回到休眠狀態並將CPU控制權讓步於S機。

S機由E機或處理器事件,例如套用任務的完成或時間片的完成,造成的內部中斷喚醒,一旦被觸發,S機跟隨S代碼指令做三件事情:第一、監視處理器和存儲管理,例如,上下文轉換;第二、傳送一個單一任務CPU,可能是一個套用軟體任務和一個特別閒散任務;第三、規定多對form(i,a)表明未來處理程式事件i 將導致一個中斷,這箇中斷觸發具有編程計數器裝置的S機到S代碼地址a。總之,E機和S機構成了一個執行硬實時任務的可程式的微核。

E機是一台虛擬機,它實時地調節軟體過程和物理過程之間的相互作用。它把嵌入程式的編輯分為兩個階段,第一,在獨立於平台的編譯程式階段生成E代碼(由E機執行的代碼);第二,依賴於平台的編譯程式階段檢測E代碼的時間安全。

E代碼的非控制流指令

E代碼主要有三個非控制流指令,在E機實際運行中E代碼也有控制流指令,例如條件或絕對突變。

(1)call(d)指令:初始化驅動器d,因為驅動器程式是同步系統級代碼,在處理卜一指令前嵌入程式模式一直等待,直到驅動器d完成。

(2) schedule(t)指令:釋放一個任務t進就緒佇列,與其它釋放任務並列,“調度”指令按照某種調度策略,從佇列中選擇任務執行。

(3) future(g, a)指令:在某一未來時間進行判斷,激活觸發器(g,a,s),若判斷為真,觸發執行地址a標記的嵌入代碼模組;否則,處理下一條“嵌入”指令。

call( d)指令將激發驅動器d的二進制代碼。E機等待直到d執行結束,接h來執行h一個指令。Schedule(t)指令通過將其插入到任務集的方式記錄任務t的二進制代碼。接著E機馬上移向h一條指令。Future(g,a)指令記錄在地址a的E代碼用於將來當觸發器g計算出來的下一個值為真時(可能)的執行。從操作上講,E機將觸發器(g,a,s)綁定到觸發器序列中,其中s是當前程式的狀態,然後接下來處理下一條指令。如果沒有下一條指令,E機就會解除對CPU的控制並隨著激活每一個事件來評估所有在觸發器序列中的觸發器。如果觸發(g,a,s)綁定是有效的,就從觸發器佇列中移出,在地址a處的E代碼被執行。其中的觸發器g代表中斷,在地址a的E代碼代表中斷處理器。

E代碼的特徵

E代碼是可預測的,可移植的硬實時代碼,E代碼是硬實時的,因為它和環境(物理)時間相關,而不是和平台(CPU)時間相關。E代碼是可預測的,因為程式的計時和行為依賴於外部的輸入,沒有內在的競爭條件。E代碼是可移植的,因為它獨立於平台之外,特別是。這些特徵結合在一起使得時間安全成為可能。

實例

這是一個具有周期任務的實例,設一個裝有導航裝置的汽車,考慮汽車在自動模式m下,有兩個任務,可能由Matlab/Simulink模型自動生成控制任務t1和行駛任務t2。行駛任務過程GPS每隔10ms輸入並提供過程數據給控制任務。控制任務讀取附加的感測器數據,計算控制法則,寫結果到調節器。控制任務每20ms執行一次,數據通信需要三個驅動器:感測驅動器ds,它給行駛任務提供GPS數據,連線驅動器di,它把行駛任務的結果提供給控制任務;調節驅動器da,裝載控制任務的結果到調節器中。只要驅動器的Wcet可以忽略,就可以用簡單的方式處理數據。有兩個環境連線埠即時鐘連線埠Pc和GPS感測器Ps,兩個任務連線埠,一個用於每個任務的結果,三個驅動器連線埠(三個驅動器的目的地)包括調節器Pa。

圖1顯示了程式的拓撲結構,其中,球形表示連線埠,用長方形表示任務,菱形表示驅動器,圓圈表示觸發器。下面程式時間控制的E代碼:

圖1一個周期任務的實例 圖1一個周期任務的實例

a1:call(da) a2: call(ds)

call(ds) schedule(t2)

call(di) future(g,a1)

schedule(t1)

schedule(t2)

future(g,a2)

E代碼包含兩塊,在地址a1處的塊在開始階段即0ms處執行,它調用三個驅動器,為任務和調節器提供數據,然後傳遞兩個任務到最終激活地址a:處的觸發器。當這塊完成後,E機的觸發序列包含地址a2處的觸發器,包含兩個任務t1和t2。現在E機放棄了控制權,只是喚醒致使觸發器g評定為真的下一次輸入事件。與此同時,根據一些調度安排接管和分配CPU時間給在等待序列中的仟務。當仟務完成,把它從序列中移除。

相關詞條

相關搜尋

熱門詞條

聯絡我們