資料介紹
VxWorks 是實(shí)時(shí)操作系統(tǒng),這決定了它的任務(wù)調(diào)度必須是基于優(yōu)先級(jí)的,而且必須是可搶占式調(diào)度方
式,這樣才能夠區(qū)分實(shí)際情況下不同狀態(tài)的處理級(jí)別,對(duì)高優(yōu)先級(jí)的情況進(jìn)行優(yōu)先響應(yīng)。
2.1.1 內(nèi)核實(shí)現(xiàn)基本原
VxWorks 內(nèi)核維護(hù)三個(gè)隊(duì)列:tick 隊(duì)列、ready 隊(duì)列、active 隊(duì)列。另外還有一個(gè)隊(duì)列涉及任務(wù),即任
務(wù)等待資源時(shí)所處的隊(duì)列,這個(gè)隊(duì)列可以是 VxWorks 內(nèi)核提供的,也可以是用戶提供的,此處令其為 pend
隊(duì)列。
所謂 tick 隊(duì)列,即當(dāng)調(diào)用 taskDelay 函數(shù)讓任務(wù)延遲一段固定的時(shí)間時(shí),任務(wù)所處的隊(duì)列,此時(shí)任務(wù)
被設(shè)置為 Delay 狀態(tài),無資格競(jìng)爭使用 CPU;ready 隊(duì)列即有資格競(jìng)爭使用 CPU 的所有任務(wù),該隊(duì)列以優(yōu)
先級(jí)為序排列任務(wù),隊(duì)列頭部是除了當(dāng)前運(yùn)行任務(wù)外,系統(tǒng)中最高優(yōu)先級(jí)的任務(wù);active 隊(duì)列有些誤導(dǎo),
實(shí)際上稱之為 task 隊(duì)列更合適,因?yàn)橄到y(tǒng)中所有的任務(wù)無論當(dāng)前狀態(tài)如何,都將在這個(gè)隊(duì)列中,這個(gè)隊(duì)列
維護(hù)著系統(tǒng)中當(dāng)前所有的任務(wù),即通過該隊(duì)列可以查找到當(dāng)前系統(tǒng)中的所有任務(wù),在 Shell 下運(yùn)行“i”命
令,顯示系統(tǒng)中所有的任務(wù),就是通過遍歷 active 隊(duì)列完成的;pend 隊(duì)列即當(dāng)任務(wù)競(jìng)爭使用某資源,而資
源當(dāng)前不可得時(shí),任務(wù)就被設(shè)置為 pend 狀態(tài),進(jìn)入 pend 隊(duì)列。
函數(shù) taskSpawn 創(chuàng)建一個(gè)新的任務(wù)。首先,其創(chuàng)建一個(gè)任務(wù)控制結(jié)構(gòu),對(duì)該結(jié)構(gòu)進(jìn)行初始化后,將結(jié)
構(gòu)加入 active 隊(duì)列以作為系統(tǒng)任務(wù)管理之用。此時(shí)任務(wù)仍無資格競(jìng)爭使用 CPU,taskSpawn 函數(shù)的最后一
步就是將這個(gè)任務(wù)結(jié)構(gòu)再加入到 ready 隊(duì)列,此時(shí)這個(gè)任務(wù)才真正可以稱為已經(jīng)在競(jìng)爭使用 CPU 了。當(dāng)系
統(tǒng)中所有的優(yōu)先級(jí)高于這個(gè)任務(wù)的其他任務(wù)運(yùn)行完畢或者由于等待資源而處于阻塞時(shí),這個(gè)新創(chuàng)建的任務(wù)
就將被調(diào)度運(yùn)行。所以,在 VxWorks 下,如果一個(gè)新創(chuàng)建的任務(wù)優(yōu)先級(jí)不高,創(chuàng)建后將等待一段時(shí)間才能
被真正執(zhí)行。在實(shí)際項(xiàng)目中,有時(shí)需要一個(gè)新的任務(wù)被創(chuàng)建后立刻得到執(zhí)行,那么就需要在創(chuàng)建任務(wù)時(shí),
指定一個(gè)較高的任務(wù)優(yōu)先級(jí)。VxWorks 內(nèi)核將任務(wù)分為 256 個(gè)優(yōu)先級(jí),標(biāo)號(hào)從 0 到 255。其中 0 表示最高
優(yōu)先級(jí),255 表示最低優(yōu)先級(jí)。任務(wù)在調(diào)用 taskSpawn 函數(shù)進(jìn)行創(chuàng)建時(shí)就指定了優(yōu)先級(jí),當(dāng)然任務(wù)的優(yōu)先
級(jí)并非在創(chuàng)建后就無法改變,用戶可以通過調(diào)用 taskPrioritySet 函數(shù)在任務(wù)創(chuàng)建后重新設(shè)定優(yōu)先級(jí),
taskPrioritySet 專門針對(duì)嵌入式平臺(tái)下不同的情況對(duì)同一任務(wù)不同運(yùn)行級(jí)別的需求進(jìn)行設(shè)置。值得注意的
是,taskPrioritySet 函數(shù)不同于通用操作系統(tǒng)提供的類似函數(shù),taskPrioritySet 函數(shù)可以提高或者降低任務(wù)的
運(yùn)行級(jí)別,而不是通用操作系統(tǒng)下在任務(wù)創(chuàng)建后就只能動(dòng)態(tài)地降低任務(wù)優(yōu)先級(jí)。
VxWorks 下對(duì)于應(yīng)用層任務(wù),推薦使用 100~250 之間的優(yōu)先級(jí),驅(qū)動(dòng)層任務(wù)可以使用 51~99 之間的
優(yōu)先級(jí)。要特別注意的是,內(nèi)核網(wǎng)絡(luò)數(shù)據(jù)包收發(fā)任務(wù) tNetTask 的優(yōu)先級(jí)為 50,如果使用網(wǎng)口進(jìn)行調(diào)試,則
一定注意不要?jiǎng)?chuàng)建任務(wù)優(yōu)先級(jí)高于 50 的任務(wù),否則 tNetTask 任務(wù)將無法得到運(yùn)行,表現(xiàn)形式是死機(jī),因
為系統(tǒng)將無法再從網(wǎng)口接收調(diào)試命令,無法響應(yīng) Tornado Shell 或者 Telnet 下輸入的任何命令。以上只是推
薦值,事實(shí)上,由于嵌入式系統(tǒng)下的特殊應(yīng)用,對(duì)于某個(gè)任務(wù)優(yōu)先級(jí)的設(shè)置需要根據(jù)該任務(wù)完成的具體工
作而定,而不可一味地遵循推薦值。如筆者曾在項(xiàng)目中為了與 Shell“爭讀”從串口發(fā)送的命令,就將一個(gè)
應(yīng)用層任務(wù)優(yōu)先級(jí)設(shè)置為 0。要謹(jǐn)記在任務(wù)達(dá)到某一特殊目的后,必須將任務(wù)優(yōu)先級(jí)設(shè)置回正常(推薦)
值。
無論何種操作系統(tǒng),任務(wù)在設(shè)計(jì)中都由一個(gè)數(shù)據(jù)結(jié)構(gòu)表示。這個(gè)數(shù)據(jù)結(jié)構(gòu)包含一個(gè)任務(wù)運(yùn)行時(shí)需要的
所有信息,我們一般將這些信息稱為任務(wù)上下文。具體的任務(wù)上下文(廣義上)包括以下內(nèi)容:
1)所在平臺(tái) CPU 內(nèi)部所有的寄存器值,特別是指令寄存器,這代表了任務(wù)當(dāng)前的執(zhí)行點(diǎn)。這一般是
狹義上的任務(wù)上下文。除了寄存器值,每個(gè)任務(wù)有自己的內(nèi)存映射空間、任務(wù)名稱、任務(wù)優(yōu)先級(jí)值、任務(wù)
入口函數(shù)地址、打開文件句柄數(shù)組、信號(hào)量和用于各種目的的隊(duì)列
- VxWorks操作系統(tǒng)下CompactPCI總線驅(qū)動(dòng)程序的設(shè)計(jì)
- (完整版)vxworks嵌入式操作系統(tǒng) 0次下載
- VxWorks嵌入式操作系統(tǒng)的特點(diǎn)與應(yīng)用 6次下載
- 基于VxWorks操作系統(tǒng)下光纖通道通信軟件的實(shí)現(xiàn) 4次下載
- 關(guān)于實(shí)時(shí)操作系統(tǒng)VxWorks下的并口通信技術(shù) 4次下載
- VxWorks操作系統(tǒng)指南 73次下載
- 嵌入式實(shí)時(shí)操作系統(tǒng)COS一Ⅱ與VxWORKs
- 基于VxWorks操作系統(tǒng)的WindML 2D顯示方案
- 基于VxWorks嵌入式操作系統(tǒng)的SNMP應(yīng)用
- 基于VxWorks嵌入式操作系統(tǒng)的SNMP應(yīng)用
- 實(shí)時(shí)操作系統(tǒng)VxWorks下PCI總線配置技術(shù)
- 實(shí)時(shí)操作系統(tǒng)VxWorks下的并口通信技術(shù)
- 文件壓縮在VxWorks操作系統(tǒng)的應(yīng)用
- VxWorks操作系統(tǒng)及實(shí)時(shí)多任務(wù)程序設(shè)計(jì)
- 基于VxWorks操作系統(tǒng)的WiWindML 2D顯示方案
- 深度解析全球操作系統(tǒng)格局 1268次閱讀
- 詳解實(shí)時(shí)操作系統(tǒng)和非實(shí)時(shí)操作系統(tǒng) 4957次閱讀
- 什么是實(shí)時(shí)操作系統(tǒng)(RTOS) 6149次閱讀
- Linux是實(shí)時(shí)系統(tǒng)還是分時(shí)操作系統(tǒng)? 1572次閱讀
- TinyOS操作系統(tǒng)的工作原理、應(yīng)用技術(shù)及應(yīng)用分析 6386次閱讀
- 基于VxWorks操作系統(tǒng)實(shí)現(xiàn)PLC控制系統(tǒng)的應(yīng)用方案 3717次閱讀
- 該如何正確選擇嵌入式操作系統(tǒng) 2811次閱讀
- 基于嵌入式操作系統(tǒng)的VxWorks設(shè)備驅(qū)動(dòng)程序設(shè)計(jì) 1413次閱讀
- 嵌入式VxWorks操作系統(tǒng)建立TrueFFS文件系統(tǒng) 1745次閱讀
- 對(duì)實(shí)時(shí)操作系統(tǒng)特性的討論 5189次閱讀
- 關(guān)于基于VxWorks的星務(wù)管理系統(tǒng)軟件多任務(wù)實(shí)時(shí)性調(diào)度設(shè)計(jì) 4908次閱讀
- 嵌入式操作系統(tǒng)是什么_嵌入式操作系統(tǒng)有哪些 2w次閱讀
- 國產(chǎn)操作系統(tǒng)究竟哪里不行_國產(chǎn)操作系統(tǒng)為何難普及 1.3w次閱讀
- vxworks的特點(diǎn)介紹 2.1w次閱讀
- 如何安裝實(shí)時(shí)操作系統(tǒng)RTOS 6275次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 6基于FPGA的C8051F單片機(jī)開發(fā)板設(shè)計(jì)
- 0.70 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21548次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183278次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論