實時操作系統(tǒng) 包括硬實時與軟實時的區(qū)別_第1頁
實時操作系統(tǒng) 包括硬實時與軟實時的區(qū)別_第2頁
實時操作系統(tǒng) 包括硬實時與軟實時的區(qū)別_第3頁
實時操作系統(tǒng) 包括硬實時與軟實時的區(qū)別_第4頁
實時操作系統(tǒng) 包括硬實時與軟實時的區(qū)別_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、一什么是真正的實時操作系統(tǒng)做嵌入式系統(tǒng)開發(fā)有一段時間了,做過用于手機平臺的嵌入式Linux,也接觸過用于交換機、媒體網(wǎng)關平臺的VxWorks,實際應用后回過頭來看理論,才發(fā)現(xiàn)自己理解的膚淺,也發(fā)現(xiàn)CSDN上好多同學們都對實時、嵌入式這些概念似懂非懂,畢竟如果不做類似的產(chǎn)品,平時接觸的機會很少,即使做嵌入式產(chǎn)品開發(fā),基本也是只管調(diào)用Platformteam封裝好的API。所以在此總結一下這些概念,加深自己的理解,同時也給新手入門,歡迎大家拍磚,爭取寫個連載,本文先總結一下實時的概念,什么是真正的實時操作系統(tǒng)?1. 首先說一下實時的定義及要求:參見 Donal Gillies 在 Realtime

2、 Computing FAQ 中提出定義:實時系統(tǒng)指系統(tǒng)的計算正確性不僅取決于計算的邏輯正確性,還取決于產(chǎn)生結果的時間。如果未滿足系統(tǒng)的時間約束,則認為系統(tǒng)失效。/faqs/realtime-computing/faq/一個實時操作系統(tǒng)面對變化的負載(從最小到最壞的情況)時必須確定性地保證滿足時間要求。請注意,必須要滿足確定性,而不是要求速度足夠快!例如,如果使用足夠強大的CPU,Windows在CPU空閑時可以提供非常短的典型中斷響應,但是,當某些后臺任務正在運行時,有時候響應會變得非常漫長,以至于某一個簡單的讀取文件的任務會長時間無響應,甚至直接掛死。這

3、是一個基本的問題:并不是Windows不夠快或效率不夠高,而是因為它不能提供確定性,所以,Windows不是一個實時操作系統(tǒng)。根據(jù)實際應用,可以選擇采用硬實時操作系統(tǒng)或軟實時操作系統(tǒng),硬實時當然比軟實時好,但是,如果你的公司正在準備開發(fā)一款商用軟件,那請你注意了,業(yè)界公認比較好的VxWorks(WindRiver開發(fā)),會花光你本來就很少的銀子,而軟實時的操作系統(tǒng),如某些實時Linux,一般是開源免費的,我們公司本來的產(chǎn)品就是基于VxWorks的,現(xiàn)在業(yè)界都在CostReduction,為了響應號召,正在調(diào)研如何把平臺換成免費的嵌入式實時Linux。同學們,如何選擇,自己考慮吧:-)硬實時 -

4、 代表產(chǎn)品 VxWorks舉一個經(jīng)常使用的實例,中高檔汽車中使用的氣囊。當報告車輛碰撞的傳感器中斷CPU后,操作系統(tǒng)應快速地分配展開氣囊的任務,并且不允許任何其他非實時處理進行干擾,晚一秒鐘展開氣囊比沒有氣囊的情況更糟糕,這就是一個典型的必須使用硬實時的系統(tǒng)。硬實時系統(tǒng)指系統(tǒng)要有確保的最壞情況下的服務時間,即對于事件的響應時間的截止期限是無論如何都必須得到滿足。軟實時 - 代表產(chǎn)品 軟實時Linux再舉一個實例,IPTV數(shù)字電視機頂盒,需要實時的處理(解碼)視頻流,如果丟失了一個或幾個視頻幀,顯然會造成視頻的品質更差,但是只要做過簡單的抖動處理的系統(tǒng),丟失幾個視頻幀就不會對整個系統(tǒng)造成不可挽救

