嵌入式實(shí)時(shí)操作系統(tǒng)期末復(fù)習(xí)_第1頁
嵌入式實(shí)時(shí)操作系統(tǒng)期末復(fù)習(xí)_第2頁
嵌入式實(shí)時(shí)操作系統(tǒng)期末復(fù)習(xí)_第3頁
嵌入式實(shí)時(shí)操作系統(tǒng)期末復(fù)習(xí)_第4頁
嵌入式實(shí)時(shí)操作系統(tǒng)期末復(fù)習(xí)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論