專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

對實(shí)時(shí)操作系統(tǒng)的理解

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2011年02月24日   【字體:

首先硬實(shí)時(shí)系統(tǒng)不是硬實(shí)時(shí)操作系統(tǒng),

硬實(shí)時(shí)系統(tǒng)描敘的是一個(gè)結(jié)果,而硬實(shí)時(shí)操作系統(tǒng)純粹是軟件。

硬實(shí)時(shí)系統(tǒng)本質(zhì)是確定性,100%的確定性,任務(wù)在某個(gè)條件下開始,多長時(shí)間執(zhí)行完,都必須100%確定,例如繼電器控制邏輯。

實(shí)際上沒有所謂的軟實(shí)時(shí),軟實(shí)時(shí)的概念在不同的人和不同的環(huán)境,其意義不一樣,例如3D射擊游戲,它的實(shí)時(shí)就是人眼不能感到有明顯抖動,而在控制行業(yè),軟實(shí)時(shí)系統(tǒng)要求是盡可能的達(dá)標(biāo),達(dá)不到標(biāo)準(zhǔn)也沒有太大關(guān)系(不會有設(shè)備損壞,人員安全,功能沒有完成),這樣說來,任何系統(tǒng)都可以是軟實(shí)時(shí),軟實(shí)時(shí)本質(zhì)就是幾率,例如,達(dá)到1us的響應(yīng)有99%的,達(dá)到1ms的響應(yīng)有99.9%的幾率,可以認(rèn)為window也是軟實(shí)時(shí)系統(tǒng)。

硬實(shí)時(shí)操作系統(tǒng)的很多特點(diǎn)(搶占任務(wù)調(diào)度,優(yōu)先級等),都是為了實(shí)現(xiàn)確定性而提供的實(shí)現(xiàn)手段,實(shí)時(shí)操作系統(tǒng)只是提供了一種方便實(shí)現(xiàn)實(shí)時(shí)系統(tǒng)的平臺可能性(裸機(jī)也可以達(dá)到)

而要保證系統(tǒng)硬實(shí)時(shí),要
1)足夠強(qiáng)大的硬件平臺,也就是是輸入、處理、輸出都是確定性的,性能是滿足的
2)任務(wù)的劃分是合理的,要確保硬實(shí)時(shí)任務(wù)的確定性,例如最高硬實(shí)時(shí)任務(wù)是最高優(yōu)先級
如果沒有上面2點(diǎn),無論怎樣單片機(jī)還是操作系統(tǒng)都不能達(dá)到硬實(shí)時(shí)的效果。這里有一個(gè)優(yōu)秀的51實(shí)時(shí)系統(tǒng)RTX51原理分析與移植大家可參考下:http://www.torrancerestoration.com/mcu/254.html

單片機(jī)裸機(jī)是否可以實(shí)現(xiàn)硬實(shí)時(shí)?
單片機(jī)裸機(jī)當(dāng)然可以實(shí)現(xiàn)硬實(shí)時(shí),而且單片機(jī)裸機(jī)是響應(yīng)最快、最確定性、開發(fā)最簡單直接的硬實(shí)時(shí)系統(tǒng)開發(fā)平臺,單片機(jī)裸機(jī)的缺點(diǎn)是系統(tǒng)大了之后,會導(dǎo)致開發(fā)任務(wù)過大,任務(wù)間通訊工作量大,任務(wù)只能簡單的輪詢,沒有優(yōu)先級概念,如果系統(tǒng)任務(wù)劃分簡單,沒有太多的外部依賴,完全可以采用單片機(jī)做硬實(shí)時(shí)系統(tǒng)。

何時(shí)使用實(shí)時(shí)操作系統(tǒng)?
系統(tǒng)復(fù)雜度比較大,有很多的任務(wù),而且任務(wù)可能是不同的人在開發(fā),任務(wù)間有較多的通訊,操作系統(tǒng)或者第三方提供很多的庫,不必從頭開發(fā)。

