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

正文內(nèi)容

ucos2嵌入式實(shí)時(shí)操作系統(tǒng)-在線瀏覽

2025-07-18 00:56本頁面
  

【正文】 *x = *y。 } A Free sample background from Slide 32 ? 不可重入型函數(shù)的例子 ? 程序清單 (不可重入型函數(shù)) int Temp。 *x = *y。 } A Free sample background from Slide 33 ? 把 Temp定義為局部變量; ? 調(diào)用函數(shù)之前關(guān)中斷,調(diào)用后再開中斷; ? 用信號(hào)量禁止該函數(shù)在使用過程中被再次調(diào)用。任務(wù)越重要,賦予的 優(yōu)先級(jí)越高,對(duì)大多數(shù)內(nèi)核而言,優(yōu)先級(jí)是由 用戶決定的。在靜態(tài)優(yōu)先級(jí)系統(tǒng)中,諸 任務(wù)以及它們的時(shí)間約束在程序編譯時(shí)是已知 的。 實(shí)時(shí)內(nèi)核應(yīng)當(dāng)避免出現(xiàn)優(yōu)先級(jí)反轉(zhuǎn)問題。 軟實(shí)時(shí)系統(tǒng)只是要求任務(wù)執(zhí)行得盡量快 , 并不要求在某一特定時(shí)間內(nèi)完成 。 ? 單調(diào)執(zhí)行率調(diào)度法 RMS(Rate Monotonic Scheduling),用于分配任務(wù)優(yōu)先級(jí) 。 A Free sample background from Slide 40 ? 單調(diào)執(zhí)行率調(diào)度法 ? RMS做了一系列假設(shè): ? 所有任務(wù)都是周期性的; ? 任務(wù)間不需要同步 , 沒有共享資源 ,沒有任務(wù)間數(shù)據(jù)交換等問題; ? CPU必須總是執(zhí)行那個(gè)優(yōu)先級(jí)最高且處于就緒態(tài)的任務(wù) 。 ? RMS定理 ∑( Ei/Ti)≤ n( 21/n1) i A Free sample background from Slide 41 ? RMS認(rèn)為:最高執(zhí)行率的任務(wù)具有最高的優(yōu)先級(jí);但在某些條件下,最高執(zhí)行率的任務(wù)并非是最重要的任務(wù)。雖然共享數(shù)據(jù)區(qū)法簡(jiǎn)化了任務(wù)間的信息交換, 但必須保證每個(gè)任務(wù)在處理共享數(shù)據(jù)時(shí)的排它性, 以避免競(jìng)爭(zhēng)和數(shù)據(jù)的破壞。 A Free sample background from Slide 43 ? 關(guān)中斷和開中斷 ? 處理共享數(shù)據(jù)時(shí)保證互斥,最簡(jiǎn)便快捷的辦法是關(guān)中斷和開中斷。 ? OS_ENTER_CRITICAL( ) ? OS_EXIT_CRITICAL( ) ? 說明 在任何時(shí)候 , 關(guān)中斷的時(shí)間都要盡量短 。 A Free sample background from Slide 44 ? 測(cè)試并置位操作 ? 定義 如果不使用實(shí)時(shí)內(nèi)核 , 當(dāng)兩個(gè)任務(wù)共享一 個(gè)資源時(shí) , 一定要約定好 , 先測(cè)試某一全程 變量 , 如果該變量是 0, 允許該任務(wù)與共享資 源打交道 。 ? 說明 TAS操作可能是微處理器的單獨(dú)一條不會(huì)被 中斷的指令 , 否則應(yīng)在程序中關(guān)中斷做 TAS操 作再開中斷 。 ? 應(yīng)該盡量避免 “ 禁止任務(wù)切換 ” 之類操作,因?yàn)閮?nèi)核最主要的功能就是做任務(wù)的調(diào)度與協(xié)調(diào)。 信號(hào)量實(shí)際上是一種約定機(jī)制 , 在多任務(wù)內(nèi)核中普遍使用 . ? 信號(hào)量用于: ? 控制共享資源的使用權(quán) (滿足互斥條件 )。 ? 使兩個(gè)任務(wù)的行為同步 。 如果信號(hào)量已被別的任務(wù)占用 , 該任務(wù)只得被掛起 , 直到信號(hào)量被當(dāng)前使用者釋放 。 當(dāng)信號(hào)量的值為 0時(shí) , 該任務(wù)被掛起;當(dāng)值為 1時(shí) , 任務(wù)得以運(yùn)行 。 根據(jù)信號(hào)量的值 , 內(nèi)核跟蹤那些 等待信號(hào)量的任務(wù) 。 A Free sample background from Slide 50 信號(hào)量管理緩沖區(qū)陣列 下一個(gè) 下一個(gè) 0 空余緩沖區(qū)表 BufReq() BufRel() 任務(wù) 1 任務(wù) 2 10 緩沖區(qū)管理 下一個(gè) A Free sample background from Slide 51 ? 說明 ? 信號(hào)量常被用過了頭 。 處理簡(jiǎn)單共享變量使用信號(hào)量是多余的 , 使用關(guān)中斷 、 開中斷還可提高效率 。 設(shè)任務(wù) T1正獨(dú)享資源 R1, 任務(wù) T2在獨(dú)享資源 R2, 而此時(shí) T1又要獨(dú)享 R2, T2也要獨(dú)享 R1, 于是哪個(gè)任務(wù)都沒法繼續(xù)執(zhí)行了 , 發(fā)生了死鎖 。 ? 用同樣的順序去申請(qǐng)多個(gè)資源 。 A Free sample background from Slide 53 ? 說明 ? 內(nèi)核大多允許用戶在申請(qǐng)信號(hào)量時(shí)定義等待超時(shí) , 以此化解死鎖 。 A Free sample background from Slide 54 同步 ? 利用信號(hào)量可實(shí)現(xiàn)多個(gè)任務(wù)間的同步 。 ISR TASK TASK POST POST PEND PEND TASK A Free sample background from Slide 55 ? 雙向同步 (bilateral rendezvous) ? 2個(gè)任務(wù)可以用 2個(gè)信號(hào)量同步它們的行為 ,如圖: TASK TASK PEND POST POST PEND A Free sample background from Slide 56 ? 說明 ? 雙向同步不可能在任務(wù)與 ISR之間實(shí)施 因?yàn)?ISR不可能等待一個(gè)信號(hào)量。 若任務(wù)需要與任何事件之一發(fā)生同步,可稱為獨(dú) 立型同步 (OR)。 ? 可以用多個(gè)事件的組合發(fā)信號(hào)給多個(gè)任務(wù)。 A Free sample background from Slide 58 ISR TASK TASK TASK POST POST PEND PEND 事件 (8,16 或 32bit) OR AND 事件 信號(hào)量 信號(hào)量 事件 A Free sample background from Slide 59 任務(wù)間通信 ? 定義 ? 任務(wù)間或中斷服務(wù)與任務(wù)間的信息傳遞稱為任務(wù)間的通信 。 ? 任務(wù)間信息傳遞有兩個(gè)途徑: ? 全程變量或共享內(nèi)存 ? 用全程變量時(shí),必須保證每個(gè)任務(wù)或中斷服務(wù)程序獨(dú)享該變量。如果兩個(gè)任務(wù)共享某變量,各任務(wù)實(shí)現(xiàn)獨(dú)享該變量的辦法可以是關(guān)中斷再開中斷,或使用信號(hào)量。 要避免這種情況 , 用戶可以考慮使用郵箱或消息隊(duì)列 。 典型的消息郵箱也稱作交換消息 , 即用一個(gè)指針型變量。 同樣 , 一個(gè)或多個(gè)任務(wù)可以通過內(nèi)核服務(wù)接收這則消息 。 A Free sample background from Slide 62 ? 下圖示意把消息放入郵箱 TASK Mailbox TASK POST PEND 10 A Free sample background from Slide 63 ? 內(nèi)核一般提供以下郵箱服務(wù) ? 郵箱內(nèi)消息內(nèi)容的初始化 ,郵箱里最初可以有 ,也可以沒有消息 。 ? 等待有消息進(jìn)入郵箱 (PEND)。 如果郵箱內(nèi)有消息 , 就接收這則消息 。 ? 說明 ? 消息郵箱也可以當(dāng)作只取兩個(gè)值的信號(hào)量來用:郵箱里有消息 , 表示資源可以使用;而空郵箱表示資源已被其它任務(wù)占用 。 消息隊(duì)列實(shí)際上是郵箱陣列 。 同樣 , 一個(gè)或多個(gè)任務(wù)可以通過內(nèi)核服務(wù)從消息隊(duì)列中得到消息 。 通常 , 先進(jìn)入消息隊(duì)列的消息先傳給任務(wù) , 也就是說 , 任務(wù)先得到的是最先進(jìn)入消息隊(duì)列的消息 , 即基于先進(jìn)先出原則 (FIFO)。 A Free sample background from Slide 65 ? 如圖所示:中斷服務(wù)子程序如何將消息放入消息隊(duì)列。 TASK Queue 0 POST ISR Interrupt PEND 10 A Free sample background from Slide 66 ? 內(nèi)核提供的消息隊(duì)列服務(wù)如下: ? 消息隊(duì)列初始化 , 隊(duì)列初始化時(shí)總是清為空 。 ? 等待一則消息的到來 (Pend)。 A Free sample background from Slide 67 中斷 ? 在實(shí)時(shí)系統(tǒng)中 , 中斷用于通知 CPU “ 有異常事件發(fā)生了 ” 。 中斷服務(wù)子程序進(jìn)行事件處理 , 處理完成后 , 程序回到: ? 在前 /后臺(tái)系統(tǒng)中 , 程序回到后臺(tái)程序; ? 對(duì)不可剝奪型內(nèi)核而言 , 程序回到被中斷了的任務(wù); ? 對(duì)可剝奪型內(nèi)核而言 , 讓進(jìn)入就緒態(tài)的優(yōu)先級(jí)最高的任務(wù)開始運(yùn)行 。微處理器一般允許中斷嵌套。 所有實(shí)時(shí)系統(tǒng)在進(jìn)入臨界區(qū)代碼段之前都要關(guān)中斷;執(zhí)行完臨界代碼段之后再開中斷 。 ? 中斷延遲由表達(dá)式給出: 中斷延遲 = 關(guān)中斷的最長時(shí)間 + 開始執(zhí)行中 斷服務(wù)子程序的第 1條指令的時(shí)間 A Free sample background from Slide 70 ? 中斷響應(yīng) ? 中斷響應(yīng)為從中斷發(fā)生到開始執(zhí)行用戶的中斷服務(wù)子程序代碼來處理這個(gè)中斷的時(shí)間 。 ? 中斷響應(yīng) = 中斷延遲 + 保存 CPU內(nèi)部寄存 器的時(shí)間 + 內(nèi)核進(jìn)入中斷服 務(wù)函數(shù)的執(zhí)行時(shí)間 A Free sample background from Slide 72 ? 中斷恢復(fù)時(shí)間 (Interrupt Recovery) ? 中斷恢復(fù)時(shí)間定義為微處理器返回到被中斷了的程序代碼所需要的時(shí)間 。 中斷恢復(fù)時(shí)間 = 恢復(fù) CPU內(nèi)部寄存器值的時(shí)間 + 執(zhí)行中斷返回指令的時(shí)間 A Free sample background from Slide 73 ? 對(duì)于可剝奪型內(nèi)核 , 在中斷服務(wù)子程序的末尾要調(diào)用一個(gè)由實(shí)時(shí)內(nèi)核提供的函數(shù) 。 如果脫離了嵌套 , 內(nèi)核要判斷是否使得一個(gè)優(yōu)先級(jí)更高得任務(wù)進(jìn)入就緒態(tài) 。 中斷恢復(fù)時(shí)間 = 判定是否有優(yōu)先級(jí)更高的任 務(wù)進(jìn)入了就緒態(tài)的時(shí)間 + 恢 復(fù)優(yōu)先級(jí)更高任務(wù)的 CPU內(nèi)部 寄存器的時(shí)間 + 執(zhí)行中斷返 回指令的時(shí)間 A Free sample background from Slide 74 ? 中斷處理 雖然中斷服務(wù)的處理時(shí)間應(yīng)該盡可能的短,但是對(duì)處理時(shí)間并沒有絕對(duì)的限制,根據(jù)實(shí)際應(yīng)用要求時(shí)間而定。 這個(gè)中斷可以看作是系統(tǒng)心臟的脈動(dòng) 。 ? 說明 ? 時(shí)鐘的節(jié)拍式中斷使得內(nèi)核可以將任務(wù)延時(shí)若干個(gè)整數(shù)時(shí)鐘節(jié)拍 , 以及當(dāng)任務(wù)等待事件發(fā)生時(shí) , 提供等待超時(shí)的依據(jù) 。 ? 各種實(shí)時(shí)內(nèi)核都有將任務(wù)延時(shí)若干個(gè)時(shí)鐘節(jié)拍的功能 。 1個(gè)時(shí)鐘節(jié)拍。 內(nèi)核的大小取決于多種因素 , 取決于內(nèi)核的特性 , 從 1K~ 100K字節(jié)都是可能的 。 決定??臻g的大小, 不僅須計(jì)算任務(wù)本身的需求 (局部變量 、 函數(shù)調(diào)用等等 ), 還需要計(jì)算最多中斷嵌套層數(shù) 。 A Free sample background from Slide 79 ? 綜上所述 , 多任務(wù)系統(tǒng)比前 /后臺(tái)系統(tǒng)需要更多的代碼空間 (ROM)和數(shù)據(jù)空間 (RAM)。 A Free sample background from Slide 80 前 /后臺(tái)系統(tǒng) 不可剝奪型內(nèi)核 可剝奪型內(nèi)核 中斷延時(shí)時(shí)間 MAX(最長指令時(shí)間,用戶關(guān)中斷時(shí)間 )+中斷向量跳轉(zhuǎn)時(shí)間 MAX(最長指令時(shí)間,用 戶關(guān)中斷時(shí)間,內(nèi)核關(guān)中斷 時(shí)間 )+中斷向量跳轉(zhuǎn)時(shí)間 MAX(最長指令時(shí),用戶關(guān)中斷時(shí)間,內(nèi)核關(guān)中斷時(shí)間 )+中斷向量跳轉(zhuǎn)時(shí)間 中斷響應(yīng)時(shí)間 中斷延時(shí)時(shí)間+保存CPU狀態(tài)時(shí)間 中斷延時(shí)時(shí)間+保存 CPU狀態(tài)時(shí)間 中斷延時(shí)時(shí)間+保存CPU狀態(tài)時(shí)間+內(nèi)核 ISR進(jìn)入時(shí)間 中斷恢復(fù)時(shí)間 后臺(tái)狀態(tài)恢復(fù)時(shí)間+中斷返回時(shí)間 后臺(tái)狀態(tài)恢復(fù)時(shí)間+中斷返回時(shí)間 尋找最高優(yōu)先級(jí)任務(wù)的時(shí)間+最高優(yōu)先級(jí)任務(wù)恢復(fù)時(shí)間+中斷返回時(shí)間 任務(wù)響應(yīng)時(shí)間 后臺(tái) 最長任務(wù)的執(zhí)行時(shí)間+尋找最高優(yōu)先級(jí)任務(wù)的時(shí)間+任務(wù)切換時(shí)間 尋找最高優(yōu)先級(jí)任務(wù)的時(shí)間+任務(wù)切換時(shí)間 ROM大小 應(yīng)用程序代碼 應(yīng)用程序代碼+內(nèi)核代碼 應(yīng)用程序代碼+內(nèi)核代碼 RAM大小 應(yīng)用程序代碼 應(yīng)用程序代碼+內(nèi)核 RAM+SUM(任務(wù)棧+ MAX(ISR)) 應(yīng)用程序代碼+內(nèi)核RAM+ SUM(任務(wù)棧+MAX(ISR)) 可獲得服務(wù) 應(yīng)用程序代碼必須提供 有 有 A Free sample background from Slide 81 1 3 2 5 4 7 6 嵌入式 實(shí)時(shí)操作系統(tǒng) 概念 ?C/OSⅡ 簡(jiǎn)介 ?C/OSⅡ 時(shí)間管理 ?C/OSⅡ 內(nèi)核結(jié)構(gòu) ?C/OSⅡ 任務(wù)管理 ?C/OSⅡ 任務(wù)通信與同步 ?C/OSⅡ 移植 A Free sample background from
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1