定義
實時作業系統是保證在一定時間限制內完成特定功能的作業系統。實時作業系統有硬實時和軟實時之分,硬實時要求在規定的時間內必須完成操作,這是在作業系統設計時保證的;軟實時則只要按照任務的優先權,儘可能快地完成操作即可。我們通常使用的作業系統在經過一定改變之後就可以變成實時作業系統。
例如,可以為確保生產線上的機器人能獲取某個物體而設計一個作業系統。在“硬”實時作業系統中,如果不能在允許時間內完成使物體可達的計算,作業系統將因錯誤結束。在“軟”實時作業系統中,生產線仍然能繼續工作,但產品的輸出會因產品不能在允許時間內到達而減慢,這使機器人有短暫的不生產現象。一些實時作業系統是為特定的套用設計的,另一些是通用的。一些通用目的的作業系統稱自己為實時作業系統。但某種程度上,大部分通用目的的作業系統,如微軟的Windows NT或IBM的OS/390有
實時系統的特徵。這就是說,即使一個作業系統不是嚴格的實時系統,它們也能解決一部分實時套用問題。
大體上,實時作業系統(RTOS)要求:
多任務
處理能被區分優先次序的進程線
一個中斷水平的充份數量
被裝入作為微型設備一部分的內含小作業系統經常要求實時作業系統。一些核心問題能被考慮以符合實時作業系統的需求。然而,因為像設備驅動程式這樣的其他成份,也通常被特別的方法需要,一個實時作業系統通常比核心更大。
實時任務
在實時系統中必然存在著若干個實時任務,這些任務通常與某些個外部設備相關,能反應或控制相應的外部設備,因而帶有某種程度的緊迫性。可從不同的角度對實時任務加以分類。
按任務執行時是否呈現周期性變化來劃分:
a、周期性實時任務
外部設備周期性地發出激勵信號給計算機,要求它按照指定周期循環執行,以便周期性的控制某種外部設備。
b、非周期性實時任務
外部設備所發出的激勵信號並無明顯的周期性,但都必須聯繫著一個截止時間。 它又可分為開始截止時間(任務在某時間以前必須開始執行)和完成截止時間(任務在某時間以前必須完成)兩部分。
根據對截至時間的要求來劃分:
a、硬實時任務
b、軟實時任務
特徵
1)高精度計時系統
計時精度是影響實時性的一個重要因素。在實時套用系統中,經常需要精確確定實時地操作某個設備或執行某個任務,或精確的計算一個時間函式。這些不僅依賴於一些硬體提供的時鐘精度,也依賴於實時作業系統實現的高精度計時功能。
2)多級中斷機制
一個實時套用系統通常需要處理多種外部信息或事件,但處理的緊迫程度有輕重緩急之分。有的必須立即作出反應,有的則可以延後處理。因此,需要建立多級
中斷嵌套處理機制,以確保對緊迫程度較高的實時事件進行及時回響和處理。
3)實時調度機制
實時作業系統不僅要及時回響實時事件中斷,同時也要及時調度運行實時任務。但是,
處理機調度並不能隨心所欲的進行,因為涉及到兩個進程之間的切換,只能在確保“安全切換”的時間點上進行,實時調度機制包括兩個方面,一是在調度策略和算法上保證優先調度實時任務;二是建立更多“安全切換”時間點,保證及時調度實時任務。
比較
實時系統與分時系統特徵的比較
(1)多路性。實時信息處理系統與分時系統一樣具有多路性。系統按分時原則為多個終端用戶服務;而對實時控制系統,其多路性則主要表現在經常對多路的現場信息進行採集以及對多個對象或多個執行機構進行控制。
(2)獨立性。實時信息處理系統與分時系統一樣具有獨立性。每個終端用戶在向分時系統提出服務請求時,是彼此獨立的操作,互不干擾;而在實時控制系統中信息的採集和對對象的控制,也彼此互不干擾。
(3)及時性。實時信息系統對實時性的要求與分時系統類似,都是以人所能接受的等待時間來確定;而實時控制系統的及時性,則是以控制對象所要求的開始截止時間或完成截止時間來確定的,一般為秒級、百毫秒級直至毫秒級,甚至有的要低於100微秒。
(4)互動性。實時信息處理系統具有互動性,但這裡人與系統的互動,僅限於訪問系統中某些特定的專用服務程式。它不像分時系統那樣能向終端用戶提供數據處理服務、資源共享等服務。
(5)可靠性。分時系統要求系統可靠,相比之下,實時系統則要求系統高度可靠。因為任何差錯都可能帶來巨大的經濟損失甚至無法預料的災難性後果。因此,在實時系統中,採取了多級容錯措施來保證系統的安全及數據的安全。
相關概念
基本概念
代碼臨界段:指處理時不可分割的代碼。一旦這部分代碼開始執行則不允許中斷打入;
資源:任何為任務所占用的實體;
共享資源:可以被一個以上任務使用的資源;
任務:也稱作一個執行緒,是一個簡單的程式。每個任務被賦予一定的優先權,有它自己的一套CPU
暫存器和自己的棧空間。典型地,每個任務都是一個無限的循環,每個任務都處在以下五個狀態下:休眠態,就緒態,運行態,掛起態,被中斷態;
任務切換:將正在運行任務的當前狀態(CPU暫存器中的全部內容)保存在任務自己的棧區,然後把下一個將要運行的任務的當前狀態從該任務的棧中重新裝入CPU的暫存器,並開始下一個任務的運行;
核心:負責管理各個任務,為每個任務分配
CPU時間,並負責任務之間通訊。分為不可剝奪型核心和可剝奪型核心;
調度:核心的主要職責之一,決定輪到哪個任務運行。一般基於優先權調度法;
優先權的問題
任務優先權:分為優先權不可改變的靜態優先權和優先權可改變的動態優先權;
優先權反轉:優先權反轉問題是
實時系統中出現最多的問題。共享資源的分配可導致優先權低的任務先運行,優先權高的任務後運行。解決的辦法是使用“優先權繼承”算法來臨時改變任務優先權,以遏制優先權反轉。
互斥
雖然共享數據區簡化了任務之間的信息交換,但是必須保證每個任務在處理共享共享數據時的排他性。使之滿足互斥條件的一般方法有:關中斷,使用測試並置位指令(TAS),禁止做任務切換,利用
信號量。
因為採用實時作業系統的意義就在於能夠及時處理各種突發的事件,即處理各種中斷,因而衡量
嵌入式實時作業系統的最主要、最具有代表性的性能指標參數無疑應該是
中斷回響時間了。中斷回響時間通常被定義為:
中斷回響時間=中斷延遲時間+保存CPU狀態的時間+該
核心的ISR進入函式的執行時間。
中斷延遲時間=MAX(關中斷的最長時間,最長指令時間) + 開始執行ISR的第一條指令的時間。
最大中斷禁止時間:
當RTOS運行在核態或執行某些系統調用的時候,是不會因為外部中斷的到來而中斷執行的。只有當RTOS重新回到用戶態時才回響外部中斷請求,這一過程所需的最大時間就是最大中斷禁止時間。
任務切換時間:
當由於某種原因使一個任務退出運行時,RTOS保存它的運行現場信息、插入相應佇列、並依據一定的調度算法重新選擇一個任務使之投入運行,這一過程所需時間稱為任務切換時間。
上述幾項中, 最大中斷禁止時間和任務切換時間是評價一個RTOS實時性最重要的兩個技術指標。