[發明專利]一種在多任務環境下防止死鎖的互斥信號量管理方法有效
| 申請號: | 201110450433.3 | 申請日: | 2011-12-30 |
| 公開(公告)號: | CN102567096B | 公開(公告)日: | 2017-02-08 |
| 發明(設計)人: | 李彥峰;潘遠明;楊秋松;武延軍;翟健;杜栓柱;劉立宇 | 申請(專利權)人: | 中國科學院軟件研究所 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100190 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 任務 環境 防止 死鎖 信號量 管理 方法 | ||
技術領域
本發明屬于計算機操作系統技術領域,尤其涉及一種在多任務環境下防止死鎖的互斥信號量管理方法。
背景技術
在嵌入式計算機操作系統中,很多情況下,需要保障任務獨自訪問共享資源或者臨界區。可能幾個任務競爭地訪問這些資源,所以必須同步它們的行為,以實現獨占式的訪問。互斥信號量是專門被設計用來提供互斥訪問,從而避免任務間沖突和不確定交互的方法。然而,使用互斥信號量的一個潛在問題是死鎖。死鎖是由兩個或兩個以上的進程在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法繼續執行。
發明內容
鑒于現有技術中存在的問題,本發明提供一種在多任務環境下防止死鎖的互斥信號量管理方法,其特征在于包括如下步驟:
A、為系統所需的互斥信號量分配一一對應的編號,編號有大小之分;
B、在任務狀態控制塊中建立包括含有互斥信號量的ID與互斥信號量編號信息的雙向鏈表,并指明任務已經占有的信號量的個數以及任務可占有信號量的最大個數;
C、在系統中建立針對互斥信號量的狀態數組,以所述互斥信號量編號為狀態數組下標,指示互斥信號量在系統中的存在個數;數組的每個成員值表示系統中所對應編號的互斥信號量的擁有個數;
D、在任務狀態控制塊中根據互斥信號量的ID按照互斥信號量編號從小到大的順序申請信號量,并根據信號量的使用情況,對任務狀態控制塊中存放占有信號量的個數的域以及互斥信號量狀態數組進行更新。
進一步,本發明所述的在多任務環境中防止死鎖的互斥信號量管理方法,其特征在于在信號量申請的過程中,如果任務申請互斥信號量失敗或者已經超過可占有信號量的最大個數,那么系統收回該任務已經申請獲得的并且編號小于該信號量編號的信號量,并更新對應任務狀態控制塊中的存放占有信號量個數的域和互斥信號量狀態數組;如果任務申請成功并且尚未到達可占有信號量的最大個數,則更新互斥信號量狀態數組的對應項。
進一步,本發明所述的在多任務環境中防止死鎖的互斥信號量管理方法,其特征在于:步驟A為系統所需的互斥信號量分配的編號采用整數表示。
進一步,本發明所述的在多任務環境中防止死鎖的互斥信號量管理方法,其特征在于:步驟C中所述互斥信號量的狀態數組元素的類型為整型,初始化為零。
進一步,本發明所述的在多任務環境中防止死鎖的互斥信號量管理方法,其特征在于:如果某個任務釋放某個互斥信號量,對應互斥信號量的狀態數組中對應的值就會自加操作。
進一步,本發明所述的在多任務環境中防止死鎖的互斥信號量管理方法,其特征在于:
如果任務申請獲得某個信號量,它將先查找狀態數組,如果對應的值小于零,則表示無法再申請當前信號量,該方法將已經占有并且編號小于該編號的信號量釋放回系統,更新狀態數組對應項以及任務控制塊中的存放已經占有信號量的域,并將任務加入掛起隊列;如果對應的值大于零并且任務控制塊的所占有的信號量數目已經達到了最大可占有的數,則將已經占有并且編號小于該編號的信號量釋放回系統,更新狀態數組對應項以及任務控制塊中的存放已經占有信號量的域,將任務加入掛起隊列;如果對應的值大于零并且任務控制塊的所占有的信號量數目還沒有達到最大可占有數,則更新狀態數組對應項以及任務控制塊中的存放已經占有信號量的域。
進一步,本發明所述的在多任務環境中防止死鎖的互斥信號量管理方法,其特征在于:在進行步驟D的操作的時候,操作過程不被中斷。
基于申請互斥信號量有序化的機制,本發明的目的是提供一種防止死鎖的互斥信號量管理方法,該方法通過一種新型的互斥信號量管理機制,可有效避免互斥信號量機制引發的死鎖。
附圖說明
圖1是本發明實現在多任務環境下防止死鎖的互斥信號量管理方法的流程圖。
具體實施方式
為使本發明的上述目的、特征和優點更加明顯易懂,下面結合附圖和具體實施方式對本發明作進一步詳細的說明。
圖1是本發明實現在多任務環境下防止死鎖的互斥信號量管理方法的流程圖;其包括如下步驟:
A、為系統所需的互斥信號量分配一一對應的編號,編號有大小之分;
互斥信號量是操作系統內核為多任務環境下保護臨界資源而設置的一種機制,普通的互斥信號量由一一對應的控制塊管理,保存有信號量的基本信息。本方法中在控制塊中增加新成員表示該互斥信號量的編號,編號有大小之分,為系統所需的互斥信號量分配的編號采用整數表示,并且沒有兩個互斥信號量的編號相同。新型互斥信號量在創建的時候通過參數傳遞的方式,指定該編碼。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院軟件研究所,未經中國科學院軟件研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110450433.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:采用限流器件保護的非導體接觸電能傳輸方法
- 下一篇:服務器機柜





