1 事件集簡介
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了吉州免費建站歡迎大家使用!
事件集是一種線程間通訊方式,可有效處理線程與線程之間的資源生產(chǎn)與消費的同步問題。在SylixOS中事件集被定義為ULONG類型,每一位代表一個事件,即一個事件集可以處理32個不同的事件。事件集提供了發(fā)送和等待事件的API,資源生產(chǎn)者在資源準備好后發(fā)送事件,資源消費者則等待接收事件,如圖 1.1所示。

圖 1.1 事件集
2 事件集數(shù)據(jù)結(jié)構(gòu)
SylixOS中事件集相關(guān)的數(shù)據(jù)結(jié)構(gòu)主要有兩個,即事件集對象資源管理塊與事件集緩沖區(qū)。系統(tǒng)事先準備好固定數(shù)量的事件集緩沖區(qū),當應(yīng)用申請事件集時則從緩沖區(qū)中選取未使用的節(jié)點。事件集緩沖區(qū)由事件集對象資源管理塊管理,如圖 2.1所示。

圖 2.1 事件集結(jié)構(gòu)
3 事件集創(chuàng)建流程
事件集的創(chuàng)建流程本質(zhì)上就是準備事件集控制節(jié)點的過程。首先檢查事件集緩沖區(qū)中是否有空余位置,若已滿則返回錯誤。若還存在空余位置則獲取此位置并按照接口參數(shù)要求配置此控制節(jié)點以備后用,如圖 3.1所示。

圖 3.1 事件集創(chuàng)建流程
4 事件集發(fā)送流程
事件集發(fā)送流程首先需要在緩沖區(qū)中找到對應(yīng)的事件集控制節(jié)點,然后按照接口參數(shù)的要求設(shè)置或清空對應(yīng)的事件狀態(tài)位。當對應(yīng)的事件狀態(tài)被修改后還需要檢查當前此事件集中是否有正在等待的線程。若有則判斷當前的修改是否滿足此線程的喚醒條件,滿足則喚醒此線程,即將線程加入就緒隊列中,如圖 4.1所示

圖 4.1 事件集發(fā)送流程
5 事件集接收流程
在接收事件集時首先會判斷當前是否滿足激活條件,即是否有線程發(fā)送滿足條件的事件集。若沒有則線程會被阻塞,等待條件被滿足。線程阻塞可以設(shè)置超時時間,若此時間內(nèi)沒有接收到滿足條件的事件集則返回超時標志,如圖 5.1所示。

圖 5.1 事件集接收流程
新聞名稱:SylixOS事件集實現(xiàn)原理
本文地址:http://www.yijiale78.com/article48/pjdsep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、移動網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、關(guān)鍵詞優(yōu)化、搜索引擎優(yōu)化、手機網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)