5、的影響。軟實時系統(tǒng)就是那些從統(tǒng)計的角度來說,一個任務能夠得到有確保的處理時間,到達系統(tǒng)的事件也能夠在截止期限到來之前得到處理,但違反截止期限并不會帶來致命的錯誤。-請注意:講到這里,想花點墨水區(qū)分一下實時和嵌入式的概念,因為筆者也長時間把這兩者混為一談。實時操作系統(tǒng)的概念上文已經(jīng)講的很清楚了,主要就是要能確定性的滿足時間要求。嵌入式系統(tǒng)很難下一個定義,有興趣的可以百科一下“嵌入式系統(tǒng)”,一般可以認為是板子或芯片上軟硬件的總和,嵌入式系統(tǒng)一定要對實時任務有很強的支持能力,所以一般嵌入式系統(tǒng)都會采用實時操作系統(tǒng),根據(jù)不同應用,選擇采用硬實時或軟實時。-2. 如何衡量一個實時操作系統(tǒng)的實時性能?主要

6、有以下兩個重要指標: 指標1、中斷響應時間(可屏蔽中斷)計算機接收到中斷信號到操作系統(tǒng)作出響應,并完成切換轉入中斷服務程序的時間。對于搶先式內(nèi)核,要先調(diào)用一個特定的函數(shù),該函數(shù)通知內(nèi)核即將進行中斷服務,使得內(nèi)核可以跟蹤中斷的嵌套。搶先式內(nèi)核的中斷響應時間由下式給出:中斷響應時間關中斷的最長時間+保護CPU 內(nèi)部寄存器的時間+進入中斷服務函數(shù)的執(zhí)行時間+開始執(zhí)行中斷服務例程(ISR)的第一條指令時間請注意:中斷響應時間是系統(tǒng)在最壞情況下響應中斷的時間,某系統(tǒng)100次中有99次在50ms之內(nèi)響應中斷,只有一次響應中斷的時間是250ms,只能認為中斷響應時間是250ms。 指標2、任務切換時間除為中

7、斷處理提供確定性外,實時處理也需要支持周期性間隔的任務調(diào)度。大量控制系統(tǒng)要求周期性采樣與處理。某個特定任務必須按照固定的周期(p)執(zhí)行,從而確保系統(tǒng)的穩(wěn)定性??紤]一下汽車的防抱死系統(tǒng)(ABS)。控制系統(tǒng)對車輛的每個車輪的轉速進行采樣(每秒最多 20次)并控制每個制動器的壓力(防止它鎖死)。為了保持控制系統(tǒng)的正常工作,傳感器的采樣與控制必須按照一定的周期間隔。這意味著必須搶占其他處理,以便ABS 任務能按照期望的周期執(zhí)行。當多任務內(nèi)核決定運行另外的任務時,它把正在運行任務的當前狀態(tài)(即CPU寄存器中的全部內(nèi)容)保存到任務自己的棧區(qū)之中。然后把下一個將要運行的任務的當前狀態(tài)從該任務的棧中重新裝入C

8、PU的寄存器,并開始下一個任務的運行。這個過程就稱為任務切換。做任務切換所需要的時間取決于CPU 有多少寄存器要入棧。CPU的寄存器越多,額外負荷就越重。 系統(tǒng)實時性能重要指標的典型值- VxWorks uC/OS-II RT-Linux2.0QNX6硬件平臺MC6800033MHz-48660MHz-486 33MHz-486任務切換3.8us 9us 不詳 12.57us中斷響應 3us 7.5us 25us 7.54us-參考文獻:4種實時操作系統(tǒng)實時性的分析對比 - 百度一下可以搜到3. 實時操作系統(tǒng)的核心 - 任務調(diào)度(VxWorks)既然實時性對于實時操作系統(tǒng)如此重要,同學們,我們

9、下面就來學習一下實現(xiàn)實時性的核心模塊 -任務調(diào)度。筆者所在的公司花了大把銀子購買風河的VxWorks,但是為了實現(xiàn)自己的可控性,除了任務調(diào)度模塊以外全部重寫,包括內(nèi)存管理、文件管理等其他核心模塊,但唯獨任務調(diào)度模塊除外,這可是人家的壓箱底法寶:-)構成應用軟件系統(tǒng)的程序集合中,獨立的、相互作用的程序單元,在其執(zhí)行時稱之為任務,從系統(tǒng)的角度來看,任務是競爭系統(tǒng)資源的最小運行單元。單個CPU中,多任務機制制造了一個多個任務同時執(zhí)行的假象。其實系統(tǒng)只是根據(jù)一個多任務調(diào)度算法,將內(nèi)核插入到這些任務中執(zhí)行。實時系統(tǒng)VxWorks的一個任務可有多種狀態(tài),但最基本的狀態(tài)有以下四種:1) 就緒態(tài)(Ready)

