實時操作系統

在規定時間內完成功能的系統

實時操作系統(RTOS)是指當外界事件或數據產生時,能夠接受並以足夠快的速度予以處理,其處理的結果又能在規定的時間之內來控制生產過程或對處理系統作出快速響應,並控制所有實時任務協調一致運行的操作系統。因而,提供及時響應和高可靠性是其主要特點。

定義


實時操作系統是保證在一定時間限制內完成特定功能的操作系統。實時操作系統有硬實時和軟實時之分,硬實時要求在規定的時間內必須完成操作,這是在操作系統設計時保證的;軟實時則只要按照任務的優先順序,儘可能快地完成操作即可。通常使用的操作系統在經過一定改變之後就可以變成實時操作系統。
例如,可以為確保生產線上的機器人能獲取某個物體而設計一個操作系統。在“硬”實時操作系統中,如果不能在允許時間內完成使物體可達的計算,操作系統將因錯誤結束。在“軟”實時操作系統中,生產線仍然能繼續工作,但產品的輸出會因產品不能在允許時間內到達而減慢,這使機器人有短暫的不生產現象。一些實時操作系統是為特定的應用設計的,另一些是通用的。一些通用目的的操作系統稱自己為實時操作系統。但某種程度上,大部分通用目的的操作系統,如微軟Windows NTIBM的OS/390有實時系統的特徵。這就是說,即使一個操作系統不是嚴格的實時系統,它們也能解決一部分實時應用問題。
大體上,實時操作系統(RTOS)要求:多任務處理能被區分優先次序的進程線一個中斷水平的充份數量被裝入作為微型設備一部分的內含小操作系統經常要求實時操作系統。一些核心問題能被考慮以符合實時操作系統的需求。然而,因為像設備驅動程序這樣的其他成份,也通常被特別的方法需要,一個實時操作系統通常比核心更大。

實時任務


在實時系統中必然存在著若干個實時任務,這些任務通常與某些個外部設備相關,能反應或控制相應的外部設備,因而帶有某種程度的緊迫性。可從不同的角度對實時任務加以分類。
1、按任務執行時是否呈現周期性變化來劃分:
a、周期性實時任務
外部設備周期性地發出激勵信號給計算機,要求它按照指定周期循環執行,以便周期性的控制某種外部設備。
b、非周期性實時任務
外部設備所發出的激勵信號並無明顯的周期性,但都必須聯繫著一個截止時間。它又可分為開始截止時間(任務在某時間以前必須開始執行)和完成截止時間(任務在某時間以前必須完成)兩部分。
2、根據對截至時間的要求來劃分:
a、硬實時任務
b、軟實時任務

特徵


1)高精度計時系統
計時精度是影響實時性的一個重要因素。在實時應用系統中,經常需要精確確定實時地操作某個設備或執行某個任務,或精確的計算一個時間函數。這些不僅依賴於一些硬體提供的時鐘精度,也依賴於實時操作系統實現的高精度計時功能。
2)多級中斷機制
一個實時應用系統通常需要處理多種外部信息或事件,但處理的緊迫程度有輕重緩急之分。有的必須立即作出反應,有的則可以延後處理。因此,需要建立多級中斷嵌套處理機制,以確保對緊迫程度較高的實時事件進行及時響應和處理。
3)實時調度機制
實時操作系統不僅要及時響應實時事件中斷,同時也要及時調度運行實時任務。但是,處理機調度並不能隨心所欲的進行,因為涉及到兩個進程之間的切換,只能在確保“安全切換”的時間點上進行,實時調度機制包括兩個方面,一是在調度策略和演演算法上保證優先調度實時任務;二是建立更多“安全切換”時間點,保證及時調度實時任務。

比較


