[發明專利]一種信號量死鎖的檢測方法有效
| 申請號: | 201210575762.5 | 申請日: | 2012-12-26 |
| 公開(公告)號: | CN103902356B | 公開(公告)日: | 2018-07-31 |
| 發明(設計)人: | 王偉;車任秋;張百元 | 申請(專利權)人: | 上海斐訊數據通信技術有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 杭州千克知識產權代理有限公司 33246 | 代理人: | 周希良 |
| 地址: | 201616 上海市松江*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 信號量 死鎖 檢測 方法 | ||
本發明提供了一種信號量死鎖的檢測方法,通過調用系統提供的信號量和任務函數動態的獲取到信號量和任務信息,在操作系統之外的應用層創建信號量結構體和信號量鏈表。將處于等待狀態的任務加入到信號量鏈表中,對鏈表進行死鎖檢測。本發明完全獨立于操作系統,不必在操作系統中添加任何代碼,是作為一套工具性的軟件存在于系統的應用層。且沒有繁瑣的代碼改動,沒有給系統增加額外的開銷,有效的解決了現有方法的缺點。
【技術領域】
本發明涉及操作系統的信號量死鎖的檢測方法。
【背景技術】
在實時嵌入式操作系統中,對于共享資源的保護和任務間的協調及調度一般都是由系統提供信號量機制來進行管理。信號量可以有效地防止多個任務同時去訪問系統的受保護資源。但有時,如果系統存在兩個或兩個以上的任務相互申請對方獨占的信號量而導致雙方都無法將任務繼續下去,必須依靠外力的協助,這種現象稱為信號量死鎖。信號量死鎖在軟件開發和調試中比較常見,有效而精確的信號量死鎖檢測方法可以顯示死鎖中的信號量與任務間的占有和等待關系,有助于開發和調試。
當前,比較常見的信號量死鎖檢測方法是構造一個任務數組和一個信號量數組,通過系統創建任務和信號量時把相關信息記錄到數組中,例如公開日為2006年9月13日、公開號為CN1831779A的專利文獻揭示了一種信號量死鎖的檢索方法,該方法就構造了進程數組(即任務數組)和信號量數組。這類方法的缺點是顯而易見的。創建任務和信號量是系統調用非常頻繁的操作,如果每次操作的時候去給數組賦值這樣不僅在代碼上很繁瑣,而且也增大的系統資源的開銷。
【發明內容】
本發明需解決的技術問題是克服上述的不足,提供一種不必在操作系統中添加任何代碼、沒有繁瑣的代碼改動、沒有給操作系統增加額外開銷的操作系統信號量死鎖的檢測方法。
為解決上述的技術問題,本發明設計了一種操作系統信號量死鎖的檢測方法,其包括以下幾個步驟:Step1:在操作系統之上的應用層建立信號量死鎖檢測命令;Step2:創建信號量結構體,信號量結構體包含的字段設有:信號量ID pSem、等待信號量的任務pWaitTaskTcb、擁有信號量的任務pOwner;Step3:通過調用操作系統函數判斷所有任務,把處于等待的任務賦值給pWaitTaskTcb,通過pWaitTaskTcb偏移找到等待的信號量賦值給IDpSem,獲取到占有信號量的任務賦值給pOwner;Step4:根據占有信號量的任務的信號量建立信號量鏈表a;Step5:執行死鎖檢測命令,遍歷整條鏈條a,把存在等待和占有信號量關系的信號量結構體挑出來并重新組成一個新鏈表b,判斷新鏈表b是否存在信號量環路,如果存在,則檢測到存在信號死鎖;如果不存在,則不存在信號死鎖;繼續遍歷鏈表a,直到遍歷完成為止。
根據本發明進一步改進,檢測到存在信號死鎖,把構成環路的任務及信號量打印出來。
本發明完全獨立于操作系統,不必在操作系統中添加任何代碼,是作為一套工具性的軟件存在于系統的應用層。且沒有繁瑣的代碼改動,沒有給系統增加額外的開銷,有效的解決了現有方法的缺點。
【附圖說明】
圖1是本發明操作系統信號量死鎖的檢測方法的流程圖。
【具體實施方式】
下面結合附圖和實施方式對本發明作進一步說明。
本發明提供了一種信號量死鎖的檢測方法,通過調用系統提供的信號量和任務函數動態的獲取到信號量和任務信息,在操作系統之外的應用層創建信號量結構體和信號量鏈表。將處于等待狀態的任務加入到鏈表中,對鏈表進行死鎖檢測。其具體的操作步驟如下:
Step1:在操作系統之上的應用層建立信號量死鎖檢測命令,sem check命令執行信號量死鎖檢測。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海斐訊數據通信技術有限公司,未經上海斐訊數據通信技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210575762.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種用于油氣井開采的易拔井下過濾器及其實現方法
- 下一篇:一種木鋁推拉門結構





