[發明專利]一種MIPS平臺下并行多核配置鎖的實現方法有效
| 申請號: | 200710304764.X | 申請日: | 2007-12-29 |
| 公開(公告)號: | CN101470627A | 公開(公告)日: | 2009-07-01 |
| 發明(設計)人: | 王震;吳亞飚;張宏君 | 申請(專利權)人: | 北京天融信網絡安全技術有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 信息產業部電子專利中心 | 代理人: | 梁 軍 |
| 地址: | 100085北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 mips 平臺 并行 多核 配置 實現 方法 | ||
技術領域
本發明涉及MIPS(Microprocessor?without?interlocked?piped?stages,無內部互鎖流水級微處理器)多核技術領域,尤其涉及一種MIPS平臺下并行多核配置鎖的實現方法。
背景技術
基于MIPS指令集的MIPS多核處理器在嵌入式系統中占據了主流地位。目前在機頂盒、信息終端、網絡連接設備中占有大部分市場,而且已經進入到網絡安全設備領域。在多核并行的框架上,對于一些共享資源的并行訪問問題是整個體系結構中的關鍵技術。
Linux系統提供了最基本的鎖,包括:讀鎖(read_lock):對于同一資源可以同時上多個讀鎖,從而可以并行執行這些代碼;寫鎖(write_lock):對于同一資源在同一時間只能上一個寫鎖,且不能并行訪問要保護的資源;自旋鎖(spin_lock):如果上鎖不成功,就一直等下去,直到上鎖成功為止。
在事件響應處理過程中,有時會出現鎖重入現象,所謂鎖重入現象是指,一個notifier處理函數中又觸發了一個notifier事件;在現有的鎖技術中,還沒有解決鎖重入問題的方案。
發明內容
本發明提供一種MIPS平臺下并行多核配置鎖的實現方法,用以解決現有技術中存在的鎖重入問題。
本發明方法包括:
步驟A:根據系統提供的基本的鎖,預定義多個鎖,包括:應用層系統調用加鎖、應用層系統調用解鎖、應用層系統調用重加鎖、定時器加鎖、定時器解鎖、定時器重加鎖;
步驟B:根據所述預定義的多個鎖,再定義兩個鎖:事件響應更新鎖和事件響應恢復鎖;
步驟C:在事件響應處理過程中,當發生鎖重入問題時,在事件響應函數中調用事件響應更新鎖來加鎖或者更新到新的鎖;所述步驟C具體包括:更新CPU持有的鎖的類型;判斷CPU持有的鎖和要更新的鎖的類型是否一致,如果一致,直接返回,否則判斷CPU是否上鎖;如果這個CPU原來沒有上鎖,通過調用定時器加鎖或應用層系統調用加鎖,直接加配置鎖和鏈表鎖;如果CPU已經上了鎖,那么就通過調用定時器重加鎖或應用層系統調用重加鎖,保存原來持有的鎖到臨時變量,然后再加要更新的鎖;
步驟D:在事件響應函數處理結束后,調用事件響應恢復鎖來解鎖或者恢復到以前加的鎖;所述步驟D具體包括:恢復CPU持有的鎖的類型;判斷CPU持有的鎖和要更新的鎖的類型是否一致,如果一致,直接返回,否則判斷CPU是否上鎖;如果CPU原來沒有鎖,那么就通過調用定時器解鎖或應用層系統調用解鎖,直接解配置鎖和鏈表鎖;如果CPU已經上了鎖,那么就通過調用定時器重加鎖或應用層系統調用重加鎖,解CPU要更新的鎖,并且加原來持有的鎖。
進一步地,所述步驟A中,所述應用層系統調用加鎖中設置有兩個原子計數器,則預定義所述應用層系統調用加鎖的過程具體包括:
判斷CPU是否上了鎖,如果已經上了鎖就異常退出,否則把兩個原子計數器加1;
試圖加配置鎖,當確認加配置鎖成功時,試圖加鏈表鎖;
當確認加鏈表鎖成功時,保存進程持有的鎖和保存CPU加的鎖并返回,否則解配置鎖,并重復試圖加配置鎖。
進一步地,所述步驟A中,所述應用層系統調用解鎖設置有兩個原子計數器,則預定義所述應用層系統調用解鎖的過程具體包括:
判斷CPU是否上鎖,如果已經上了鎖就異常退出,否則解鏈表鎖,原子計數器app_wrconfig_locks減1;
解配置鎖,并清除進程持有的鎖和CPU加的鎖;
原子計數器app_locks減1。
進一步地,所述步驟A中,所述應用層系統調用重加鎖的預定義過程具體包括:
判斷CPU是否已經上了鎖,如果沒加鎖就異常退出,否則先依次把已經加的鎖解開,然后再按新的需求依次加鎖。
進一步地,所述步驟A中,預定義所述定時器加鎖的過程具體包括:
原子計數器app_wrconfig_locks加1,保證其他低優先級的鎖不能獲得請求;
依次加配置鎖和鏈表鎖;
原子計數器app_wrconfig_locks減1,保存該CPU加的鎖。
進一步地,所述步驟A中,預定義所述定時器解鎖的過程具體包括:
首先解鏈表鎖,然后解配置鎖,最后清除CPU保存的鎖。
進一步地,所述步驟A中,預定義所述定時器重加鎖的過程具體包括:
判斷CPU是否已經上了鎖,如果沒上鎖,就異常退出,否則先依次解開已經上的鎖,然后再依次加上請求的鎖,并保存新的鎖。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京天融信網絡安全技術有限公司,未經北京天融信網絡安全技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200710304764.X/2.html,轉載請聲明來源鉆瓜專利網。