10、:任務只等待系統(tǒng)分配CUP資源。2) 掛起態(tài)(Pend):任務需等待某些不可利用的資源而被阻塞。3) 休眠態(tài)(Sleep):如果系統(tǒng)不需要某一個任務工作,則這個任務處于休眠狀態(tài)。4) 延遲態(tài)(Delay):任務被延遲時所處的狀態(tài)。大家可以在網(wǎng)上搜一下VxWorks任務調(diào)度的相關文章,一般都會配狀態(tài)機圖。-請注意:任務(task)、進程(process)、線程(thread)等概念相互聯(lián)系又相互區(qū)別,因為不是本文的重點,這里不多解釋,如果想詳細了解推薦看一看“Windows Kernel Programming”。在VxWorks中,因為每個任務沒有自己獨立的虛擬內(nèi)存空間,可以把任務理解為線程。

11、 -任務由系統(tǒng)內(nèi)核調(diào)度運行一段固定長度的時間,稱為時間片。調(diào)度是指為任務分配資源和時間,使系統(tǒng)滿足特定的性能要求。調(diào)度算法的目的是在正常情況下,盡可能滿足所有任務的時限:在峰值負載條件下,保證強實時任務滿足時限。因為時限是區(qū)分實時系統(tǒng)和非實時系統(tǒng)的關鍵因素,因此調(diào)度算法是實時系統(tǒng)的基本問題。實時操作系統(tǒng)所具有的運行性能,如吞吐量的大小、周轉時間的長短、相應的及時性和可預測性等在很大程度上都取決于實時調(diào)度。進程調(diào)度可采用下述兩種方式:1. 非搶占方式。采用這種調(diào)度方式,一旦把處理機分配給某進程后,便讓該進程一直執(zhí)行,直到該進程完成或發(fā)生某事件而被阻塞,才再把處理機分配給其他進程,決不允許某進程搶

12、占已經(jīng)分配出去的處理機。顯然它難于滿足緊急任務的要求,實時系統(tǒng)中不宜采用這種調(diào)度方式。2. 搶占方式。允許調(diào)度程序根據(jù)某種原則,去停止某個正在執(zhí)行的進程,將已分配給該進程的處理機,重新分配給另一進程。搶占的原則有:- 時間片原則。各進程按時間片運行,當一個時間片用完后,便停止該進程的執(zhí)行而重新進行調(diào)度。-優(yōu)先權原則。當一個進程到來時,如果其優(yōu)先級比正在執(zhí)行的進程的優(yōu)先級高,便停止正在執(zhí)行的進程,將處理機分配給優(yōu)先級高的進程,使之執(zhí)行。實時系統(tǒng)中一般采用基于優(yōu)先級的搶占式調(diào)度和輪轉調(diào)度的進程調(diào)度和中程調(diào)度相結合的調(diào)度策略。因此既可具有較大的靈活性,又能獲得極小的調(diào)度延遲。VxWorks的wind

13、內(nèi)核缺省調(diào)度機制為基于優(yōu)先級的搶占式調(diào)度。采用這種機制時,系統(tǒng)把處理機分配給優(yōu)先級最高的進程,使之執(zhí)行。一旦出現(xiàn)了另一個優(yōu)先級更高的進程時,進程調(diào)度程序剝奪當前任務的執(zhí)行,將處理機分配給高優(yōu)先級任務。而在相同優(yōu)先級的多個任務之間,采用時間片輪轉調(diào)度機制。采用這種機制時,當一個任務到達時,它被排在輪轉隊列的后面,等待分配給自己的時間片的到來,如果在時間片內(nèi)沒有結束,則再等待屬于自己的時間片的到來,直到任務完成。- 優(yōu)先級搶占式 采用基于優(yōu)先級的搶占式調(diào)度,系統(tǒng)中每個任務都有一個介于最高0到最低255之間的優(yōu)先級。任一時刻,系統(tǒng)內(nèi)核一旦發(fā)現(xiàn)一個優(yōu)先級更高的任務轉變?yōu)榫途w態(tài),內(nèi)核就保存當前任務的上下

