嵌入式實時操作系統(tǒng)μCOSII原理及應(yīng)用習(xí)題答案_第1頁
嵌入式實時操作系統(tǒng)μCOSII原理及應(yīng)用習(xí)題答案_第2頁
嵌入式實時操作系統(tǒng)μCOSII原理及應(yīng)用習(xí)題答案_第3頁
嵌入式實時操作系統(tǒng)μCOSII原理及應(yīng)用習(xí)題答案_第4頁
嵌入式實時操作系統(tǒng)μCOSII原理及應(yīng)用習(xí)題答案_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第一章

1.什么是計算機的操作系統(tǒng)?它應(yīng)具備什么功能?

操作系統(tǒng):操作系統(tǒng)是控制其他程序運行,管理系統(tǒng)資源并為用戶提供操作界面的系統(tǒng)軟件

的集合。

功能:計算機資源的管理,包括處理器管理、存儲器存儲空間管理、外部輸入輸出(I/O)設(shè)備

管理、文件管理、網(wǎng)絡(luò)和通信管理、提供用戶接口。

2.簡述嵌入式系統(tǒng)與普通操作系統(tǒng)的區(qū)別。

嵌入到對象體系中,為實現(xiàn)對象體系智能化控制的計算機系統(tǒng),簡稱嵌入式系統(tǒng)。

嵌入式系統(tǒng)應(yīng)具有的特點是:高瓦靠性;在惡劣的環(huán)境或突然斷電的情況下,系統(tǒng)仍然能夠

正常工作;許多嵌入式應(yīng)用要求實時性,這就要求嵌入式操作系統(tǒng)具有實時處理能力;嵌入

式系統(tǒng)和具體應(yīng)用有機地結(jié)合在一起,它的升級換代也是具體產(chǎn)品同步進行;嵌入式系統(tǒng)中

的軟件代碼要求高質(zhì)量、高可靠性,一般都固化在只讀存儲器中或閃存中,也就是說軟件要

求固態(tài)化存儲,而不是存儲在磁盤等載體中。

4.什么是實時系統(tǒng)?

如果?個系統(tǒng)能及時響應(yīng)外部事件的請求,并能在規(guī)定的時間內(nèi)完成對事件的處理,這種系

統(tǒng)稱為實時系統(tǒng)。

第二章

1.什么是可剝奪型內(nèi)核?

可剝奪型內(nèi)核采用與不可剝奪型不同的調(diào)度策略,最高優(yōu)先級的任務(wù)一旦就緒,就能獲得

CPU的控制權(quán)而得以運行,不管當前運行的任務(wù)處于何種狀態(tài)??蓜儕Z型內(nèi)核采用的搶占式

的調(diào)度策略,總是讓優(yōu)先級最高的任務(wù)運行,直到其阻塞或任務(wù)完成,響應(yīng)時間因此優(yōu)化。

2.一個應(yīng)用程序為什么一定要使序空閑任務(wù)?

在多任務(wù)系統(tǒng)運行時,系統(tǒng)經(jīng)常會在某個時間內(nèi)無用戶任務(wù)運行而處于空閑狀態(tài),為了使

CPU在此時有事可作,uC/OS—II提供了空閑任務(wù)OSTaskldle??臻e任務(wù)是不能被軟件刪除的。

3.統(tǒng)計任務(wù)是必須使用的嗎?

用戶應(yīng)用程序可根據(jù)實際需要來選擇是否使用統(tǒng)計任務(wù)。

其功能是每秒計算一次CPU在單位時間內(nèi)被使用的時間,并把計算結(jié)果以百分比的形式存

放在變量OSCPUsage中,以便應(yīng)用程序通過訪問它來了解CPU的利用率。

4.什么是任務(wù)的優(yōu)先權(quán)?UC/OS-II是用什么來描述任務(wù)的優(yōu)先權(quán)的。

uC/OS-ll是按可剝奪型內(nèi)核來設(shè)計的,為此,每一個任務(wù)都必須具有唯一的優(yōu)先級別,用來

表示該任務(wù)在搶奪處理器時所具有的優(yōu)先權(quán)力,共有64個優(yōu)先級別,用數(shù)字“0”-“63”

