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

正文內(nèi)容

嵌入式系統(tǒng)-chapter6-同步、互斥與通信(參考版)

2025-01-03 15:30本頁面
  

【正文】 BSelect操作 Select操作管道 C管道 D任務(wù) A和任務(wù) B打開兩個(gè)管道作為任務(wù)間的通信方式:打開管道 C作為從任務(wù) A到任務(wù) B的數(shù)據(jù)傳輸,打開管道 D作為從任務(wù) B到任務(wù) A的回應(yīng)。 電子科技大學(xué)嵌入式軟件工程中心管道機(jī)制的典型應(yīng)用? 主要用于任務(wù)到任務(wù)或 ISR到任務(wù)的數(shù)據(jù)傳輸 ? 也可用于任務(wù)之間的同步 電子科技大學(xué)嵌入式軟件工程中心管道機(jī)制的典型應(yīng)用Task在這種情況下,當(dāng)頭兩個(gè)管道中的任意一個(gè)有數(shù)據(jù)時(shí),Select調(diào)用返回。 電子科技大學(xué)嵌入式軟件工程中心典型的管道操作? 選擇( Select)操作 –Select操作允許一個(gè)任務(wù)阻塞并等待一個(gè)或多個(gè)管道上的一個(gè)指定條件的發(fā)生。任務(wù)應(yīng)指定讀多少數(shù)據(jù)。–與 open操作相對(duì)應(yīng), close操作用于關(guān)閉并刪除一個(gè)命名管道。–創(chuàng)建一個(gè)命名管道與創(chuàng)建文件類似,在命名管道建立之后,在文件系統(tǒng)中有一個(gè)可識(shí)別的名字,可以使用 open操作打開它。電子科技大學(xué)嵌入式軟件工程中心典型的管道操作? 管道創(chuàng)建和刪除–創(chuàng)建管道的操作給調(diào)用者返回兩個(gè)描述符,后續(xù)的調(diào)用引用這些描述符。positionInputbufferBuffer 電子科技大學(xué)嵌入式軟件工程中心管道機(jī)制的主要數(shù)據(jù)結(jié)構(gòu)管道控制 塊Byte任務(wù)或ISR可以用名字對(duì)其進(jìn)行引用。 Task1Task5管道Task2Task3Task4Task6ISR1ISR2ISR3公共管道操作電子科技大學(xué)嵌入式軟件工程中心管道機(jī)制概述? 管道與消息隊(duì)列的區(qū)別– 管道不存儲(chǔ)多個(gè)消息,它存儲(chǔ)的數(shù)據(jù)是非結(jié)構(gòu)化的字節(jié)流;– 管道中的數(shù)據(jù)嚴(yán)格地遵循先進(jìn)先出的順序;– 管道支持選擇( select)操作,而消息隊(duì)列不支持。當(dāng)管道空時(shí),阻塞讀者,當(dāng)管道滿時(shí),阻塞寫者。在傳統(tǒng)的實(shí)現(xiàn)中,管道是單向數(shù)據(jù)交換設(shè)施。? 如果當(dāng)前運(yùn)行的任務(wù)發(fā)送異步信號(hào)給自己或收到來自中斷的異步信號(hào),在允許 ASR處理的前提下,它的 ASR會(huì)立即執(zhí)行。? 發(fā)送異步信號(hào)給任務(wù)對(duì)接收任務(wù)的執(zhí)行狀態(tài)沒有任何影響?!瓆}signal_set參數(shù)為任務(wù)接收到的異步信號(hào)集。CASESIGNAL_1:動(dòng)作 1;break。? 調(diào)用者需指定 ASR的入口地址和執(zhí)行屬性。僅當(dāng)任務(wù)已建立了 ASR,才允許向該任務(wù)發(fā)送異步信號(hào),否則發(fā)送的異步信號(hào)無效。–任務(wù) 不能預(yù)知何時(shí)會(huì)收到一個(gè)異步信號(hào) ,并且一旦接收到了異步信號(hào),在允許響應(yīng)的情況下,它會(huì)中斷正在運(yùn)行的代碼而去執(zhí)行異步信號(hào)處理程序。電子科技大學(xué)嵌入式軟件工程中心異步信號(hào)機(jī)制與事件機(jī)制的比較? 同樣是標(biāo)志著某個(gè)事件的發(fā)生,事件機(jī)制的使用是 同步 的,而異步信號(hào)機(jī)制是異步 的。– 執(zhí)行的環(huán)境不同一般地, ISR在獨(dú)立的上下文中運(yùn)行,操作系統(tǒng)為之提供專門的堆??臻g。? 異步信號(hào)通過發(fā)送異步信號(hào)的系統(tǒng)調(diào)用觸發(fā),但是系統(tǒng)不一定馬上開始對(duì)它的處理:–如果接收異步信號(hào)的不是當(dāng)前任務(wù),則 ASR要等到接收任務(wù)被調(diào)度、完成上下文切換后才能執(zhí)行,之后再執(zhí)行任務(wù)自身的代碼。– 有相應(yīng)的服務(wù)程序? 根據(jù)中斷向量,有一段與中斷信號(hào)對(duì)應(yīng)的服務(wù)程序,稱為 ISR( Interrupt Service Routine)? 根據(jù)異步信號(hào)的編號(hào),有一段與之對(duì)應(yīng)的服務(wù)程序,稱為 ASR( Asynchronious Service Routine)– 可以屏蔽其響應(yīng)? 外部硬件中斷可以通過相應(yīng)的寄存器操作被屏蔽? 任務(wù)也可屏蔽對(duì)異步信號(hào)的響應(yīng)電子科技大學(xué)嵌入式軟件工程中心異步信號(hào)機(jī)制與中斷機(jī)制的比較? 不同點(diǎn)– 實(shí)質(zhì)不同? 中斷由硬件或者特定的指令產(chǎn)生,不受任務(wù)調(diào)度的控制? 異步信號(hào)由系統(tǒng)調(diào)用(使用發(fā)送異步信號(hào)功能)產(chǎn)生,受到任務(wù)調(diào)度的控制– 處理時(shí)機(jī)(或響應(yīng)時(shí)間)不同? 中斷觸發(fā)后,硬件根據(jù)中斷向量找到相應(yīng)的服務(wù)程序執(zhí)行。}1 0 0 0 0 0異步信號(hào) 標(biāo) 志電子科技大學(xué)嵌入式軟件工程中心異步信號(hào)機(jī)制與中斷機(jī)制的比較? 相同點(diǎn)– 具有中斷性 。((? 異步信號(hào)機(jī)制也可以稱作軟中斷機(jī)制,異步信號(hào)又被稱為軟中斷信號(hào)。? 一個(gè) ASR對(duì)應(yīng)于一個(gè)任務(wù)。? 異步信號(hào)標(biāo)志可以依附于任務(wù)。 }}電子科技大學(xué)嵌入式軟件工程中心設(shè) 置事件②設(shè) 置事件②Task1ISR來自某設(shè)備的中斷 Task2消息隊(duì)列 Q事件標(biāo)志集信號(hào)量 S0 1 0 0 0 1 0 0發(fā) 送消息 ①釋 放信號(hào)量 ①接收消息④獲 取信號(hào)量 ④③事件機(jī)制的典型應(yīng)用? 解決復(fù)雜的應(yīng)用設(shè)計(jì)問題 ① 發(fā)送方( Task1或 ISR)發(fā)送信息(消息或信號(hào)量);② 發(fā)送方( Task1或 ISR)設(shè)置相應(yīng)的事件標(biāo)志(指示消息或信號(hào)量的發(fā)送);③ 接收方( Task2)檢測事件標(biāo)志集,判斷是否滿足其接收條件( “與 ” 條件接收或 “ 或 ”條件接收);④ 接收方( Task2)根據(jù)事件標(biāo)志集的指示定向接收信息(消息或信號(hào)量),達(dá)到和不同發(fā)送方( Task1或 ISR)同步或通信的目的。 default:*err = OS_ERR_INVALID_OPT。//如果之前有任務(wù)等待, *err = OS_NO_ERR。OSFlagFreeList = pgrp。 }pgrpOSFlagType = OS_EVENT_TYPE_UNUSED。//獲取等待頭節(jié)點(diǎn) while (pnode != (OS_FLAG_NODE *)0) {//遍歷整個(gè)等待任務(wù)鏈,使每個(gè)等待任務(wù)就緒 OS_FlagTaskRdy(pnode, (OS_FLAGS)0)。 return (pgrp)。 return ((OS_FLAG_GRP *)0)。 OSFlagFreeList = pgrp。//無任務(wù)等待switch (opt) { case if (tasks_waiting == FALSE) {//無任務(wù)等待,釋放控制塊到空閑鏈中 pgrpOSFlagType = OS_EVENT_TYPE_UNUSED。if (pgrpOSFlagWaitList != (void *)0) tasks_waiting = TRUE。}發(fā)送(置位)事件標(biāo)志組中的事件標(biāo)志OSFlagPost()電子科技大學(xué)嵌入式軟件工程中心刪除事件集? 回收事件集控制塊到空閑鏈中,等待接收該事件集的任務(wù)被恢復(fù)就緒電子科技大學(xué)嵌入式軟件工程中心刪除事件標(biāo)志組 OSFlagDel()OS_FLAG_GRP *OSFlagDel (OS_FLAG_GRP *pgrp, INT8U opt, INT8U *err){ BOOLEAN tasks_waiting。//如果設(shè)置了調(diào)度標(biāo)志,則實(shí)施調(diào)度*err = OS_NO_ERR。} pnode = (OS_FLAG_NODE *)pnodeOSFlagNodeNext。 if (flags_rdy != (OS_FLAGS)0) {//有滿足條件的事件標(biāo)志 if (OS_FlagTaskRdy(pnode, flags_rdy) == TRUE) sched = TRUE。//如果任務(wù)就緒,設(shè)置調(diào)度標(biāo)志 } break。//獲取任務(wù)等待鏈頭節(jié)點(diǎn)while (pnode != (OS_FLAG_NODE *)0) {//如果有任務(wù)等待,遍歷等待鏈switch (pnodeOSFlagNodeWaitType) { case 與 ” 方式等待 flags_rdy = pgrpOSFlagFlags pnodeOSFlagNodeFlags。pgrpOSFlagFlags |= flags。BOOLEAN sched= FALSE??赡軙?huì)出現(xiàn)以下幾種情況之一:–目標(biāo)任務(wù)正在等待的事件條件得到滿足,任務(wù)就緒;–目標(biāo)任務(wù)正在等待的事件條件沒有得到滿足,該事件(集)被按 “或 ”操作,保存到目標(biāo)任務(wù)的待處理事件集中,目標(biāo)任務(wù)繼續(xù)等待;–目標(biāo)任務(wù)未等待事件(集),該事件(集)被按 “或 ”操作,保存到目標(biāo)任務(wù)的待處理事件集中。 } return (flags_cur)。//0表示無效的事件標(biāo)志組*err = OS_FLAG_ERR_WAIT_TYPE。break。//事件標(biāo)志當(dāng)前狀態(tài)與等待條件相符,清除(即 “ 消費(fèi) ” )相應(yīng)的事件標(biāo)志else *err = OS_FLAG_ERR_NOT_RDY。電子科技大學(xué)嵌入式軟件工程中心接收(無等待地獲?。┦录?biāo)志OSFlagAccept() case 或 ” 方式等待flags_rdy = pgrpOSFlagFlags flags。//不符合條件,返回錯(cuò)誤信息flags_cur = pgrpOSFlagFlags。if (flags_rdy == flags) pgrpOSFlagFlags = ~flags_rdy。*err = OS_NO_ERR。}return(flags_cur)。 //清除(即 “ 消費(fèi) ”)滿足條件的事件標(biāo)志flags_cur=pgrpOSFlagFlags。//無效的事件標(biāo)志狀態(tài)*err=OS_TIMEOUT。//將任務(wù)從事件標(biāo)志等待鏈中解除下來OSTCBCurOSTCBStat=OS_STAT_RDY。}電子科技大學(xué)嵌入式軟件工程中心OS_Sched()。*err=OS_FLAG_ERR_WAIT_TYPE。}//事件標(biāo)志當(dāng)前狀態(tài)與等待條件不相符,任務(wù)被阻塞break。 return(flags_cur)。 //清除(即 “ 消費(fèi) ” )滿足條件的事件標(biāo)志 flags_cur=pgrpOSFlagFlags。電子科技大學(xué)嵌入式軟件工程中心接收(等待)事件標(biāo)志組的事件標(biāo)志位OSFlagPend()case OS_FLAG_WAIT_SET_ANY: //任務(wù)以 “ 或 ” 方式等待事件標(biāo)志 flags_rdy=pgrpOSFlagFlagsflags。//返回處理后的事件標(biāo)志組}else{OS_FlagBlock(pgrp, node, flags, wait_type, timeout)。*err=OS_NO_ERR。if(flags_rdy==flags){//事件標(biāo)志當(dāng)前狀態(tài)與等待條件相符pgrpOSFlagFlags=~flags_rdy。OS_FLAGS flags_rdy。EVENT_ALLEVENT_ANY待處理事件集必須包含事件條件中的全部事件方可滿足要求,即按照 “與 ”條件接收事件待處理事件集只要包含事件條件中的任一事件即可滿足要求,即按照 “或 ”條件接收事件電子科技大學(xué)嵌入式軟件工程中心接收(等待)事件標(biāo)志組的事件標(biāo)志位OSFlagPend()OS_FLAGS OSFlagPend(OS_FLAG_GRP *pgrp, OS_FLAGS flags, INT8U wait_type, INT16U timeout, INT8U *err){OS_FLAG_NODE node。}return(pgrp)。//尚無任務(wù)等待事件標(biāo)志*err=OS_NO_ERR。pgrpOSFlagFlags=flags。//獲取一個(gè)空閑事件標(biāo)志組結(jié)構(gòu)if(pgrp!=(OS_FLAG_GRP *)0){//獲取成功,初始化該結(jié)構(gòu)中的域OSFlagFreeList=(OS_FLAG_GRP *)OSFlagFreeListOSFlagWaitList。電子科技大學(xué)嵌入式軟件工程中心事件標(biāo)志組、事件標(biāo)志節(jié)點(diǎn)及任務(wù)控制塊之間的關(guān)系OS_FLAG_GRP OS_FLAG_NODE.OSTCBFlagNode.OSFlagNodeFlags.OSFlagNodeWaitType.OSFlagNodeNext.OSFlagNodePrev.OSFlagNodeTCB.OSFlagWaitList.OSFlagFlags.OSFlagType
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1