當(dāng)前位置:首頁 > 百科知識 > 電子工程 > 正文

實(shí)時操作系統(tǒng)

實(shí)時操作系統(tǒng)(RTOS)是指當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時,能夠接受并以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時間之內(nèi)來控制生產(chǎn)過程或?qū)μ幚硐到y(tǒng)作出快速響應(yīng),并控制所有實(shí)時任務(wù)協(xié)調(diào)一致運(yùn)行的操作系統(tǒng)。因而,提供及時響應(yīng)和高可靠性是其主要特點(diǎn)。實(shí)時操作系統(tǒng)有硬實(shí)時和軟實(shí)時之分,硬實(shí)時要求在規(guī)定的時間內(nèi)必須完成操作,這是在操作系統(tǒng)設(shè)計(jì)時保證的;軟實(shí)時則只要按照任務(wù)的優(yōu)先級,盡可能快地完成操作即可。我們通常使用的操作系統(tǒng)在經(jīng)過一定改變之后就可以變成實(shí)時操作系統(tǒng)。

  1.英文簡稱

  英文稱Real Time Operating System,簡稱RTOS。

  2.定義

  實(shí)時操作系統(tǒng)是保證在一定時間限制內(nèi)完成特定功能的操作系統(tǒng)。例如,可以為確保生產(chǎn)線上的機(jī)器人能獲取某個物體而設(shè)計(jì)一個操作系統(tǒng)。在“硬”實(shí)時操作系統(tǒng)中,如果不能在允許時間內(nèi)完成使物體可達(dá)的計(jì)算,操作系統(tǒng)將因錯誤結(jié)束。在“軟”實(shí)時操作系統(tǒng)中,生產(chǎn)線仍然能繼續(xù)工作,但產(chǎn)品的輸出會因產(chǎn)品不能在允許時間內(nèi)到達(dá)而減慢,這使機(jī)器人有短暫的不生產(chǎn)現(xiàn)象。一些實(shí)時操作系統(tǒng)是為特定的應(yīng)用設(shè)計(jì)的,另一些是通用的。一些通用目的的操作系統(tǒng)稱自己為實(shí)時操作系統(tǒng)。但某種程度上,大部分通用目的的操作系統(tǒng),如微軟的Windows NT或IBM的OS/390有實(shí)時系統(tǒng)的特征。這就是說,即使一個操作系統(tǒng)不是嚴(yán)格的實(shí)時系統(tǒng),它們也能解決一部分實(shí)時應(yīng)用問題。

  3.特征

  1)高精度計(jì)時系統(tǒng)

  計(jì)時精度是影響實(shí)時性的一個重要因素。在實(shí)時應(yīng)用系統(tǒng)中,經(jīng)常需要精確確定實(shí)時地操作某個設(shè)備或執(zhí)行某個任務(wù),或精確的計(jì)算一個時間函數(shù)。這些不僅依賴于一些硬件提供的時鐘精度,也依賴于實(shí)時操作系統(tǒng)實(shí)現(xiàn)的高精度計(jì)時功能。

  2)多級中斷機(jī)制

  一個實(shí)時應(yīng)用系統(tǒng)通常需要處理多種外部信息或事件,但處理的緊迫程度有輕重緩急之分。有的必須立即作出反應(yīng),有的則可以延后處理。因此,需要建立多級中斷嵌套處理機(jī)制,以確保對緊迫程度較高的實(shí)時事件進(jìn)行及時響應(yīng)和處理。

  3)實(shí)時調(diào)度機(jī)制

  實(shí)時操作系統(tǒng)不僅要及時響應(yīng)實(shí)時事件中斷,同時也要及時調(diào)度運(yùn)行實(shí)時任務(wù)。但是,處理機(jī)調(diào)度并不能隨心所欲的進(jìn)行,因?yàn)樯婕暗絻蓚€進(jìn)程之間的切換,只能在確保“安全切換”的時間點(diǎn)上進(jìn)行,實(shí)時調(diào)度機(jī)制包括兩個方面,一是在調(diào)度策略和算法上保證優(yōu)先調(diào)度實(shí)時任務(wù);二是建立更多“安全切換”時間點(diǎn),保證及時調(diào)度實(shí)時任務(wù)。

  4.相關(guān)概念基本概念

  代碼臨界段:指處理時不可分割的代碼。一旦這部分代碼開始執(zhí)行則不允許中斷打入;

  資源:任何為任務(wù)所占用的實(shí)體;

  共享資源:可以被一個以上任務(wù)使用的資源;

  任務(wù):也稱作一個線程,是一個簡單的程序。每個任務(wù)被賦予一定的優(yōu)先級,有它自己的一套CPU寄存器和自己的棧空間。典型地,每個任務(wù)都是一個無限的循環(huán),每個任務(wù)都處在以下五個狀態(tài)下:休眠態(tài),就緒態(tài),運(yùn)行態(tài),掛起態(tài),被中斷態(tài);

  任務(wù)切換:將正在運(yùn)行任務(wù)的當(dāng)前狀態(tài)(CPU寄存器中的全部內(nèi)容)保存在任務(wù)自己的棧區(qū),然后把下一個將要運(yùn)行的任務(wù)的當(dāng)前狀態(tài)從該任務(wù)的棧中重新裝入CPU的寄存器,并開始下一個任務(wù)的運(yùn)行;

  內(nèi)核:負(fù)責(zé)管理各個任務(wù),為每個任務(wù)分配CPU時間,并負(fù)責(zé)任務(wù)之間通訊。分為不可剝奪型內(nèi)核和可剝奪型內(nèi)核;

  調(diào)度:內(nèi)核的主要職責(zé)之一,決定輪到哪個任務(wù)運(yùn)行。一般基于優(yōu)先級調(diào)度法;

  優(yōu)先級的問題

  任務(wù)優(yōu)先級:分為優(yōu)先級不可改變的靜態(tài)優(yōu)先級和優(yōu)先級可改變的動態(tài)優(yōu)先級;

  優(yōu)先級反轉(zhuǎn):優(yōu)先級反轉(zhuǎn)問題是實(shí)時系統(tǒng)中出現(xiàn)最多的問題。共享資源的分配可導(dǎo)致優(yōu)先級低的任務(wù)先運(yùn)行,優(yōu)先級高的任務(wù)后運(yùn)行。解決的辦法是使用“優(yōu)先級繼承”算法來臨時改變?nèi)蝿?wù)優(yōu)先級,以遏制優(yōu)先級反轉(zhuǎn)。

  互斥

  雖然共享數(shù)據(jù)區(qū)簡化了任務(wù)之間的信息交換,但是必須保證每個任務(wù)在處理共享共享數(shù)據(jù)時的排他性。使之滿足互斥條件的一般方法有:關(guān)中斷,使用測試并置位指令(TAS),禁止做任務(wù)切換,利用信號量。

  因?yàn)椴捎脤?shí)時操作系統(tǒng)的意義就在于能夠及時處理各種突發(fā)的事件,即處理各種中斷,因而衡量嵌入式實(shí)時操作系統(tǒng)的最主要、最具有代表性的性能指標(biāo)參數(shù)無疑應(yīng)該是中斷響應(yīng)時間了。中斷響應(yīng)時間通常被定義為:

  中斷響應(yīng)時間=中斷延遲時間+保存CPU狀態(tài)的時間+該內(nèi)核的ISR進(jìn)入函數(shù)的執(zhí)行時間。

  中斷延遲時間=MAX(關(guān)中斷的最長時間,最長指令時間) + 開始執(zhí)行ISR的第一條指令的時間。

  實(shí)時操作系統(tǒng)的特點(diǎn)

  IEEE 的實(shí)時UNIX分委會認(rèn)為實(shí)時操作系統(tǒng)應(yīng)具備以下的幾點(diǎn):

  ●異步的事件響應(yīng)

  ●切換時間和中斷延遲時間確定

  ●優(yōu)先級中斷和調(diào)度

  ●搶占式調(diào)度

  而在這有限的空間內(nèi)不僅要裝載實(shí)時操作系統(tǒng),還要裝載用戶程序。因此,在RTOS的設(shè)計(jì)中,其占用內(nèi)存大小是一個很重要的指標(biāo),這是RTOS設(shè)計(jì)與其它操作系統(tǒng)設(shè)計(jì)的明顯區(qū)別之一。

  4. 最大中斷禁止時間:

  當(dāng)RTOS運(yùn)行在核態(tài)或執(zhí)行某些系統(tǒng)調(diào)用的時候,是不會因?yàn)橥獠恐袛嗟牡絹矶袛鄨?zhí)行的。只有當(dāng)RTOS重新回到用戶態(tài)時才響應(yīng)外部中斷請求,這一過程所需的最大時間就是最大中斷禁止時間。

  5. 任務(wù)切換時間:

  當(dāng)由于某種原因使一個任務(wù)退出運(yùn)行時,RTOS保存它的運(yùn)行現(xiàn)場信息、插入相應(yīng)隊(duì)列、并依據(jù)一定的調(diào)度算法重新選擇一個任務(wù)使之投入運(yùn)行,這一過程所需時間稱為任務(wù)切換時間。

  上述幾項(xiàng)中, 最大中斷禁止時間和任務(wù)切換時間是評價一個RTOS實(shí)時性最重要的兩個技術(shù)指標(biāo)。
 


內(nèi)容來自百科網(wǎng)