表示,數(shù)字“0”所表示的優(yōu)先級最高,通常將空閑任務(wù)和統(tǒng)計任務(wù)設(shè)為最低優(yōu)先級別。

對于任務(wù)數(shù)較少的應(yīng)用,為節(jié)省內(nèi)存,可通過OS_CFG.H中的OS_LOWEST_PRIO賦值來確定

系統(tǒng)的最大(<=64)用戶數(shù)。

5.在uC/OS-ll中任務(wù)有哪5種狀態(tài)?

睡眠狀態(tài):任務(wù)只是以代碼的形式駐留在內(nèi)存,還沒有交給操作系統(tǒng)管理。

就緒狀態(tài):任務(wù)配備了任務(wù)控制塊且在任務(wù)就緒表中登記,具備了任務(wù)運行的充分條件。

運行狀態(tài):處于就緒狀態(tài)的任務(wù)獲得了CPU的使用權(quán),任何時候只有一個任務(wù)處于運行。

等待狀態(tài):正在運行的任務(wù),把CPU的使用權(quán)讓給其他任務(wù)。

中斷服務(wù)狀態(tài):正在運行的任務(wù)一旦響應(yīng)中斷申請,就會中止運行而去執(zhí)行中斷服務(wù)程序。

6.任務(wù)控制塊記錄了任務(wù)的那些信息?

?OSTCBStkPtr指向任務(wù)堆棧棧頂?shù)闹羔槪?/p>

?OSTCBExtPtr指向任務(wù)控制塊擴展的指針;

?OSTCBStkBottom指向任務(wù)堆棧棧底的指針;

OSTCBStkSize任務(wù)堆棧的長度;

OSTCBOpt創(chuàng)建任務(wù)時的選擇項;

OSTCBId任務(wù)ID;

?OSTCBNext指向后一個任務(wù)控制塊的指針;

*OSTCBPrev指向前一個任務(wù)控制塊的指針;

?OSTCBEventPtr指向事件控制塊的指針;

?OSTCBMsg傳遞給任務(wù)消息的指針;

OSTCBDelReq請求刪除任務(wù)時用到的標志;

OSTCBStat任務(wù)的當前狀態(tài)標志;

OSTCBDIy任務(wù)等待的時限(節(jié)拍數(shù));

OSTCBPrio任務(wù)的優(yōu)先級別(0==highest,63==lowest);

7.什么是空任務(wù)控制塊鏈表?什么是任務(wù)控制塊鏈表?

空任務(wù)塊鏈表,其中所有任務(wù)控制塊還沒有分配給任務(wù)。空任務(wù)塊鏈表是在應(yīng)用程序調(diào)用函

數(shù)OSInit。對UC/OS-II系統(tǒng)初始化時建立的。鏈表的元素一共有

OS_MAX_TASKS+OS_N_SYS_TASKS個元素。

任務(wù)控制塊鏈表,其中所有任務(wù)塊已經(jīng)分配給任務(wù)。任務(wù)控制塊鏈表在應(yīng)用程序調(diào)用函數(shù)

OSTaskCreate。創(chuàng)建任務(wù)時建立的。

8.數(shù)組OSTCBTbl□有什么用途?

專門用來以任務(wù)的優(yōu)先級別為順序在各個數(shù)組元素里存放指向各個任務(wù)控制塊的指針,這樣

系統(tǒng)在訪問一個任務(wù)的任務(wù)控制塊時,就不必遍歷任務(wù)控制塊鏈表,從而加快對任務(wù)控制塊

的訪問速度。

9.正在運行任務(wù)的任務(wù)控制塊指針存放在哪個指針變量中?

OSTCBCur

10.變量OSRdyGrp有什么用?

該變量的每一位都對應(yīng)OSRdyTbl[]的一個任務(wù)組,如果某任務(wù)組中有任務(wù)就緒,則在變量

OSRdyGrp里把該任務(wù)組所對應(yīng)的位置為1,否則置為0,從而快速對任務(wù)就緒表OSRdyTbl[]

查找。

11.簡述在任務(wù)就緒表中查找具有最高優(yōu)先級別的就緒任務(wù)的過程。

由任務(wù)就緒表OSRdyGrp和OSRdyTbl口的內(nèi)容通過查找OSUnMapTa用表和公式

