freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

嵌入式實(shí)時(shí)操作系統(tǒng)μcos原理與實(shí)踐(2)(編輯修改稿)

2025-06-17 06:46 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 ertask(void *pParam) { INT8U i=0。 for(。){ printf(%d\n,i)。 i++。 OSTimeDly(100)。 } } 作者盧有亮 圖書 PPT和全部代碼下載 《 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐 》 實(shí)時(shí)操作系統(tǒng)的是多任務(wù)的操作系統(tǒng),系統(tǒng)中必然有多任務(wù)在執(zhí)行。其中有用戶任務(wù),如前面的 usertask,也有操作系統(tǒng)的系統(tǒng)任務(wù)如空閑任務(wù)和統(tǒng)計(jì)任務(wù)。多任務(wù)的運(yùn)行相對(duì)于其他的系統(tǒng),其優(yōu)點(diǎn)是可以大大提高 CPU的利用率,又必然使應(yīng)用程序分成多個(gè)程序模塊,實(shí)現(xiàn)模塊化,應(yīng)用程序更易于設(shè)計(jì)和維護(hù)。 在嵌入式應(yīng)用的場(chǎng)合的多任務(wù)使用的例子是在一個(gè) ARM采集處理系統(tǒng)中,同時(shí)采集 16路信號(hào),同時(shí)又要對(duì)多信號(hào)進(jìn)行處理和傳輸,可以創(chuàng)建 16個(gè)任務(wù)負(fù)責(zé) 16路信號(hào)的采集,創(chuàng)建一個(gè)任務(wù)對(duì)信號(hào)進(jìn)行處理,再創(chuàng)建一個(gè)任務(wù)負(fù)責(zé)數(shù)據(jù)的傳輸。 作者盧有亮 圖書 PPT和全部代碼下載 《 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐 》 1. 3任務(wù) 作者盧有亮 圖書 PPT和全部代碼下載 《 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐 》 1. 3任務(wù) 創(chuàng)建任務(wù)睡眠態(tài) 就緒態(tài)刪除任務(wù)運(yùn)行態(tài)任務(wù)切換任務(wù)切換刪除任務(wù)阻塞態(tài)事件等待刪除任務(wù)等待的事件發(fā)生掛起態(tài)中斷返回( 仍為最高優(yōu)先級(jí) )返回( 不是最高優(yōu)先級(jí) )作者盧有亮 圖書 PPT和全部代碼下載 《 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐 》 任務(wù)已經(jīng)被裝入內(nèi)存了,可是并沒有準(zhǔn)備好運(yùn)行。例如上面給出的usertask代碼,以代碼的形式存在于內(nèi)存中,在調(diào)用OSTaskCreate(任務(wù)創(chuàng)建函數(shù))創(chuàng)建之前,處于睡眠態(tài)。睡眠態(tài)的任務(wù)不會(huì)得到運(yùn)行的,操作系統(tǒng)也不會(huì)給其設(shè)置為運(yùn)行而準(zhǔn)備的數(shù)據(jù)結(jié)構(gòu)。 當(dāng)操作系統(tǒng)調(diào)用 OSTaskCreate創(chuàng)建一任務(wù)后,任務(wù)就進(jìn)入就緒態(tài)。從圖 ,任務(wù)也可以從其他狀態(tài)轉(zhuǎn)到就緒態(tài)。處于就緒態(tài)的任務(wù)操作系統(tǒng)已經(jīng)為其運(yùn)行配置好了任務(wù)控制塊等數(shù)據(jù)結(jié)構(gòu),當(dāng)沒有比其更高優(yōu)先級(jí)的任務(wù),或比其優(yōu)先級(jí)更高的任務(wù)處于阻塞狀態(tài)的時(shí)候,就能被操作系統(tǒng)調(diào)度而進(jìn)入運(yùn)行態(tài)。從就緒態(tài)到運(yùn)行態(tài),操作系統(tǒng)調(diào)用任務(wù)切換函數(shù)完成。 任務(wù)真正占有 CPU,得到運(yùn)行。這時(shí)運(yùn)行的代碼就是任務(wù)的代碼。如 usertask。處于運(yùn)行態(tài)的任務(wù)如果運(yùn)行完成,就會(huì)轉(zhuǎn)為睡眠態(tài)。如果有更高優(yōu)先級(jí)的任務(wù)搶占了 CPU,就會(huì)轉(zhuǎn)到就緒態(tài)。如果因?yàn)榈却骋皇录?,例如等待一秒鐘的時(shí)間,如OSTimeDly(OS_TICKS_PER_SEC),需要暫時(shí)放棄 CPU的使用權(quán)而讓其他任務(wù)得以運(yùn)行,就進(jìn)入了阻塞狀態(tài)。當(dāng)由于中斷的到來而使 CPU進(jìn)入中斷服務(wù)程序( ISR),必然使正在運(yùn)行的任務(wù)放棄CPU而轉(zhuǎn)入中斷服務(wù)程序,這時(shí)被中斷的程序就被掛起而進(jìn)入掛起態(tài)。 總之,任務(wù)要得到運(yùn)行必須進(jìn)入運(yùn)行態(tài), CPU只有一個(gè)不能讓每個(gè)任務(wù)同時(shí)進(jìn)入運(yùn)行態(tài),進(jìn)入運(yùn)行態(tài)的任務(wù)有且只有一個(gè)。 阻塞對(duì)于操作系統(tǒng)的調(diào)度,任務(wù)的協(xié)調(diào)運(yùn)行是非常重要的。我們能看到圖 ,而不是只有一個(gè)高優(yōu)先級(jí)的任務(wù)得到運(yùn)行,就是因?yàn)?usertask在沒有事情可做,等待一秒鐘的時(shí)候,不是強(qiáng)行運(yùn)行代碼,而是把自己阻塞起來,使操作系統(tǒng)可以調(diào)度其他的任務(wù)。 當(dāng)任務(wù)在等待某些還沒有被釋放的資源,等待一定的時(shí)間等時(shí)候,要阻塞起來,等到條件滿足的時(shí)候再重新回到就緒態(tài),又能被操作系統(tǒng)調(diào)度以進(jìn)入運(yùn)行態(tài),這是實(shí)時(shí)系統(tǒng)必須要實(shí)現(xiàn)的功能之一。 一些不理解操作系統(tǒng)的同學(xué)在編程的時(shí)候,在等待的時(shí)候常常使用FOR循環(huán),不停的執(zhí)行代碼而使 CPU的利用率暴增,使系統(tǒng)的運(yùn)行環(huán)境十分惡劣,甚至造成死機(jī),是不可取的 當(dāng)任務(wù)在運(yùn)行時(shí),因?yàn)橹袛嗟陌l(fā)生,例如定時(shí)器中斷每個(gè)時(shí)鐘滴答( clock tic ,指每個(gè)時(shí)鐘周期)中斷一次,而被剝奪 CPU的使用權(quán),而進(jìn)入掛起態(tài)。在中斷返回的時(shí)候,若該任務(wù)還是最高優(yōu)先級(jí)的,就恢復(fù)運(yùn)行,如果不是這樣,只能回到就緒態(tài)。 作者盧有亮 圖書 PPT和全部代碼下載 《 嵌入式實(shí)時(shí)操作系統(tǒng)原理與實(shí)踐 》 任務(wù)切換就是 context switch,是任務(wù)調(diào)度的重要部分。從字面上是上下文切換。任務(wù)切換是暫停一個(gè)任務(wù)的運(yùn)行,運(yùn)行另一個(gè)就緒的任務(wù)。暫停一個(gè)任務(wù),以后又能恢復(fù)運(yùn)行,必須考慮將這個(gè)任務(wù)運(yùn)行的信息保存,而恢復(fù)運(yùn)行的時(shí)候需要將這
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1