[發明專利]一種在多任務環境下防止死鎖的互斥信號量管理方法有效
| 申請號: | 201110450433.3 | 申請日: | 2011-12-30 |
| 公開(公告)號: | CN102567096B | 公開(公告)日: | 2017-02-08 |
| 發明(設計)人: | 李彥峰;潘遠明;楊秋松;武延軍;翟健;杜栓柱;劉立宇 | 申請(專利權)人: | 中國科學院軟件研究所 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100190 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 任務 環境 防止 死鎖 信號量 管理 方法 | ||
1.一種在多任務環境中防止死鎖的互斥信號量管理方法,其特征在于包括以下步驟:
A、為系統所需的互斥信號量分配一一對應的編號,編號有大小之分;
B、在任務狀態控制塊中建立包括含有互斥信號量的ID與互斥信號量編號信息的雙向鏈表,并指明任務已經占有的信號量的個數以及任務可占有信號量的最大個數;
C、在系統中建立針對互斥信號量的狀態數組,以所述互斥信號量編號為狀態數組下標,指示互斥信號量在系統中的存在個數;數組的每個成員值表示,系統中所對應編號的互斥信號量的擁有個數;
D、在任務狀態控制塊中根據互斥信號量的ID按照互斥信號量編號從小到大的順序申請信號量,并根據信號量的使用情況,對任務狀態控制塊中存放占有信號量的個數的域以及互斥信號量狀態數組進行更新。
2.根據權利要求1所述的在多任務環境中防止死鎖的互斥信號量管理方法,其特征在于在信號量申請的過程中,如果任務申請互斥信號量失敗或者已經超過可占有信號量的最大個數,那么它已經申請獲得的并且編號小于該信號量編號的信號量被系統收回,并更新對應任務狀態控制塊中的存放占有信號量個數的域和互斥信號量狀態數組;如果任務申請成功并且尚未到達可占有信號量的最大個數,則互斥信號量狀態數組更新。
3.根據權利要求1所述的在多任務環境中防止死鎖的互斥信號量管理方法,其特征在于:步驟A為系統所需的互斥信號量分配的編號采用整數表示。
4.根據權利要求1所述的在多任務環境中防止死鎖的互斥信號量管理方法,其特征在于:步驟C中所述互斥信號量的狀態數組元素的類型為整型,初始化為零。
5.根據權利要求1所述的在多任務環境中防止死鎖的互斥信號量管理方法,其特征在于:如果某個任務釋放某個互斥信號量,對應互斥信號量的狀態數組中對應的值就會自加操作。
6.根據權利要求1所述的在多任務環境中防止死鎖的互斥信號量管理方法,其特征在于:
如果任務申請獲得某個信號量,它將先查找狀態數組,如果對應的值小于零,則表示無法再申請當前信號量,該方法將已經占有并且編號小于該編號的信號量釋放回系統,更新狀態數組對應項以及任務控制塊中的存放已經占有信號量的域,并將任務加入掛起隊列;如果對應的值大于零并且任務控制塊的所占有的信號量數目已經達到了最大可占有的數,則將已經占有并且編號小于該編號的信號量釋放回系統,更新狀態數組對應項以及任務控制塊中的存放已經占有信號量的域,將任務加入掛起隊列;如果對應的值大于零并且任務控制塊的所占有的信號量數目還沒有達到最大可占有數,則更新狀態數組對應項以及任務控制塊中的存放已經占有信號量的域。
7.根據權利要求1所述的在多任務環境中防止死鎖的互斥信號量管理方法,其特征在于:在進行步驟D的操作的時候,操作過程不被中斷。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院軟件研究所,未經中國科學院軟件研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110450433.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:采用限流器件保護的非導體接觸電能傳輸方法
- 下一篇:服務器機柜