y=OSUnMapTal[OSRdyGrp];

x=OSUnMapTal[OSRdyTbl[y]]:

prio=(y?3)+x;

找出具有最高優(yōu)先級別的就緒任務(wù)。

第三章

1.簡述UC/OS-II的中斷響應(yīng)過程c

系統(tǒng)接收到中斷請求后,如果這時CPU處于中斷允許狀態(tài),系統(tǒng)會中止正在運行的當前任

務(wù),而按照中斷向量的指向轉(zhuǎn)而去運行中斷服務(wù)子程序;當中斷服務(wù)子程序的運行結(jié)束后,

系統(tǒng)會根據(jù)情況返回到被中止的任務(wù),或轉(zhuǎn)向更高優(yōu)先級的任務(wù)。

2.全局變量OSIntNesting的作用是什么?

全局變量OSIntNesting記錄中斷嵌套的層數(shù)。

3.uc/osll的中斷服務(wù)程序何時返叵被中斷的任務(wù)?何時不返回被中斷的任務(wù)?

當中斷嵌套層數(shù)計數(shù)器為0,調(diào)度器未被鎖定并且從任務(wù)就緒表中查到的最高優(yōu)先級的任務(wù)

又不是被中斷的任務(wù)的條件下會進行任務(wù)切換,即不返回被中斷的任務(wù),否則返回被中斷的

任務(wù)。

4.uc/osll的時鐘是如何實現(xiàn)的?在時鐘節(jié)拍服務(wù)中做了什么工作?

uc/osll的時鐘通常是一個由硬件計數(shù)器定時產(chǎn)生周期性中斷信號來實現(xiàn)的。

在每個節(jié)拍服務(wù)里要遍歷系統(tǒng)中全部任務(wù)的任務(wù)控制塊,把其中記錄任務(wù)延時時間的成員

OSTCBDly減1,并使延時時間到的任務(wù)進入就緒狀態(tài)。

5.如何在中斷服務(wù)程序中激活一個任務(wù)?

在uc/osll中通常由一個任務(wù)來完成異步事件的處理工作,而在中斷服務(wù)程序中只是通過向

任務(wù)發(fā)送消息的方法去激活這個任務(wù)。

6.說明延時函數(shù)OSTimeDly()與OSTimeDlyHMSM。的區(qū)別。

所有用戶任務(wù)必須在任務(wù)中合適的位置調(diào)用函數(shù)OSTimeDM),或通過調(diào)用函數(shù)

O3TimeDlyHMSM()調(diào)用OSTimeDM)。OSTimeDly。的參數(shù)ticks為以時鐘節(jié)拍數(shù)為單位的延時

時間的,而OSTimeDlyHMSM()的參數(shù)分別是時,分,秒。

第四章

1.敘述信號量的工作過程。

每當有任務(wù)申請信號量時,如果信號量計數(shù)器OSEventCnt的值大于0,則把OSEventCnt減1,

并使任務(wù)繼續(xù)運行;如果OSEventCnt的值為0,則會將任務(wù)列入任務(wù)等待表OSEventTbl口,

而使任務(wù)處于等待狀態(tài)。

如果有正在使用信號量的任務(wù)釋放了該信號量,則會在等待任務(wù)表中找出優(yōu)先級別最高的等

待任務(wù),并在使他就緒后調(diào)用調(diào)度器引發(fā)一次調(diào)度;如果任務(wù)等待表中已經(jīng)沒有等待任務(wù),

則信號量計數(shù)器只會簡單的加1.

2.使用信號量可在應(yīng)用程序中完成哪些工作?

任務(wù)間通信,完成共享資源的訪問和任務(wù)的同步執(zhí)行。

3.什么叫優(yōu)先級反轉(zhuǎn)?這種現(xiàn)象會在什么情況下發(fā)生?有什么危害?

在可剝奪型內(nèi)核中,當任務(wù)以獨占方式使用共享資源時,會出現(xiàn)低優(yōu)先級任務(wù)先于高優(yōu)先級

任務(wù)而被運行的情況,優(yōu)為先級反轉(zhuǎn)。

產(chǎn)生優(yōu)先級反轉(zhuǎn)現(xiàn)象的原囚:這是囚為一個低優(yōu)先級任務(wù)在獲得信號量使用共享資源期間,