實(shí)時(shí)系統(tǒng)和嵌入式有關(guān)系么?
根本是不同的概念,實(shí)時(shí)系統(tǒng)著重在確定性,嵌入式著重在系統(tǒng)的體積

硬實(shí)時(shí)系統(tǒng)是否一定是通過軟件系統(tǒng)實(shí)現(xiàn)?
硬實(shí)時(shí)系統(tǒng)實(shí)現(xiàn)方式很多種,機(jī)械方式,繼電器方式,F(xiàn)PGA方式,單片機(jī)方式,操作系統(tǒng)方式,很多的實(shí)現(xiàn)方式運(yùn)行時(shí)根本沒有軟件

系統(tǒng)的好壞,首先是總體設(shè)計(jì),在基于了解業(yè)務(wù)的基礎(chǔ)上才能做出好的設(shè)計(jì),如果,業(yè)務(wù)都不了解,就關(guān)注在實(shí)現(xiàn)手段上,就舍本逐末了。
如果了解了業(yè)務(wù),可以比較好的劃分任務(wù),例如,將人機(jī)交互任務(wù)放置在普通的PC機(jī)上,將控制任務(wù)或者對時(shí)間要求高的任務(wù)放置在下位機(jī)上(PCI板子或者通訊連接的外部板子),這樣即使是很搓的系統(tǒng),其結(jié)果組合起來也是相當(dāng)好的。
至于具體實(shí)時(shí)系統(tǒng)的實(shí)現(xiàn),類型太多,對于大部分系統(tǒng),只要了解即可,對于很核心的幾個(gè)系統(tǒng),其類型分別為
硬件級別的FPGA
單片機(jī)級別的
強(qiáng)實(shí)時(shí)系統(tǒng)級別的,UCOS,VXWORKS,RTAI
弱實(shí)時(shí)系統(tǒng)級別的,wince

另外一個(gè)系統(tǒng),肯定有實(shí)時(shí)的部分和非實(shí)時(shí)部分,所以實(shí)際系統(tǒng)并不一定要全部是實(shí)時(shí)的,如果上下位機(jī)或者雙內(nèi)核系統(tǒng),就比較符合實(shí)際的情況

即使在usos中,界面部分一般也是非實(shí)時(shí)任務(wù)

對于方案的選擇,其實(shí)大部分是在和工作量和復(fù)雜度做斗爭,
如果在PC機(jī)上,由于微軟和其他廠商提供的現(xiàn)成的東西,所以無需自底開發(fā),除非,自己做了自己的板子,需要寫驅(qū)動。
而對于SOC,由于開發(fā)商提供的東西并不多,大部分都是都是數(shù)據(jù)手冊,然后開發(fā)工具基本就是編譯器和燒寫器,所以對其的開發(fā)基本要自底開始,首先要會底,然后才可以考慮操作系統(tǒng)、協(xié)議棧移植等問題。對于單片機(jī)提供商提供的api封裝,用戶最好自己驗(yàn)證,可能有錯(cuò)誤。
PC機(jī)擴(kuò)展方式多種,PCI,USB,以太網(wǎng)等等,根據(jù)需要而定

window做實(shí)時(shí)控制缺點(diǎn)
包袱太重,系統(tǒng)任務(wù)基本是不能定制的,
這些任務(wù)可能會導(dǎo)致系統(tǒng)資源的消耗的不確定性
系統(tǒng)不能裁剪,大小不能定制
內(nèi)核不開發(fā),系統(tǒng)接口不開放,除了問題無法定位
雖然有缺點(diǎn)但還是可以通過一些方法來補(bǔ)救的,
方法詳見我的另一篇文章“如何提高window實(shí)時(shí)性能

linux做實(shí)時(shí)控制基本沒有上面缺點(diǎn),

但是相對ucos,這些操作系統(tǒng)還是包袱過重,做簡單控制要熟悉的上下文太多,工控機(jī)系統(tǒng)適合做大數(shù)據(jù)處理、復(fù)雜耦合處理、人機(jī)操作復(fù)雜、原型試驗(yàn)性質(zhì)、對體積不敏感的東西

 

關(guān)閉窗口

相關(guān)文章