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

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

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

  1.英文簡(jiǎn)稱

  英文稱Real Time Operating System,簡(jiǎn)稱RTOS。

  2.定義

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

  3.特征

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  優(yōu)先級(jí)的問(wèn)題

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

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

  互斥

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

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

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

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

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

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

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

  ●切換時(shí)間和中斷延遲時(shí)間確定

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

  ●搶占式調(diào)度

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

  4. 最大中斷禁止時(shí)間:

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

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

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

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


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