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