14、文并把當前任務狀態(tài)轉換為阻塞態(tài),同時切換到這個高優(yōu)先級任務的上下文執(zhí)行。- 輪轉調(diào)度算法 采用輪轉調(diào)度算法,系統(tǒng)讓處于就緒態(tài)的優(yōu)先級相同的一組任務依次輪流執(zhí)行預先確定長度的時間片。這是一種處理機平均分配的方法。如果不使用輪轉調(diào)度算法,優(yōu)先級相同的一組任務中第一個獲得處理機的任務將不會被阻塞而獨占處理機,如果沒有阻塞或其他情況發(fā)生,它不會放棄處理機的使用權。- 搶占調(diào)度與輪轉調(diào)度混合方式 有時,基于優(yōu)先級的搶占式調(diào)度可與輪轉調(diào)度相結合。當優(yōu)先級相同的一組任務依次輪流平均分配處理機時,若有高優(yōu)先級的任務轉變?yōu)榫途w態(tài)則可搶占該組任務。直到再一次符合執(zhí)行條件時,該組任務才可再次共享處理機。 為了任務控

15、制的靈活性,VxWorks內(nèi)核還提供了動態(tài)優(yōu)先級機制,任務的優(yōu)先級在運行期間可動態(tài)地變化。同時,為了防止優(yōu)先級反轉,還具有優(yōu)先級繼承機制,通過使用互斥信號量可以防止高優(yōu)先級的任務被迫等待一段不確定時間,直到一個低優(yōu)先級任務完成。參考文獻:實時操作系統(tǒng)VxWorks的內(nèi)核任務調(diào)度研究 - 百度一下可以搜到4. Linux的任務調(diào)度通用Linux系統(tǒng)支持實時和非實時兩種進程,實時進程相對于普通進程具有絕對的優(yōu)先級。對應地,實時進程采用SCHED_FIFO或者SCHED_RR調(diào)度策略,普通的進程采用SCHED_OTHER調(diào)度策略。在調(diào)度算法的實現(xiàn)上,Linux中的每個任務有四個與調(diào)度相關的參數(shù),它們

16、是rt_priority、policy、priority(nice)、counter。調(diào)度程序根據(jù)這四個參數(shù)進行進程調(diào)度。在SCHED_OTHER調(diào)度策略中,調(diào)度器總是選擇那個priority+counter值最大的進程來調(diào)度執(zhí)行。從邏輯上分析SCHED_OTHER調(diào)度策略存在著調(diào)度周期(epoch),在每一個調(diào)度周期中,一個進程的priority和counter值的大小影響了當前時刻應該調(diào)度哪一個進程來執(zhí)行,其中priority是一個固定不變的值,在進程創(chuàng)建時就已經(jīng)確定,它代表了該進程的優(yōu)先級,也代表這該進程在每一個調(diào)度周期中能夠得到的時間片的多少;counter是一個動態(tài)變化的值,它反映了

17、一個進程在當前的調(diào)度周期中還剩下的時間片。在每一個調(diào)度周期的開始,priority的值被賦給counter,然后每次該進程被調(diào)度執(zhí)行時,counter值都減少。當counter值為零時,該進程用完自己在本調(diào)度周期中的時間片,不再參與本調(diào)度周期的進程調(diào)度。當所有進程的時間片都用完時,一個調(diào)度周期結束,然后周而復始。另外可以看出Linux系統(tǒng)中的調(diào)度周期不是靜態(tài)的,它是一個動態(tài)變化的量,比如處于可運行狀態(tài)的進程的多少和它們priority值都可以影響一個epoch的長短。值得注意的一點是,在2.4以上的內(nèi)核中,priority被nice所取代,但二者作用類似??梢奡CHED_OTHER調(diào)度策略本質

18、上是一種比例共享的調(diào)度策略,它的這種設計方法能夠保證進程調(diào)度時的公平性-一個低優(yōu)先級的進程在每一個epoch中也會得到自己應得的那些CPU執(zhí)行時間,另外它也提供了不同進程的優(yōu)先級區(qū)分,具有高priority值的進程能夠獲得更多的執(zhí)行時間。對于實時進程來說,它們使用的是基于實時優(yōu)先級rt_priority的優(yōu)先級調(diào)度策略,但根據(jù)不同的調(diào)度策略,同一實時優(yōu)先級的進程之間的調(diào)度方法有所不同:-SCHED_FIFO:不同的進程根據(jù)靜態(tài)優(yōu)先級進行排隊,然后在同一優(yōu)先級的隊列中,誰先準備好運行就先調(diào)度誰,并且正在運行的進程不會被終止直到以下情況發(fā)生:1.被有更高優(yōu)先級的進程所強占CPU;2.自己因為資源請

