[發(fā)明專利]一種互斥信號量異常阻塞輔助分析方法、系統(tǒng)及存儲介質(zhì)在審
| 申請?zhí)枺?/td> | 202210038538.6 | 申請日: | 2022-01-13 |
| 公開(公告)號: | CN114461409A | 公開(公告)日: | 2022-05-10 |
| 發(fā)明(設(shè)計)人: | 許志勇;晏元貴;祝國勝 | 申請(專利權(quán))人: | 北京特立信電子技術(shù)股份有限公司 |
| 主分類號: | G06F9/52 | 分類號: | G06F9/52;G06F9/54 |
| 代理公司: | 深圳市德錦知識產(chǎn)權(quán)代理有限公司 44352 | 代理人: | 蘇迎 |
| 地址: | 100089 北京市*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 信號量 異常 阻塞 輔助 分析 方法 系統(tǒng) 存儲 介質(zhì) | ||
本發(fā)明提供了一種互斥信號量異常阻塞輔助分析方法、系統(tǒng)及存儲介質(zhì),該方法包括:步驟1:線程占用了共享資源時,將相應(yīng)的互斥信號量進行l(wèi)ock操作,lock之前,記錄wait信息,將該wait信息加入wait list;步驟2:lock之后,記錄lock信息,同時從wait list中將wait信息刪除;步驟3:訪問完共享資源后,將信號量進行unlock操作,之后,清除lock信息;步驟4:每個信號量形成表記錄,實時記錄到內(nèi)存中和定時記錄到flash中;步驟5:出現(xiàn)異常時,通過查看所述表記錄信息,確定出問題的信號量和代碼。本發(fā)明的有益效果是:本發(fā)明用于實時監(jiān)測信號量的異常阻塞情況,同時可以快速定位問題點。
技術(shù)領(lǐng)域
本發(fā)明涉及多線程編程技術(shù)領(lǐng)域,尤其涉及基于嵌入式linux內(nèi)核的ZebOS平臺開發(fā)的網(wǎng)絡(luò)通信軟件。
背景技術(shù)
在ZebOS平臺中,幾乎所有模塊都是采用進程的方式實現(xiàn),模塊間通信使用進程間通信的IPC機制,保證了模塊使用內(nèi)存的安全性。而核心模塊HSL,由于需要同時跟芯片和上層應(yīng)用打交道,為了保證其高效性,使用了多線程模式,在shell中執(zhí)行ps–T|grep hsl可以看到。由于同一進程中的所有線程是共享內(nèi)存的,資源互斥使用是必須考慮的問題,而多個互斥信號量的相互嵌套使用又極容易導(dǎo)致死鎖。Linux內(nèi)核提供了信號量異常跟蹤機制,需要打開相應(yīng)的編譯選項。通常我們在嵌入開發(fā)中所使用的Linux內(nèi)核要求小而穩(wěn)定,并且不輕易升級。另外,coredump信息有時會因為調(diào)用棧被破壞而難以確定問題代碼。
發(fā)明內(nèi)容
本發(fā)明提供了一種互斥信號量異常阻塞輔助分析方法,包括如下步驟:
步驟1:線程占用了共享資源時,需要將相應(yīng)的互斥信號量進行l(wèi)ock操作,lock之前,記錄wait信息,將該wait信息加入wait list;
步驟2:lock之后,記錄lock信息,同時從wait list中將wait信息刪除;
步驟3:訪問完共享資源后,將信號量進行unlock操作,unlock之后,清除lock信息;
步驟4:每個信號量形成表記錄,實時記錄到內(nèi)存中和定時記錄到flash中;
步驟5:出現(xiàn)異常時,通過查看所述表記錄信息,確定出問題的信號量和代碼。
作為本發(fā)明的進一步改進,在所述步驟1中,wait信息包括線程號、等待函數(shù)、等待行數(shù)。
作為本發(fā)明的進一步改進,在所述步驟2中,lock信息包括線程號、等待函數(shù)、等待行數(shù)。
作為本發(fā)明的進一步改進,在所述步驟1中:
進程中存在兩個或以上的線程,存在兩個或以上的共享資源,并且有相應(yīng)的互斥信號量進行訪問保護;
線程T1占用了資源R1后,使用信號量M1進行保護;同時,線程T1需要訪問資源R2,但資源R2被其他線程占用著,線程T1只能進入pending狀態(tài);
線程T2占用了資源R2后,使用信號量M2進行保護;同時,線程T2需要訪問資源R1,但資源R2被其他線程占用著,線程T2只能進入pending狀態(tài);
線程T1和線程T2同時等待訪問對方持有的資源,形成了死鎖;
其他線程需要訪問資源R1或者資源R2,也都只能進入永久的pending狀態(tài)。
本發(fā)明還提供了一種互斥信號量異常阻塞輔助分析系統(tǒng),包括:
鎖定模塊:用于線程占用了共享資源時,需要將相應(yīng)的互斥信號量進行l(wèi)ock操作,lock之前,記錄wait信息,將該wait信息加入wait list;
記錄模塊:用于lock之后,記錄lock信息,同時從wait list中將wait信息刪除;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京特立信電子技術(shù)股份有限公司,未經(jīng)北京特立信電子技術(shù)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210038538.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





