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

正文內(nèi)容

嵌入式操作系統(tǒng)μcos-ii(編輯修改稿)

2024-11-15 16:42 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 void *OSTCBExtPtr。 (指向用戶定義的任務(wù)控制塊擴(kuò)展) OS_STK *OSTCBStkBottom。( 指向任務(wù)堆棧棧底指針) INT32U OSTCBStkSize。(存有棧中可容納的指針元數(shù)目) INT16U OSTCBOpt。 INT16U OSTCBId。 (存儲(chǔ)任務(wù)的識(shí)別碼 ID,備用) endif struct os_tcb *OSTCBNext。 (任務(wù)控制塊 OSTCB雙向鏈表的后鏈接) struct os_tcb *OSTCBPrev。 (任務(wù)控制塊 OSTCB雙向鏈表的前鏈接) if (OS_Q_EN amp。amp。 (OS_MAX_QS = 2)) || OS_MBOX_EN || OS_SEM_EN OS_EVENT *OSTCBEventPtr。( 指向事件控制塊的指針 ) endif 空任務(wù)列表 ?所有的任務(wù)控制塊都被放置在任務(wù)控制塊列表數(shù)組 OSTCBTbl[ ]中 ?系統(tǒng)初始化時(shí),所有任務(wù)控制塊被鏈接成空任務(wù)控制塊的單向鏈表 ?任務(wù)建立后,空任務(wù)控制塊指針 OSTCBFreeList指向的任務(wù)控制塊就賦給了該任務(wù),然后 OSTCBFreeList的值調(diào)整為指向鏈表中的下一個(gè)空任務(wù)控制塊 ?任務(wù)一旦被刪除,任務(wù)控制塊就還給空任務(wù)鏈表 任務(wù)級(jí)的任務(wù)調(diào)度 OSSched ? ?C/OS是 占先式實(shí)時(shí)多任務(wù)內(nèi)核 ,優(yōu)先級(jí)最高的任務(wù)一旦準(zhǔn)備就緒,則擁有 CPU的所有權(quán)即開始投入運(yùn)行。 ? ?C/OS中 不支持時(shí)間片輪轉(zhuǎn)法 ,每個(gè)任務(wù)的優(yōu)先級(jí)要求不一樣且是唯一的。因此,任務(wù)調(diào)度就是:查找準(zhǔn)備就緒的最高優(yōu)先級(jí)的任務(wù)并進(jìn)行上下文切換。 ? ?C/OS任務(wù)調(diào)度所花的時(shí)間為常數(shù) ,與應(yīng)用程序中建立的任務(wù)數(shù)無關(guān)。 就緒表 根據(jù)就緒表確定最高優(yōu)先級(jí) 兩個(gè)關(guān)鍵 : ? 優(yōu)先級(jí)數(shù)分解為高三位和低三位分別確定 ? 高優(yōu)先級(jí)有 著小的優(yōu)先級(jí)號(hào) 根據(jù)優(yōu)先級(jí)找到任務(wù)在就緒任務(wù)表中的位置 每個(gè)就緒的任務(wù)都放入就緒表中( ready list)中,就緒表用兩個(gè)變量表示: OSRdyGrp、 OSRdyTbl[] OSRdyGrp 1 2 0 7 6 5 4 3 0 0 X X X Y Y Y 任務(wù)優(yōu)先級(jí) 2 0 1 7 6 5 4 3 10 8 9 15 14 13 12 11 18 16 17 23 22 21 20 19 26 24 25 31 30 29 28 27 34 32 33 39 38 37 36 35 42 40 41 47 46 45 44 43 50 48 49 55 54 53 52 51 58 56 57 63 62 61 60 59 [0] [1] [2] [3] [4] [5] [6] [7] OSRdyTbl[7] X Y 優(yōu)先級(jí)最低任務(wù) (空閑任務(wù)) 優(yōu)先級(jí)最高任務(wù) 任務(wù)優(yōu)先級(jí)號(hào) 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 12 21 采用查表法確定高優(yōu)先級(jí)任務(wù) 查表法具有確定的時(shí)間 , 增加了系統(tǒng)的可預(yù)測(cè)性 , ?C/OS –II中所有的系統(tǒng)調(diào)用時(shí)間都是確定的 High3 =OSUnMapTbl[OSRdyGrp]。 Low3 =OSUnMapTbl[OSRdyTbl[High3]]。 Prio =(High33)+Low3。 OSRdyGrp 1 2 0 7 6 5 4 3 0 0 X X X Y Y Y 任務(wù)優(yōu)先級(jí) 2 0 1 7 6 5 4 3 10 8 9 15 14 13 12 11 18 16 17 23 22 21 20 19 26 24 25 31 30 29 28 27 34 32 33 39 38 37 36 35 42 40 41 47 46 45 44 43 50 48 49 55 54 53 52 51 58 56 57 63 62 61 60 59 [0] [1] [2] [3] [4] [5] [6] [7] OSRdyTbl[7] X Y 任務(wù)切換 ? 將被掛起的任務(wù)寄存器入棧 ? 將較高優(yōu)先級(jí)任務(wù)的寄存器出棧 任務(wù)級(jí)的任務(wù)切換 OS_TASK_SW() ? OS_TASK_SW()是宏調(diào)用,含有微處理器的軟中斷指令。因?yàn)椋到y(tǒng)假定任務(wù)切換是靠中斷級(jí)代碼完成的。 ? OS_TASK_SW()將處理器相關(guān)的軟件中斷機(jī)制封裝起來,便于操作系統(tǒng)移植 調(diào)用 OS_TASK_SW()前的數(shù)據(jù)結(jié)構(gòu) 低優(yōu)先級(jí)任務(wù) OS_TCB OSTCBCur (1) 存貯器低地址 存貯器高地址 堆棧方向 SP R1 R2 R3 R4 PC PSW 存貯器低地址 存貯器高地址 高優(yōu)先級(jí)任務(wù) (切換后運(yùn)行的任務(wù)) OS_TCB OSTCBHighRdy (3) (2) CPU (4) (5) PSW PC R1 R2 R3 R4 即將被掛起任務(wù)的棧頂 (即將被掛起任務(wù)) 指向即將 運(yùn)行的任 務(wù)的棧頂 保存當(dāng)前 CPU寄存器的值 低優(yōu)先級(jí)任務(wù) OS_TCB OSTCBCur PSW PC R1 R2 R3 R4 存貯器低地址 存貯器高地址 堆棧方向 SP R1 R2 R3 R4 PC PSW PSW PC R1 R2 R3 R4 存貯器低地址 存貯器高地址 高優(yōu)先級(jí)任務(wù) OS_TCB OSTCBHighRdy (2) CPU (1) (3) (3) 重新裝入要運(yùn)行的任務(wù) 低優(yōu)先級(jí)任務(wù) OS_TCB OSTCBCur PSW PC R1 R2 R3 R4 存貯器低地址 存貯器高地址 堆棧方向 SP R1 R2 R3 R4 PC PSW PSW PC R1 R2 R3 R4 存貯器低地址 存貯器高地址 高優(yōu)先級(jí)任務(wù) OS_TCB OSTCBHighRdy OSTCBCur (1) (2) CPU (4) (4) (1) (3) (3) (4) 復(fù)制 任務(wù)切換 OS_TASK_SW()的代碼 Void OSCtxSw(void) { 將 R1,R2,R
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1