什么是實時操作系統(tǒng)?
我們先把這個詞拆分成兩部分,一個是實時(Real Time),它指的是實現(xiàn)一個功能的線程或者一個任務必須在一個確定的時間內完成。而另一個詞操作系統(tǒng)(OS)則表示一個控制和管理計算機的硬件、軟件并可以合理分配及調度相應資源,以便可以提供給用戶的程序。那么實時操作系統(tǒng)的實質就在于“實時性”,它要保證如果有一個任務需要執(zhí)行,那么操作系統(tǒng)必須在較短時間內執(zhí)行此任務。
講到了RTOS,就需要提一嘴我們在日常嵌入式開發(fā)中經(jīng)常使用的前后臺系統(tǒng)。該系統(tǒng)由一個無限循環(huán)的程序組成,這個循環(huán)按順序執(zhí)行不同的應用模塊(系統(tǒng)的后臺),由中斷服務程序處理異步事件(系統(tǒng)的前臺)。一些核心關鍵操作必須由中斷程序進行執(zhí)行,以便可以及時處理。而由中斷程序提供的信息在對應后臺程序沒有順序執(zhí)行到之前,是不會被處理的,處理的延遲時間由后臺程序循環(huán)執(zhí)行的快慢來決定。
可以看到這種前后臺系統(tǒng)結構非常簡潔清晰,但是它的實時性主要是靠外部中斷信號,如果軟件規(guī)模變大,處理的模塊變多,變得很難管理,實時性也根本難以保障。所以需要一個機制可以給予不同任務優(yōu)先級的管理,讓優(yōu)先級更高的任務可以先獲得資源進行處理。于是就有實時操作系統(tǒng)的出現(xiàn)。
實時操作系統(tǒng)(RTOS)的開發(fā)旨在為了讓某些具有時效性、實時性的任務可以優(yōu)先獲得資源進行處理。根據(jù)對時間的硬件要求不同,又分為軟實時系統(tǒng)和硬實時系統(tǒng)。示意圖如下:
如上圖所示,RTOS將任務分成了不同等級,總是讓優(yōu)先級更高的任務先運行。同時,中斷優(yōu)先級最高,可以打斷所有任務,來處理緊急任務。
接下來再介紹一下RTOS的兩個核心機制:多任務和任務調度。
1.多任務:
傳統(tǒng)的CPU處理器同時只能執(zhí)行一個任務,一個多任務OS通過快速的任務切換,可以使它在人眼中看起來好像每個任務都在并行執(zhí)行。
2.任務調度:
對于可剝奪型內核,優(yōu)先級高的任務一旦響應,就會剝奪優(yōu)先級較低的任務的CPU使用權,從而提高了系統(tǒng)的實時響應能力。例如FreeRTOS,該操作系統(tǒng)支持搶占式調度和時間片調度。搶占式調度顧名思義就是任務一直運行直至有比其優(yōu)先級更高的任務搶占,來進行任務切換。而時間片調度則是每個任務都有相同的優(yōu)先級,每個任務會運行固定的時間片個數(shù)或者遇到阻塞函數(shù),才會執(zhí)行切換。
下面通過一張框圖,來說明一下搶占式調度如何在RTOS中運行。
運行過程描述如下:
1.首先任務1此時在運行,此時任務2準備就緒,且任務2比任務1的優(yōu)先級高,所有在搶占式調度器的作用下,任務2會搶占任務1的執(zhí)行。
2.任務2此時在運行中,運行過程中任務3進入就緒。由于任務3比任務2優(yōu)先級高,任務3搶占進行執(zhí)行。
相信大家已經(jīng)對實時操作系統(tǒng)有了初步的認識,本文介紹的內容只是冰山一角,如果有興趣的話,可以找一款開源RTOS進行深入學習!
7 X 24 銷售服務熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 杭州辦事處戴經(jīng)理:17512568697
常州辦事處崔經(jīng)理:15906110783 南京辦事處葛經(jīng)理:17626012283
業(yè)務郵箱:support@cdebyte.com
全國銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號B5棟(前臺座機:028-61543675)
?? 成都億佰特電子科技有限公司【版權所有】 蜀ICP備13019384號-3