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

正文內(nèi)容

ucos2嵌入式實(shí)時(shí)操作系統(tǒng)-文庫吧資料

2025-05-23 00:56本頁面
  

【正文】 A Free sample background from Slide 75 時(shí)鐘節(jié)拍 (Clock Tick) ? 定義 ? 時(shí)鐘節(jié)拍是特定的周期性中斷 。 如果是 , 則讓優(yōu)先級更高的任務(wù)開始運(yùn)行 。 該函數(shù)用于判斷中斷是否脫離了所有的中斷嵌套 。 ? 在前 /后臺系統(tǒng)中 , 中斷恢復(fù)時(shí)間 = 恢復(fù) CPU內(nèi)部寄存器值的時(shí)間 + 執(zhí)行中斷返回指令的時(shí)間 ? 不可剝奪型內(nèi)核的中斷恢復(fù)時(shí)間與前 /后臺系統(tǒng)一樣 。 ? 對前 /后臺系統(tǒng) , 保存寄存器以后立即執(zhí)行用戶代碼 , ? 中斷響應(yīng)時(shí)間 = 中斷延遲 + 保存 CPU內(nèi)部 寄存器的時(shí)間 ? 對于不可剝奪型內(nèi)核 , 微處理器保存內(nèi)部寄存器以后 , 立即執(zhí)行中斷服務(wù)子程序代碼 : ? 中斷響應(yīng)時(shí)間 = 中斷延遲 + 保存 CPU內(nèi)部 寄存器的時(shí)間 A Free sample background from Slide 71 ? 對于可剝奪型內(nèi)核 , 則要先調(diào)用一個(gè)特定的函數(shù) , 該函數(shù)通知內(nèi)核即將進(jìn)行中斷服務(wù) , 使得內(nèi)核可以跟蹤中斷的嵌套 。 關(guān)中斷的時(shí)間越長 , 中斷延遲就越長 。 A Free sample background from Slide 69 ? 中斷延遲 ? 實(shí)時(shí)系統(tǒng)最重要的指標(biāo)就是關(guān)中斷的時(shí)間長短。 A Free sample background from Slide 68 ? 通過兩條特殊指令: 關(guān)中斷 (Disable interrupt)和開中斷 (Enable interrupt), 可以讓微處理器不響應(yīng)或響應(yīng)中斷 。 中斷一旦被識別 , CPU保存部分(或全部 )現(xiàn)場 (Context),即部分或全部寄存器的值 , 跳轉(zhuǎn)到中斷服務(wù)子程序 (ISR)。 ? 如果隊(duì)列中有消息 , 則任務(wù)可以得到消息 , 但如果此時(shí)隊(duì)列為空 , 內(nèi)核并不將該任務(wù)掛起(Accept), 則用特別的返回代碼通知調(diào)用者 。 ? 放一則消息到隊(duì)列中去 (Post)。圖中 表示消息隊(duì)列, “ 10” 表示消息隊(duì)列最多可以放 10條消息,沙漏旁邊的 0表示任務(wù)沒有定義超時(shí),將永遠(yuǎn)等下去,直至消息的到來。 ? 每個(gè)消息隊(duì)列有一張等待消息任務(wù)的等待列表(Waiting List)。 發(fā)送和接收消息的任務(wù)約定 , 傳遞的消息實(shí)際上是傳遞的指針指向的內(nèi)容 。 通過內(nèi)核提供的服務(wù) , 任務(wù)或中斷服務(wù)子程序可以將一條消息 (該消息的指針 )放入消息隊(duì)列 。 A Free sample background from Slide 64 消息隊(duì)列 (Message Queue) ? 定義 ? 消息隊(duì)列用于給任務(wù)發(fā)消息 。 如果郵箱里沒有消息 , 則任務(wù)并不被掛起 (ACCEPT),用返回代碼表示調(diào)用結(jié)果 。 ? 從郵箱中得到消息 。 ? 將消息放入郵箱 (POST)。 ? 發(fā)送消息和接收消息的任務(wù)約定 , 該指針指向的內(nèi)容就是那則消息 。 一個(gè)任務(wù)或一個(gè)中斷服務(wù)程序通過內(nèi)核服務(wù), 可以把一則消息 (即一個(gè)指針 )放到郵箱里去。 ? 郵箱或消息隊(duì)列 A Free sample background from Slide 61 消息郵箱 (Message Mail boxes) ? 定義 ? 通過內(nèi)核服務(wù)可以給任務(wù)發(fā)送消息 。 A Free sample background from Slide 60 ? 注意: 任務(wù)只能通過全程變量與中斷服務(wù)程序通信 , 而任務(wù)并不知道什么時(shí)候全程變量被中斷服務(wù)程序修改了 , 除非中斷程序以信號量方式向任務(wù)發(fā)信號或者是該任務(wù)以查詢方式不斷周期性地查詢變量的值 。 ? 中斷服務(wù)中保證獨(dú)享的唯一辦法是關(guān)中斷。 ( intertask munication) 。 ? 通過任務(wù)和中斷服務(wù)給每一位置位或復(fù)位,確定任 務(wù)執(zhí)行與否。 任務(wù)也可以與若干事件都發(fā)生了 同步,稱之為關(guān)聯(lián)型同步 (AND)。 A Free sample background from Slide 57 事件標(biāo)志 (Event Flags) ? 當(dāng)某任務(wù)要與多個(gè)事件同步時(shí),要使用事件標(biāo)志。 ? 單向同步 (unilateral rendezvous) ? 利用信號量使某個(gè)任務(wù)與中斷服務(wù)同步或與另一個(gè)無數(shù)據(jù)交換的任務(wù)同步 。 當(dāng)?shù)却龝r(shí)間超過某一確定值 , 而信號量還是無效狀態(tài)時(shí) , 就會(huì)返回某種形式的出現(xiàn)超時(shí)錯(cuò)誤的代碼 , 告知任務(wù) , 不是得不到資源使用權(quán) , 而是系統(tǒng)錯(cuò)誤 。 ? 釋放資源時(shí)使用相反的順序 。 ? 防止發(fā)生死鎖的方法 : 讓每個(gè)任務(wù)都: ? 先得到全部需要的資源再做下一步的工作 。 A Free sample background from Slide 52 死鎖 ? 定義 ? 死鎖也稱作抱死 , 指兩個(gè)任務(wù)無限期地互相等待對方控制著的資源 。 請求和釋放信號量的過程是要花相當(dāng)?shù)臅r(shí)間的 。 計(jì)數(shù)型信號量用于某資源可以同時(shí)為幾個(gè)任務(wù)所用 。 A Free sample background from Slide 48 任務(wù) 1 任務(wù) 2 打印機(jī) 信號量 “ 我是任務(wù) 1” 請求信號量 請求信號量 “ 我是任務(wù) 2” A Free sample background from Slide 49 ? 計(jì)數(shù)型信號量 計(jì)數(shù)式信號量的值可以是 0~ 255或 0~ 65535 或 0~ 4294967295, 取決于信號量規(guī)約機(jī)制使用 的是 8位 、 16位還是 32位 , 實(shí)際上是取決于所用 內(nèi)核的類型 。 A Free sample background from Slide 47 ? 信號量有兩種類型: ? 二進(jìn)制型: 只有兩個(gè)值 1和 0。 ? 信號量像是一把鑰匙 , 任務(wù)要運(yùn)行下去 , 得先拿到這把鑰匙 。 ? 標(biāo)志某事件的發(fā)生 。 A Free sample background from Slide 46 信號量 (Semaphores) ? 信號量是 60年代中期 Edgser Dijkstra 發(fā)明的 。 A Free sample background from Slide 45 ? 禁止 ,然后允許任務(wù)切換 ? 如果任務(wù)不與中斷服務(wù)子程序共享變量或數(shù)據(jù)結(jié)構(gòu) ,可以使用 “ 禁止、然后允許任務(wù)切換 ” 操作。 為防止另一任務(wù)也要使用該資源 , 前者只需簡單地將全程變量置為 1, 這就稱 作測試并置位 TAS(TestAndSet)操作 。 一 般說 , 關(guān)中斷時(shí)間最長不超過內(nèi)核本身的關(guān)中 斷時(shí)間 , 這樣就不會(huì)影響系統(tǒng)中斷延遲 。 ? μC/OS Ⅱ 提供兩個(gè)宏調(diào)用以完成關(guān)中斷和開中斷。 與共享資源打交道時(shí),使之滿足互斥條件最一般 的方法有: ? 關(guān)中斷; ? 使用測試并置位指令; ? 禁止做任務(wù)切換; ? 利用信號量。 任務(wù)數(shù) n ( 21 / n 1 )123451 . 0000 . 8280 . 7790 . 7560 . 74380 . 693? ?? 基于任務(wù)的 CPU最高允許使用率 A Free sample background from Slide 42 互斥條件 實(shí)現(xiàn)任務(wù)間通訊最簡便的辦法是使用共享數(shù)據(jù)結(jié) 構(gòu)。 換句話說 ,須使用優(yōu)先級調(diào)度法 。 這種方法基于任務(wù)執(zhí)行的次數(shù) (或稱任務(wù)的執(zhí)行率),執(zhí)行最頻繁的任務(wù)優(yōu)先級最高 。 硬實(shí)時(shí)系統(tǒng)中 , 任務(wù)不但要執(zhí)行無誤 , 還要準(zhǔn)時(shí)完成 。 A Free sample background from Slide 36 優(yōu)先級反轉(zhuǎn) ? 優(yōu)先級反轉(zhuǎn) ? 為防止 優(yōu)先級反轉(zhuǎn),內(nèi)核能自動(dòng)變換任務(wù) 的優(yōu)先級,這叫做優(yōu)先級繼承 A Free sample background from Slide 37 ? 優(yōu)先級反轉(zhuǎn) A Free sample background from Slide 38 ? 優(yōu)先級繼承 任 務(wù) 1 ( 高 )任 務(wù) 2 ( 中 )任 務(wù) 3 ( 低 )任 務(wù) 1 試 圖 得 到 m u t e x( 任 務(wù) 3 的 優(yōu) 先 級 被 提 升 到 任 務(wù) 1 的 水 平 )( 6 )任 務(wù) 1 剝 奪 了 任 務(wù) 3 的 c p u 使 用 權(quán)( 4 )任 務(wù) 3 得 到 m u t e x( 2 )任 務(wù) 3 釋 放 m u t e x( 任 務(wù) 1 得 以 繼 續(xù) 運(yùn) 行 )( 8 )任 務(wù) 1 完 成( 1 0 )( 1 ) ( 3 )( 7 )( 5 )優(yōu) 先 級 反 轉(zhuǎn)( 1 1 )( 9 )A Free sample background from Slide 39 任務(wù)優(yōu)先級分配 ? 任務(wù)優(yōu)先級分配 ? 實(shí)時(shí)系統(tǒng)大多綜合了軟實(shí)時(shí)和硬實(shí)時(shí)這兩種需求 。 A Free sample background from Slide 35 ? 動(dòng)態(tài)優(yōu)先級 應(yīng)用程序執(zhí)行過程中,任務(wù)的優(yōu)先級是可變的,則稱之為動(dòng)態(tài)優(yōu)先級。 ? 靜態(tài)優(yōu)先級 應(yīng)用程序執(zhí)行過程中諸任務(wù)優(yōu)先級不變,則 稱之為靜態(tài)優(yōu)先級。 ? 使函數(shù)具有可重入性的方法 : A Free sample background from Slide 34 任務(wù)優(yōu)先級 ? 任務(wù)優(yōu)先級 每個(gè)任務(wù)都有優(yōu)先級。 *y = Temp。 void swap(int *x, int *y) { Temp = *x。 *y = Temp。 Temp = *x。如果使用全局變量,則要對全局變量予以保護(hù)??芍厝胄秃瘮?shù)任何時(shí)候都可以被中斷,一段時(shí)間以后又可以運(yùn)行,而相應(yīng)數(shù)據(jù)不會(huì)丟失。 ? μC/OS Ⅱ 以及大多數(shù)的商業(yè)的實(shí)時(shí)內(nèi)核都是 可剝奪型內(nèi)核 。如果調(diào)用不可重入型函數(shù)時(shí),低優(yōu)先級的任務(wù)的 CPU使用權(quán)被高優(yōu)先級任務(wù)剝奪,不可重入型函數(shù)中的數(shù)據(jù)有可能被破壞。 ? 使用可剝奪型內(nèi)核時(shí),應(yīng)用程序不應(yīng)直接使用不可重入型函數(shù)。如果是中斷服務(wù)子程序使一個(gè)高優(yōu)先級的任務(wù)進(jìn)入就緒態(tài),中斷完成時(shí),中斷了的任務(wù)被掛起,優(yōu)先級高的那個(gè)任務(wù)開始運(yùn)行。 A Free sample background from Slide 26 ? 可剝奪型內(nèi)核 ? 最高優(yōu)先級的任務(wù)一旦就緒,總能得到 CPU的控制權(quán)。 A Free sample background from Slide 25 ? 不可剝奪型內(nèi)核的缺點(diǎn) ? 不可剝奪型內(nèi)核最大缺陷在于其響應(yīng)時(shí)間 ,即響應(yīng)高優(yōu)先級的任務(wù)慢。但這也不是絕對的,在某種情 況下,信號量還是用得著的。此時(shí)的任務(wù)級響應(yīng) 時(shí)間取決于最長的任務(wù)執(zhí)行時(shí)間。 ? 不可剝奪型內(nèi)核 ? 要求每個(gè)任務(wù)主動(dòng)放棄 cpu的使用權(quán)。但中斷服務(wù)以后控制權(quán)還是回到原來被中斷了的那個(gè)任務(wù),直到該任務(wù)主動(dòng)放棄 CPU的使用權(quán)時(shí),那個(gè)高優(yōu)先級的任務(wù)才能獲得CPU的使用權(quán)。 異步事件還是由中斷服務(wù)來處理。 ? 調(diào)度 ( Scheduler) 調(diào)度是內(nèi)核的主要職責(zé)之一,就是要決定該輪到 哪個(gè)任務(wù)運(yùn)行了。 A Free sample background from Slide 21 ? 調(diào)度算法 ? 基于優(yōu)先級的調(diào)度法 每個(gè)任務(wù)根據(jù)其重要程度的不同賦予一 定的優(yōu)先級, CPU總是讓處在就緒態(tài)的、優(yōu) 先級最高的任務(wù)先運(yùn)行。 ? 說明 ? 實(shí)時(shí)內(nèi)核為使 CPU的利用更為有效,提供了必不可少的系統(tǒng)服務(wù):信號量管理,郵箱、消息隊(duì)列及時(shí)間延時(shí)等。 ? 內(nèi)核本身的數(shù)據(jù)結(jié)構(gòu)增加了 RAM的用量。 ? 系統(tǒng)內(nèi)核 A Free sample background from Slide 20 ? 缺點(diǎn) ? 內(nèi)核本身也增加了應(yīng)用程序的額外負(fù)荷 。 內(nèi)核提供的基本服務(wù) 是任務(wù)切換 。 ? 任務(wù)切換所需要的時(shí)間取決于 CPU有多少寄存器要入棧。入棧完成后,把下一個(gè)將要運(yùn)行的任務(wù)的當(dāng)前狀況從該任務(wù)的棧中重新裝入 CPU的寄存器,并開始下一個(gè)任務(wù)的運(yùn)行,這個(gè)過程叫做任務(wù)切換。 ? 使用多任務(wù) , 應(yīng)用程序?qū)⒏菀自O(shè)計(jì)與維護(hù) 。 ? 多任務(wù)運(yùn)行使 CPU的利用率得到最大的發(fā)揮,并使應(yīng)用程序模塊化。 A Free sample background from Slide 16 等 待
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1