嵌入式操作系統(tǒng)在高速實(shí)時信號處理系統(tǒng)中的應(yīng)用(2)
2012年05月29日 09:20 來源:互聯(lián)網(wǎng) 作者:秩名 我要評論(0)
2 嵌入式實(shí)時操作系統(tǒng)VxWorks
VxWorks是實(shí)時多任務(wù)操作系統(tǒng),它能在確定的時間內(nèi)執(zhí)行其功能,并對外部異步事件作出響應(yīng)。多任務(wù)環(huán)境允許一個實(shí)時應(yīng)用劃分為多個獨(dú)立任務(wù)運(yùn)行,各任務(wù)有各自的線程和系統(tǒng)資源。VxWorks實(shí)時操作系統(tǒng)由多個相對獨(dú)立的目標(biāo)模塊組成,用戶可根據(jù)需要選擇適當(dāng)模塊來裁剪及配置系統(tǒng),從而有效地保證系統(tǒng)的安全性和可靠性。這樣,通過目標(biāo)模塊之間的按需組合,可得到許多滿足功能需求的應(yīng)用。
下面介紹VxWorks的技術(shù)特征。
?。?)任務(wù)
在VxWorks中,最小的程序運(yùn)行單位稱為任務(wù)(Task)。建立任務(wù)時,要對其分配一段固定的代碼和數(shù)據(jù)空間。操作系統(tǒng)內(nèi)核通過任務(wù)控制塊對它的執(zhí)行、通信、資源等情況進(jìn)行控制。任務(wù)具有就緒、阻塞、掛起和延遲等狀態(tài)。與大多數(shù)嵌入式系統(tǒng)一樣,在VxWorks中,所有任務(wù)存在于統(tǒng)一的線性空間中共享物理內(nèi)存,每個任務(wù)沒有自己獨(dú)立的代碼段和堆,只有獨(dú)立的動態(tài)棧,任務(wù)中的地址即是真正的物理地址。由于不需要進(jìn)行地址空間映射,所以任務(wù)切換時的上下文切換(Context Switch)時間大為減少,從而符合實(shí)時操作系統(tǒng)快速響應(yīng)的原則。VxWorks的代碼段與堆共享減少了上下文切換時間,卻帶來了共享代碼的可重入性問題。如一個函數(shù)被兩個任務(wù)調(diào)用,當(dāng)其中包含對全局、靜態(tài)變量等從堆中分配空間的數(shù)據(jù)進(jìn)行訪問時,就有可能產(chǎn)生沖突,從而引發(fā)錯誤。這個問題在應(yīng)用軟件開發(fā)時要加以注意,其解決方法是使用局部變量(從棧中分配空間)或使用互斥信號量對臨界代碼進(jìn)行保護(hù)。
(2)任務(wù)調(diào)度
VxWorks有優(yōu)先級搶占調(diào)度和時間片輪轉(zhuǎn)調(diào)度兩種任務(wù)調(diào)度策略。系統(tǒng)共有256 個優(yōu)先級。優(yōu)先級搶占調(diào)度指一個優(yōu)先級較低的任務(wù)正在執(zhí)行中,另一個優(yōu)先級高的任務(wù)進(jìn)入就緒狀態(tài),則馬上搶占處理器資源,執(zhí)行高優(yōu)先級任務(wù),直到高優(yōu)先級任務(wù)釋放處理器(完成、掛起、阻塞等)才繼續(xù)執(zhí)行被中斷的低優(yōu)先級任務(wù)。優(yōu)先級搶占調(diào)度可以保證實(shí)時系統(tǒng)的迅速響應(yīng)特性,但也存在問題。當(dāng)系統(tǒng)中存在幾個相同優(yōu)先級的任務(wù)時,就會使單一任務(wù)獨(dú)占處理器直至完成。如果這個任務(wù)占用太多時間,則會影響其他同優(yōu)先級任務(wù)的運(yùn)行。當(dāng)加入時間片輪轉(zhuǎn)調(diào)度時,系統(tǒng)給相同優(yōu)先級的任務(wù)分配相同的一段時間片,以輪轉(zhuǎn)方式占用CPU。加入了基于優(yōu)先級的時間片輪轉(zhuǎn)調(diào)度方式,使不同優(yōu)先級的任務(wù)間以搶占方式調(diào)度,相同優(yōu)先級的任務(wù)以時間片進(jìn)行輪轉(zhuǎn)。
?。?)存儲管理
在基本的內(nèi)核中,任務(wù)直接操作線性物理內(nèi)存,不存在虛擬存儲等復(fù)雜的存儲管理策略,這主要是針對實(shí)時性考慮的。對于存在MMU的處理器中,VxWorks也提供支持標(biāo)準(zhǔn)的虛擬存儲區(qū)和共享內(nèi)存(多處理器間共享)組件。這樣任務(wù)是操作虛擬存儲,代碼更加安全。
?。?)任務(wù)間通信
任務(wù)間存在多種通信形式,內(nèi)核支持各種UNIX的通用手段:信號量(Semaphore)、消息隊(duì)列(Message Queue)、管道(Pipe)、信號(Signal)、套接字(Socket)。信號量主要用于對臨界資源進(jìn)行互斥保護(hù)及任務(wù)間或中斷與任務(wù)間的同步;消息隊(duì)列多用于消息驅(qū)動機(jī)制;管道是基于文件系統(tǒng)實(shí)現(xiàn)的任務(wù)間按先進(jìn)先出方式傳送數(shù)據(jù)的通信方式;信號相當(dāng)于軟中斷,用于顯示錯誤信息;套接字機(jī)制主要用于網(wǎng)絡(luò)通信。當(dāng)任務(wù)間需要大量交換數(shù)據(jù)時,由于VxWorks直接操作物理內(nèi)存,可以直接訪問全局存儲區(qū),不需要特別的手段。這與Linux下的共享存儲段申請和Windows中的存儲映射文件方式不同。
?。?)中斷
在VxWorks中,所有中斷服務(wù)程序都不屬于任何一個任務(wù),并且使用同一個棧進(jìn)行數(shù)據(jù)存儲,中斷將不會引起上下文切換,以實(shí)現(xiàn)高效的中斷響應(yīng)。中斷與各任務(wù)之間可以通過前面所述的各種手段通信,但是對中斷服務(wù)程序有一些限制。因?yàn)橹袛嗖淮嬖谏舷挛那袚Q,所以不能調(diào)用可能導(dǎo)致阻塞的資源。例如動態(tài)分配內(nèi)存(malloc)、獲取信號量(semTake)和打印程序(printf)等。中斷資源寶貴,所以中斷服務(wù)程序應(yīng)盡量短小,把運(yùn)算量大和耗時的工作放在服務(wù)程序外處理。
?。?)文件系統(tǒng)
VxWorks支持網(wǎng)絡(luò)文件系統(tǒng)NFS及多種本地文件系統(tǒng),如MS_DosFS、RawFS和RT-11FS,用戶可根據(jù)具體配置選擇。
(7)網(wǎng)絡(luò)支持
Vxworks支持多種物理介質(zhì)的TCP/IP協(xié)議族和幾乎所有常用的基于TCP/IP協(xié)議的應(yīng)用層協(xié)議,如ARP、BOOTP、SLIP和FTP,甚至其啟動就是通過BOOTP或FTP方式取得系統(tǒng)映象文件。
以上簡單介紹了VxWorks的一些技術(shù)特征,充分反映了實(shí)時性與嵌入式的密切相關(guān)性。
本文導(dǎo)航
- 第 1 頁:嵌入式操作系統(tǒng)在高速實(shí)時信號處理系統(tǒng)中的應(yīng)用(1)
- 第 2 頁:嵌入式實(shí)時操作系統(tǒng)VxWorks
- 第 3 頁:系統(tǒng)軟件設(shè)計與實(shí)現(xiàn)
上周熱點(diǎn)文章排行榜
上周資料下載排行榜
論壇熱帖
- 7種你從沒想過的LED照明應(yīng)用,最后一個亮瞎了 assingle
- 2012,我們畢業(yè)啦-畢業(yè)季分享活動正式上線 assingle
- 【博客分享季】 我的單片機(jī)入門 kisswo
- 碉堡了,這是5星級賓館的標(biāo)準(zhǔn)阿~ 東十三少
- 【我們畢業(yè)啦】二逼青歡樂多-畢業(yè)照片回顧 cch6213
- 話說今天終于收到耳機(jī)了,曬圖 小鷹fighting
- 【畢業(yè)設(shè)計秀】謝謝A670521546在百忙之中幫我,原理圖已上傳 jiang874896
- FPGA設(shè)計大賽設(shè)計方案提交規(guī)則和截止時間須知 wangka
- 發(fā)布《精通LabVIEW虛擬一起程序設(shè)計》暨-【送書活動預(yù)告】 assingle
- 【我們畢業(yè)啦】那年 我們很快樂 hh824829
熱門博文
創(chuàng)新實(shí)用技術(shù)專題
嵌入式技術(shù)應(yīng)用
嵌入式資料下載
- 基于北斗二代系統(tǒng)的嵌入式船用導(dǎo)航儀硬件設(shè)計
- 嵌入式Linux下CAN總線驅(qū)動程序設(shè)計.rar
- DAC7714在嵌入式激光跟蹤儀中的應(yīng)用
- 嵌入式RISC微處理器核設(shè)計研究
- 嵌入式VxWorks系統(tǒng)開發(fā)與應(yīng)用_王學(xué)龍
- 嵌入式藍(lán)牙PSTN網(wǎng)關(guān)的設(shè)計與實(shí)現(xiàn)
- 嵌入式USB MiniHost系統(tǒng)設(shè)計與實(shí)現(xiàn)
- 嵌入式雷達(dá)發(fā)射機(jī)故障監(jiān)測系統(tǒng)的研制
- 嵌入式實(shí)時操作系統(tǒng)VxWorks實(shí)驗(yàn)教程_王韜
- 嵌入式壓力傳感器的偏置對脈搏信號的影響
熱評
- LM3S9B96開發(fā)板手冊及原理圖
- STM32F103ZET6紅牛電路圖
- 高通發(fā)布全新設(shè)計DragonBoard板
- NI推出Single-Board RIO嵌入式介面
- protel99se正式漢化版免費(fèi)下載
- hi3515海思原版原理圖
- matlab 7.0軟件下載(免費(fèi)破解版)
- TX-1C型單片機(jī)開發(fā)板原理圖
- 三菱A500變頻器原理圖
- 三相IGBT全橋隔離驅(qū)動電源設(shè)計
博文
- 問什么郵箱激活不了
- 八成大學(xué)生認(rèn)同先就業(yè)后擇業(yè)
- 我的心路
- 為什么郵箱激活不了
- 到底有多少人在校園里浪費(fèi)青春
- 你是否曾這樣傷害過一個人?
- 到底有多少人在校園里浪費(fèi)青春
- 小小的電阻,您真的吃透了它的用法嗎
- 2012.5.12 第一個DS18B20程序
- 寧愿睡地板,也要創(chuàng)業(yè)做老板!
帖子
- 【博客分享季】 我的單片機(jī)入門 kisswo
- 7種你從沒想過的LED照明應(yīng)用,最后一個亮瞎了 assingle
- labview設(shè)計憤怒的小鳥 海角一客
- 發(fā)布《精通LabVIEW虛擬一起程序設(shè)計》暨-【送書活動預(yù)告】 assingle
- 【畢業(yè)設(shè)計秀】基于51單片機(jī)的音樂頻譜時鐘 我本邪惡
- 2012(單片機(jī)學(xué)習(xí)工具包)40G視頻教程 donghhao
- 本人設(shè)計的一款游戲耳機(jī),給大家分享一下 qiu4466
- 【我們畢業(yè)啦】二逼青歡樂多-畢業(yè)照片回顧 cch6213
- 2012,我們畢業(yè)啦-畢業(yè)季分享活動正式上線 assingle
- Protel教程免費(fèi)獲取 QQ190175688
用戶評論
查看全部 條評論
查看全部 條評論>>