19、求而阻塞;3.自己主動放棄CPU(調(diào)用sched_yield); - SCHED_RR:這種調(diào)度策略跟上面的SCHED_FIFO一模一樣,除了它給每個進程分配一個時間片,時間片到了正在執(zhí)行的進程就放棄執(zhí)行;時間片的長度可以通過sched_rr_get_interval調(diào)用得到; 由于Linux系統(tǒng)本身是一個面向桌面的系統(tǒng),所以將它應用于實時應用中時存在如下的一些問題:- Linux系統(tǒng)中的調(diào)度單位為10ms,所以它不能夠提供精確的定時; - 當一個進程調(diào)用系統(tǒng)調(diào)用進入內(nèi)核態(tài)運行時,它是不可被搶占的; - Linux內(nèi)核實現(xiàn)中使用了大量的封中斷操作會造成中斷的丟失; - 由于使用虛擬內(nèi)存技術,當

20、發(fā)生頁出錯時,需要從硬盤中讀取交換數(shù)據(jù),但硬盤讀寫由于存儲位置的隨機性會導致隨機的讀寫時間,這在某些情況下會影響一些實時任務的截止期限; - 雖然Linux進程調(diào)度也支持實時優(yōu)先級,但缺乏有效的實時任務的調(diào)度機制和調(diào)度算法;它的網(wǎng)絡子系統(tǒng)的協(xié)議處理和其它設備的中斷處理都沒有與它對應的進程的調(diào)度關聯(lián)起來,并且它們自身也沒有明確的調(diào)度機制; 參考文獻:基于Linux的實時系統(tǒng) - 百度一下可以搜到5. 實時Linux研究呼哧呼哧寫了半天,終于到了重頭戲,實時Linux研究。前文說過,風河的VxWorks雖然性能大大的好,但是要花很多銀子,對于一般的軟實時應用系統(tǒng)來說,還是用開源免費的實時Linux

21、比較好。筆者所在的公司也正在研究將平臺轉為Linux。有許多種方法可以賦予普通Linux實時的能力:5.1 瘦內(nèi)核(微內(nèi)核)- Thin-Kernel瘦內(nèi)核(或微內(nèi)核)方法使用了第二個內(nèi)核作為硬件與 Linux 內(nèi)核間的抽象接口。非實時 Linux內(nèi)核在后臺運行,作為瘦內(nèi)核的一項低優(yōu)先級任務托管全部非實時任務。實時任務直接在瘦內(nèi)核上運行。瘦內(nèi)核主要用于(除了托管實時任務外)中斷管理。瘦內(nèi)核截取中斷以確保非實時內(nèi)核無法搶占瘦內(nèi)核的運行。這允許瘦內(nèi)核提供硬實時支持。雖然瘦內(nèi)核方法有自己的優(yōu)勢(硬實時支持與標準 Linux 內(nèi)核共存),但這種方法也有缺點。實時任務和非實時任務是獨立的,這造成了調(diào)試困

22、難。而且,非實時任務并未得到 Linux 平臺的完全支持(瘦內(nèi)核執(zhí)行稱為瘦 的一個原因)。使用這種方法的例子有 RTLinux (現(xiàn)在由 Wind River Systems 專有),實時應用程序接口(RTAI)和 Xenomai。5.2 超微內(nèi)核這里瘦內(nèi)核方法依賴于包含任務管理的最小內(nèi)核,而超微內(nèi)核法對內(nèi)核進行更進一步的縮減。通過這種方式,它不像是一個內(nèi)核而更像是一個硬件抽象層(HAL)。超微內(nèi)核為運行于更高級別的多個操作系統(tǒng)提供了硬件資源共享。因為超微內(nèi)核對硬件進行了抽象,因此它可為更高級別的操作系統(tǒng)提供優(yōu)先權,從而支持實時性。注意,這種方法和運行多個操作系統(tǒng)的虛擬化方法有一些相似之處。使

23、用這種方法的情況下,超微內(nèi)核在實時和非實時內(nèi)核中對硬件進行抽象。這與 hypervisor 從客戶(guest)操作系統(tǒng)對裸機進行抽象的方式很相似。 關于超微內(nèi)核的示例是操作系統(tǒng)的 Adaptive Domain Environment for Operating Systems(ADEOS)。ADEOS 支持多個并發(fā)操作系統(tǒng)同步運行。當發(fā)生硬件事件后,ADEOS對鏈中的每個操作系統(tǒng)進行查詢以確定使用哪一個系統(tǒng)處理事件。 5.3 資源內(nèi)核(Resource-kernel)另一個實時架構是資源內(nèi)核法。這種方法為內(nèi)核增加一個模塊,為各種資源提供預留(reservation)。這種機制保證了對時分復

