




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——嵌入式實(shí)時(shí)操作系統(tǒng)期末復(fù)習(xí)一、簡答題(10分X5)
A卷:
1、實(shí)時(shí)操作系統(tǒng)需要滿足的條件?P9
實(shí)時(shí)操作系統(tǒng)應(yīng)滿足以下條件:
①實(shí)時(shí)操作系統(tǒng)必需是多任務(wù)系統(tǒng)。
②任務(wù)的切換時(shí)間與系統(tǒng)中的任務(wù)數(shù)無關(guān)。③中斷延遲的時(shí)間可預(yù)知并盡可能短。
2、任務(wù)控制塊的結(jié)構(gòu)以及其成員的含義?(P52,#if……#endif中的不要求)
3、信號(hào)量集的結(jié)構(gòu)和操作?P171、P17
結(jié)構(gòu)如下:
各種操作:創(chuàng)立、請(qǐng)求、發(fā)送、查詢狀態(tài)?!鴦?chuàng)立信號(hào)量集:OSFlagCreate()
OS_FLAG_GRP*FlagPtr;INT8Uerr;
Voidmain(void){
……
FlagPtr=OSFlagCreate(
(OS_FLAGS)0,//所有信號(hào)的初始值為0
}
▲請(qǐng)求信號(hào)量集:
方法一:OS_FlagPendOSFlagPend(……)
方法二:OS_FlagPendOSFlagAceep(……)
▲向信號(hào)量發(fā)信息:
▲查詢信號(hào)量集的狀態(tài):
4、內(nèi)存控制塊的結(jié)構(gòu)體,以及內(nèi)存分區(qū)/塊是怎么組織起來的?
結(jié)構(gòu)體如下:
內(nèi)存分區(qū)與內(nèi)存塊是這樣組織起來的:
當(dāng)應(yīng)用程序調(diào)用OSMemCreate()建立一個(gè)內(nèi)存分區(qū)之后,內(nèi)存控制塊的內(nèi)存分區(qū)指針OSMemAddr指向內(nèi)存分區(qū)。內(nèi)存分區(qū)中的的各個(gè)內(nèi)存塊又組成了一個(gè)單向鏈表,內(nèi)存控制塊的鏈表指針OSMemFreeList指向這個(gè)單向鏈表。
5、寫出五個(gè)鏈表及其作用?(3.8.1節(jié)圖3-22)
①空任務(wù)控制塊鏈表:每當(dāng)應(yīng)用程序調(diào)用系統(tǒng)函數(shù)OSTaskCreate()或
OSTaskCreateExt()創(chuàng)立一個(gè)任務(wù)時(shí),系統(tǒng)就會(huì)將該鏈表的頭指針OSTCBFreeList
指向的任務(wù)控制塊分派給該任務(wù)。
②空事件控制塊鏈表:每當(dāng)應(yīng)用程序創(chuàng)立一個(gè)事件時(shí),系統(tǒng)就會(huì)從鏈表中取出一
個(gè)空事件控制塊,并對(duì)它進(jìn)行初始化以描述該事件。而刪除的時(shí)候就把該控制塊歸還給該鏈表。
③空隊(duì)列控制塊鏈表:每當(dāng)任務(wù)創(chuàng)立一個(gè)消息隊(duì)列,就會(huì)在空隊(duì)列控制塊鏈表中
摘取一個(gè)控制塊供消息隊(duì)列使用;而釋放的時(shí)候則把該控制塊歸還該鏈表。④等待任務(wù)鏈表:是一個(gè)雙向鏈表。信號(hào)量集的等待任務(wù)鏈表,通過
OSFlagNodeTCB指針把鏈表結(jié)點(diǎn)與等待任務(wù)關(guān)聯(lián)起來。
⑤空內(nèi)存控制塊鏈表:每當(dāng)應(yīng)用程序創(chuàng)立一個(gè)內(nèi)存分區(qū)時(shí),系統(tǒng)就會(huì)從該鏈表中
摘取一個(gè)控制塊,而把鏈表的頭指針OSMemFreeList指向下一個(gè)空內(nèi)存控制塊。
―――――――――――――――――――――――――――――――――――――――
B卷:
1、uc/os-II調(diào)用哪一類系統(tǒng)函數(shù)可能引發(fā)任務(wù)切換?不懂
OSTimeDlyMSM()
uC/OS-II的任務(wù)切換歸根終究都是由以下三個(gè)函數(shù)引起的:
1.OSStart();2.OSIntExit();3.OS_Sched();
OSStart():
OSStart()函數(shù)是uC/OS-II任務(wù)調(diào)度的引導(dǎo)函數(shù),它調(diào)用更底層的函數(shù)OSStartHighRdy()來完成最初的任務(wù)切換;OSStartHighRdy()唯一地在OSStart()函數(shù)中被調(diào)用。
而OSStartHighRdy()函數(shù)需要用戶移植實(shí)現(xiàn),主要的工作是:
1.OSRunning=TRUE;2.調(diào)用OSTaskSwHook()函數(shù);
3.設(shè)置處理器的堆棧指針寄放器為OSTCBHighRdy->OSTCBStkPtr;4.恢復(fù)所有處理器的寄放器內(nèi)容(不包括堆棧指針寄放器和PC寄放器);5.恢復(fù)PC寄放器并開始執(zhí)行PC指向的指令。
OSIntExit():
OSIntExit()函數(shù)由中斷服務(wù)代碼調(diào)用,用戶的中斷服務(wù)代碼要求如下:
1.把全部CPU寄放器(包括堆棧指針寄放器和PC寄放器)推入當(dāng)前任務(wù)堆棧;2.調(diào)用OSIntEnter()函數(shù)或OSIntNesting++;3.執(zhí)行用戶的中斷處理代碼;4.調(diào)用OSIntExit()。
OSIntExit()函數(shù)調(diào)用更底層的函數(shù)OSIntCtxSw()來實(shí)現(xiàn)任務(wù)切換,函數(shù)OSIntCtxSw()需要用戶移植實(shí)現(xiàn),主要內(nèi)容如下:
1.調(diào)用OSTaskSwHook()函數(shù);2.OSPrioCur=OSPrioHighRdy;3.OSTCBCur=OSTCBHighRdy;
4.設(shè)置處理器的堆棧指針寄放器為OSTCBHighRdy->OSTCBStkPtr;5.恢復(fù)所有處理器的寄放器內(nèi)容(不包括堆棧指針寄放器和PC寄放器);6.恢復(fù)PC寄放器并開始執(zhí)行PC指向的指令。OS_Sched():
OS_Sched()函數(shù)被各種任務(wù)間通信函數(shù)如xxxPost()和xxxPend()調(diào)用,OS_Sched()函數(shù)調(diào)用更底層的函數(shù)OS_TASK_SW()來實(shí)現(xiàn)任務(wù)切換,
OS_TASK_SW()函數(shù)需要用戶移植實(shí)現(xiàn),主要內(nèi)容如下:
1.把全部CPU寄放器(包括堆棧指針寄放器和PC寄放器)推入當(dāng)前任務(wù)堆棧;2.調(diào)用OSTaskSwHook()函數(shù);3.OSPrioCur=OSPrioHighRdy;4.OSTCBCur=OSTCBHighRdy;
5.設(shè)置處理器的堆棧指針寄放器為OSTCBHighRdy->OSTCBStkPtr;6.恢復(fù)所有處理器的寄放器內(nèi)容(不包括堆棧指針寄放器和PC寄放器);7.恢復(fù)PC寄放器并開始執(zhí)行PC指向的指令。
2、時(shí)鐘節(jié)拍中斷服務(wù)程序完成什么功能?OSTime?4.2節(jié)
在每次響應(yīng)定時(shí)中斷時(shí),調(diào)用OSTimeTick()做了兩件事情:一是給計(jì)數(shù)器OSTime加1;二是遍歷任務(wù)控制塊鏈表中的所有任務(wù)控制塊,把各個(gè)任務(wù)控制塊中用來存放任務(wù)延時(shí)時(shí)限的OSTCBDly變量減1,并使該項(xiàng)為0,同時(shí)又不使被掛起的任務(wù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人民防空知識(shí)培訓(xùn)課件
- 酒店推廣傭金合同(2篇)
- 采購分包付款合同(2篇)
- 宮頸癌疫苗知識(shí)培訓(xùn)課件
- 2025年愛國知識(shí)競賽題及答案(67題)
- 文化遺產(chǎn)保護(hù)與傳承合作協(xié)議
- 細(xì)胞制備服務(wù)合作協(xié)議
- 環(huán)境科學(xué)中的生態(tài)評(píng)估試題及答案解析
- 汽車修理廠出租合同
- 河南駐馬店市2024-2025學(xué)年高二上學(xué)期期末質(zhì)量監(jiān)測生物學(xué)試題(含答案)
- 貴州省安順市2025屆高三年級(jí)第四次監(jiān)測考試2月語文試題及參考答案
- 公路工程標(biāo)準(zhǔn)施工招標(biāo)文件(2018年版)
- DL∕T 5776-2018 水平定向鉆敷設(shè)電力管線技術(shù)規(guī)定
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蝕工程施工及驗(yàn)收規(guī)范
- TB T2075-《電氣化鐵道接觸網(wǎng)零部件》
- NB∕T 10730-2021 煤礦井下斷層導(dǎo)水性探查與治理技術(shù)規(guī)范
- 科學(xué)儀器設(shè)備分類編碼表
- 分布式光伏電站現(xiàn)場勘查表
- 2019年健康體檢結(jié)果調(diào)查分析報(bào)告
- 新版理念篇-養(yǎng)老課件
- (新版教材)粵教版六年級(jí)下冊(cè)科學(xué)全冊(cè)課件
評(píng)論
0/150
提交評(píng)論