實時系統與分時系統特徵的比較
(1)多路性。實時信息處理系統與分時系統一樣具有多路性。系統按分時原則為多個終端用戶服務;而對實時控制系統,其多路性則主要表現在經常對多路的現場信息進行採集以及對多個對象或多個執行機構進行控制。
(2)獨立性。實時信息處理系統與分時系統一樣具有獨立性。每個終端用戶在向分時系統提出服務請求時,是彼此獨立的操作,互不干擾;而在實時控制系統中信息的採集和對對象的控制,也彼此互不干擾。
(3)及時性。實時信息系統對實時性的要求與分時系統類似,都是以人所能接受的等待時間來確定;而實時控制系統的及時性,則是以控制對象所要求的開始截止時間或完成截止時間來確定的,一般為秒級、百毫秒級直至毫秒級,甚至有的要低於100微秒。
(4)交互性。實時信息處理系統具有交互性,但這裡人與系統的交互,僅限於訪問系統中某些特定的專用服務程序。它不像分時系統那樣能向終端用戶提供數據處理服務、資源共享等服務。
(5)可靠性。分時系統要求系統可靠,相比之下,實時系統則要求系統高度可靠。因為任何差錯都可能帶來巨大的經濟損失甚至無法預料的災難性後果。因此,在實時系統中,採取了多級容錯措施來保證系統的安全及數據的安全。

概念


基本概念

代碼臨界段:指處理時不可分割的代碼。一旦這部分代碼開始執行則不允許中斷打入;
資源:任何為任務所佔用的實體;
共享資源:可以被一個以上任務使用的資源;
任務:也稱作一個線程,是一個簡單的程序。每個任務被賦予一定的優先順序,有它自己的一套CPU寄存器和自己的棧空間。典型地,每個任務都是一個無限的循環,每個任務都處在以下五個狀態下:休眠態,就緒態,運行態,掛起態,被中斷態;
任務切換:將正在運行任務的當前狀態(CPU寄存器中的全部內容)保存在任務自己的棧區,然後把下一個將要運行的任務的當前狀態從該任務的棧中重新裝入CPU寄存器,並開始下一個任務的運行;
內核:負責管理各個任務,為每個任務分配CPU時間,並負責任務之間通訊。分為不可剝奪型內核和可剝奪型內核;
調度:內核的主要職責之一,決定輪到哪個任務運行。一般基於優先順序調度法;

優先順序的問題

任務優先順序:分為優先順序不可改變的靜態優先順序和優先順序可改變的動態優先順序;
優先順序反轉:優先順序反轉問題是實時系統中出現最多的問題。共享資源的分配可導致優先順序低的任務先運行,優先順序高的任務后運行。解決的辦法是使用“優先順序繼承”演演算法來臨時改變任務優先順序,以遏制優先順序反轉。

互斥

雖然共享數據區簡化了任務之間的信息交換,但是必須保證每個任務在處理共享共享數據時的排他性。使之滿足互斥條件的一般方法有:關中斷,使用測試並置位指令(TAS),禁止做任務切換,利用信號量。
因為採用實時操作系統的意義就在於能夠及時處理各種突發的事件,即處理各種中斷,因而衡量嵌入式實時操作系統的最主要、最具有代表性的性能指標參數無疑應該是中斷響應時間了。中斷響應時間通常被定義為:
中斷響應時間=中斷延遲時間+保存CPU狀態的時間+該內核的ISR進入函數的執行時間。
中斷延遲時間=MAX(關中斷的最長時間,最長指令時間) + 開始執行ISR的第一條指令的時間。
實時操作系統的特點
IEEE 的實時UNIX分委會認為實時操作系統應具備以下的幾點:
●非同步的事件響應
●切換時間和中斷延遲時間確定
●優先順序中斷和調度
●搶佔式調度
●,而在這有限的空間內不僅要裝載實時操作系統,還要裝載用戶程序。因此,在RTOS的設計中,其佔用內存大小是一個很重要的指標,這是RTOS設計與其它操作系統設計的明顯區別之一。
4. 最大中斷禁止時間:
當RTOS運行在核態或執行某些系統調用的時候,是不會因為外部中斷的到來而中斷執行的。只有當RTOS重新回到用戶態時才響應外部中斷請求,這一過程所需的最大時間就是最大中斷禁止時間。
5. 任務切換時間:
當由於某種原因使一個任務退出運行時,RTOS保存它的運行現場信息、插入相應隊列、並依據一定的調度演演算法重新選擇一個任務使之投入運行,這一過程所需時間稱為任務切換時間。
上述幾項中, 最大中斷禁止時間和任務切換時間是評價一個RTOS實時性最重要的兩個技術指標