24、用(time-multiplexed)系統(tǒng)資源的訪問(CPU、網(wǎng)絡或磁盤帶寬)。這些資源擁有多個預留參數(shù),如循環(huán)周期、需要的處理時間(也就是完成處理所需的時間),以及截止時間。資源內(nèi)核提供了一組應用程序編程接口(API),允許任務請求這些預留資源。然后資源內(nèi)核可以合并這些請求,使用任務定義的約束定義一個調(diào)度,從而提供確定的訪問(如果無法提供確定性則返回錯誤)。通過調(diào)度算法,如 Earliest-Deadline-First(EDF),內(nèi)核可以處理動態(tài)的調(diào)度負載。資源內(nèi)核法實現(xiàn)的一個示例是 CMU 公司的 Linux/RK,它把可移植的資源內(nèi)核集成到 Linux 中作為一個可加載模塊。這種實現(xiàn)演

25、化成商用的 TimeSys Linux/RT 產(chǎn)品。5.4 標準的Linux內(nèi)核最新版本2.6中加入了實時功能目前探討的這些方法在架構上都很有趣,但是它們都在內(nèi)核的外圍運行。然而,如果對標準 Linux 內(nèi)核進行必要的修改使其支持實時性,結果會怎么樣呢?今天,在 2.6 內(nèi)核中,通過對內(nèi)核進行簡單配置使其完全可搶占,您就可以得到軟實時功能。在標準 2.6 Linux內(nèi)核中,當用戶空間的進程執(zhí)行內(nèi)核調(diào)用時(通過系統(tǒng)調(diào)用),它便不能被搶占。這意味著如果低優(yōu)先級進程進行了系統(tǒng)調(diào)用后,高優(yōu)先級進程必須等到調(diào)用結束后才能訪問 CPU。新的配置選項 CONFIG_PREEMPT 改變了這一內(nèi)核行為,在高優(yōu)

26、先級任務可用的情況下(即使此進程正在進行系統(tǒng)調(diào)用),它允許進程被搶占。 但這種配置選項也是一種折衷。雖然此選項實現(xiàn)了軟實時性能并且即使在負載條件下也可使操作系統(tǒng)順利地運行,但這樣做也付出了代價。代價就是略微減低了吞吐量以及內(nèi)核性能,原因是 CONFIG_PREEMPT 選項增加了開銷。這種選項對桌面和嵌入式系統(tǒng)而言是有用的,但并不是在任何場景下都有用(例如,服務器)。 在 2.6 內(nèi)核中另一項有用的配置選項是高精度定時器。這個新選項允許定時器以 1s 的精度運行(如果底層硬件支持的話),并通過紅黑樹實現(xiàn)對定時器的高效管理。通過紅黑樹,可以使用大量的定時器而不會對定時器子系統(tǒng)(O(log n))

27、的性能造成影響。 只需要一點額外的工作,就可以通過 PREEMPT_RT 補丁實現(xiàn)硬實時。PREEMPT_RT補丁提供了多項修改,可實現(xiàn)硬實時支持。其中一些修改包括重新實現(xiàn)一些內(nèi)核鎖定原語,從而實現(xiàn)完全可搶占,實現(xiàn)內(nèi)核互斥的優(yōu)先級繼承,并把中斷處理程序轉換為內(nèi)核線程以實現(xiàn)線程可搶占。二硬實時和軟實時區(qū)別分類:rtems2010-01-14 09:441497人閱讀評論(0)收藏舉報嵌入式實時系統(tǒng)中采用的操作系統(tǒng)我們稱為嵌入式實時操作系統(tǒng),它既是嵌入式操作系統(tǒng),又是實時操作系統(tǒng)。作為一種嵌入式操作系統(tǒng),它具有嵌入式軟件共有的可裁剪、低資源占用、低功耗等特點;而作為一種實時操作系統(tǒng)(本文對實時操作系統(tǒng)特性的討論僅限于強實時操作系統(tǒng),下面提到的實時操作系統(tǒng)也均指強實時操作系統(tǒng)),它與通用操作系統(tǒng)(如Windows、Unix、Linux等)相比有很大的差別,下面我們將

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論