被高優(yōu)先級任務(wù)所打斷而不能釋放信號量,從而使正在等待該信號量的高優(yōu)先級任務(wù)因得不

到信號量而被迫處于等待狀態(tài)。在等待期間,就讓占據(jù)該信號量的低優(yōu)先級任務(wù)先運行。

后果:如果這種情況發(fā)生較多,則會極大地惡化優(yōu)先級任務(wù)地運行環(huán)境。

4.互斥型信號量是如何防止優(yōu)先級反轉(zhuǎn)的?

使獲得信號量任務(wù)的優(yōu)先級別在使用共享資源期間暫時提升到所有任務(wù)最高優(yōu)先級的高一

個級別上,以使該任務(wù)不被其他任務(wù)所打斷,從而能盡快地使用完共享資源并釋放信號量;

然后在釋放完信號量之后再恢復(fù)該任務(wù)原來的優(yōu)先級別。

5.什么叫消息郵箱?

消息郵箱是能在任務(wù)之間傳遞消息指針的數(shù)據(jù)結(jié)構(gòu)。

在任務(wù)與任務(wù)之間通信時,建立一個數(shù)據(jù)緩沖區(qū)用來存放要傳遞的數(shù)據(jù),同時將該數(shù)據(jù)緩沖

區(qū)的指針賦給事件控制塊成員OSEventPtr,并且事件控制塊的成員OSEventType為常數(shù)

OS_EVENT_TYPE_MBOX,則該事件控制塊就叫做消息郵箱。

6.能否使用全局變量來實現(xiàn)任務(wù)間的通信?如果可以,它有什么缺點?

全局變量只能傳遞信息,但不能同步任務(wù)。因此只能用于兩種情況:

1.不需要行為同步,想用時就用這個全局變量。

2.同步要求不實時,可以讓另一個任務(wù)定期去查詢該全局變量是否被“生產(chǎn)”。

7.使用消息郵箱實現(xiàn)任務(wù)之間的選信有什么好處?

其一,是使消息的傳遞速度大大增加。其二,如果只傳遞一條消息的話,操作更為簡單。其

三,消息郵箱可以適應(yīng)不同數(shù)據(jù)的需要

8.什么是消息隊列?

消息隊列是能在任務(wù)之間傳遞一組消息指針的數(shù)據(jù)結(jié)構(gòu)。

9.想一想,在應(yīng)用程序中消息隊列都可以做一些什么工作?

第五章

1.敘述信號量集的工作過程。

在uc/osll中請求信號量集的任務(wù)得以繼續(xù)運行的條件與所請求的信號量之間存在兩種邏輯

關(guān)系:與關(guān)系和或關(guān)系。在與關(guān)系下,只有當任務(wù)所請求的信號量都有效時,任務(wù)才能繼續(xù)

運行;在或關(guān)系下,只要在任務(wù)所請求的信號量中有信號有效,任務(wù)就會繼續(xù)進行。

2.使用信號量集可以在應(yīng)用程序中完成哪些工作?

1.創(chuàng)建信號量集;

2.請求信號量集:

3.向信號量集發(fā)信號;

4.查詢信號量集的狀態(tài);

5.刪除信號量集。

第六章

1.什么叫內(nèi)存分區(qū)?什么叫內(nèi)存塊?內(nèi)存分區(qū)與內(nèi)存塊之間有什么關(guān)系?

uC/OS-ll能夠解決內(nèi)存碎片問題及執(zhí)行時間固定,對內(nèi)存進行兩級管理。將大片連續(xù)內(nèi)存分

成若干個分區(qū),每個分區(qū)又分成若干大小相等的內(nèi)存塊來進行管理。操作系統(tǒng)以分區(qū)為單位

管理動態(tài)內(nèi)存,任務(wù)以內(nèi)存塊為單位來獲得與釋放動態(tài)內(nèi)存。內(nèi)存分區(qū)及內(nèi)存塊的使用情況

由內(nèi)存控制塊來記錄,內(nèi)存控制塊是由uC/OS?ll為每個內(nèi)存分區(qū)定義的一個數(shù)據(jù)結(jié)構(gòu)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論