新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 互斥型信號量專

        互斥型信號量專

        作者: 時間:2016-09-12 來源:網絡 收藏

        1.互斥型信號量(mutex)

        本文引用地址:http://www.104case.com/article/201609/304507.htm

        互斥型信號量具備uc/os-ii信號量的所有機制,但還具有其他一些特性。

        任務可利用互斥型信號量來實現對共享資源的獨占處理。

        Mutex是二值信號量,1表示資源是可以使用的。

        2.關于優先級反轉(PIP)

        下面概述優先級反轉原理:

        假設有三個任務,分別命名為A,B,C;A的優先級最高,C的優先級最低。任務A和任務B處于掛起狀態(請注意這條件),等待某一事件的發生,任務C正在運行。當任務C等待到共享資源(命名為S1)并使用后,如果任務A等待得事件到來之后,由于A的優先級最高,所以就會剝奪任務C的CPU使用權。運行過程中,任務A也要使用資源S1,但S1的信號量還被任務C占用著,所有任務A只能進入掛起狀態,等待任務C對S1的信號量的釋放。此時任務C得以繼續運行。

        同理,任務B的事件到來后,會剝奪任務C的CPU使用權。任務B把事情搞定以后,把CPU使用權歸還給任務B。任務B又得以繼續運行,任務B認真處理完畢資源S1后,終于可以釋放S1的信號量。而處于等待該信號量的任務A馬上得到信號量并開始處理共享資源S1。

        綜述上面情況,任務C和任務A的優先級發生了反轉。而互斥型信號量就是具有解決優先級反轉問題的特性。

        3.UC/OS-II的互斥型信號量由三個部分組成:

        ◆一個標志,指示mutex是否可以使用(0或1)

        ◆一個優先級,準備一旦高優先級的任務需要這個mutex,賦予給占有mutex的任務。

        ◆一個等待該mutex的任務列表。



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 怀仁县| 常宁市| 岱山县| 犍为县| 马龙县| 西城区| 双辽市| 板桥市| 西盟| 定边县| 祥云县| 灌南县| 肇源县| 木兰县| 岐山县| 黄冈市| 平安县| 南部县| 锦州市| 观塘区| 海门市| 鲁甸县| 翁牛特旗| 洱源县| 四平市| 红原县| 娄烦县| 宜都市| 绿春县| 彭阳县| 贡觉县| 凤山市| 岐山县| 屏山县| 临沭县| 五河县| 邢台县| 澄江县| 新丰县| 鲜城| 股票|