[發(fā)明專(zhuān)利]實(shí)現(xiàn)自適應(yīng)鎖的方法和裝置以及多核處理器系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201110394780.9 | 申請(qǐng)日: | 2011-12-02 |
| 公開(kāi)(公告)號(hào): | CN102566979A | 公開(kāi)(公告)日: | 2012-07-11 |
| 發(fā)明(設(shè)計(jì))人: | 秦嶺;陳渝;崔巖;吳瑾 | 申請(qǐng)(專(zhuān)利權(quán))人: | 華為技術(shù)有限公司;清華大學(xué) |
| 主分類(lèi)號(hào): | G06F9/38 | 分類(lèi)號(hào): | G06F9/38 |
| 代理公司: | 北京龍雙利達(dá)知識(shí)產(chǎn)權(quán)代理有限公司 11329 | 代理人: | 王君;肖鸝 |
| 地址: | 518129 廣東*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 實(shí)現(xiàn) 自適應(yīng) 方法 裝置 以及 多核 處理器 系統(tǒng) | ||
1.一種實(shí)現(xiàn)自適應(yīng)鎖的方法,其特征在于,包括:
當(dāng)新的第一線程嘗試獲得自適應(yīng)鎖時(shí),如果所述自適應(yīng)鎖空閑,則使所述第一線程獲得所述自適應(yīng)鎖,否則使所述第一線程根據(jù)競(jìng)爭(zhēng)所述自適應(yīng)鎖的激烈程度進(jìn)入自旋狀態(tài)或者節(jié)能狀態(tài);
當(dāng)所述第一線程處于節(jié)能狀態(tài),使所述第一線程等待被喚醒進(jìn)入自旋狀態(tài),或者當(dāng)所述第一線程處于自旋狀態(tài),使所述第一線程競(jìng)爭(zhēng)所述自適應(yīng)鎖,直到所述第一線程競(jìng)爭(zhēng)到所述自適應(yīng)鎖并對(duì)所述自適應(yīng)鎖保護(hù)的共享資源操作完畢,釋放所述自適應(yīng)鎖;
當(dāng)所述自適應(yīng)鎖被釋放時(shí),如果有處于節(jié)能狀態(tài)的線程,則喚醒另一個(gè)處于節(jié)能狀態(tài)的線程以使其進(jìn)入自旋狀態(tài),以便與其他處于自旋狀態(tài)的線程一同競(jìng)爭(zhēng)所述自適應(yīng)鎖。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述使所述第一線程根據(jù)競(jìng)爭(zhēng)所述自適應(yīng)鎖的激烈程度進(jìn)入自旋狀態(tài)或者節(jié)能狀態(tài)包括:
遞增所述自適應(yīng)鎖的請(qǐng)求者計(jì)數(shù)器中記錄的競(jìng)爭(zhēng)該自適應(yīng)鎖的線程數(shù)目;
當(dāng)所述自適應(yīng)鎖的請(qǐng)求者計(jì)數(shù)器中記錄的競(jìng)爭(zhēng)該自適應(yīng)鎖的線程數(shù)目小于或等于閾值,使所述第一線程進(jìn)入自旋狀態(tài);
當(dāng)所述自適應(yīng)鎖的請(qǐng)求者計(jì)數(shù)器中記錄的競(jìng)爭(zhēng)該自適應(yīng)鎖的線程數(shù)目大于閾值,使所述第一線程進(jìn)入節(jié)能狀態(tài)。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述使所述第一線程進(jìn)入節(jié)能狀態(tài)包括:
使所述第一線程獲取所述自適應(yīng)鎖的節(jié)能狀態(tài)請(qǐng)求者集合的保護(hù)鎖;
使所述第一線程順序地加入到所述自適應(yīng)鎖的節(jié)能狀態(tài)請(qǐng)求者集合中,其中所述節(jié)能狀態(tài)請(qǐng)求者集合對(duì)應(yīng)于其上運(yùn)行所述第一線程的處理器核;
使所述線程被設(shè)置節(jié)能狀態(tài)標(biāo)識(shí);
在所述節(jié)能狀態(tài)請(qǐng)求者集合的保護(hù)鎖被解除后,使所述線程進(jìn)入節(jié)能狀態(tài)。
4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其特征在于,所述使所述第一線程競(jìng)爭(zhēng)所述自適應(yīng)鎖,直到所述第一線程競(jìng)爭(zhēng)到所述自適應(yīng)鎖并對(duì)所述自適應(yīng)鎖保護(hù)的共享資源操作完畢,釋放所述自適應(yīng)鎖包括:
使處于自旋狀態(tài)的所述第一線程競(jìng)爭(zhēng)所述自適應(yīng)鎖,直到所述第一線程獲得所述自適應(yīng)鎖,遞減所述自適應(yīng)鎖的請(qǐng)求者計(jì)數(shù)器中記錄的競(jìng)爭(zhēng)所述自適應(yīng)鎖的線程數(shù)目,在所述第一線程對(duì)所述自適應(yīng)鎖保護(hù)的共享資源操作完畢后,釋放所述自適應(yīng)鎖。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述當(dāng)所述自適應(yīng)鎖被釋放時(shí),如果有處于節(jié)能狀態(tài)的線程,則喚醒另一個(gè)處于節(jié)能狀態(tài)的線程以使其進(jìn)入自旋狀態(tài)包括:
當(dāng)所述自適應(yīng)鎖被釋放時(shí),判斷是否存在非空的節(jié)能狀態(tài)請(qǐng)求者集合,如果存在,則依據(jù)競(jìng)爭(zhēng)所述自適應(yīng)鎖的線程的有序競(jìng)爭(zhēng)狀態(tài)或者無(wú)序競(jìng)爭(zhēng)狀態(tài)選擇一個(gè)非空的節(jié)能狀態(tài)請(qǐng)求者集合;
喚醒所述非空的節(jié)能狀態(tài)請(qǐng)求者集合的首個(gè)線程,使其進(jìn)入自旋狀態(tài)。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述依據(jù)競(jìng)爭(zhēng)所述自適應(yīng)鎖的線程的有序競(jìng)爭(zhēng)狀態(tài)或者無(wú)序競(jìng)爭(zhēng)狀態(tài)選擇非空的節(jié)能狀態(tài)請(qǐng)求者集合包括:
當(dāng)競(jìng)爭(zhēng)所述自適應(yīng)鎖的線程是無(wú)序地競(jìng)爭(zhēng)所述自適應(yīng)鎖時(shí),則選擇對(duì)應(yīng)于第一處理器核的節(jié)能狀態(tài)請(qǐng)求者集合,而當(dāng)對(duì)應(yīng)于第一處理器核的節(jié)能狀態(tài)請(qǐng)求者集合為空時(shí),再根據(jù)其他處理器核與所述第一處理器核之間的距離,由近及遠(yuǎn)地依次選擇對(duì)應(yīng)于第二處理器核的節(jié)能狀態(tài)請(qǐng)求者集合,其中所述第一處理器核上運(yùn)行有釋放所述自適應(yīng)鎖的第一線程,第二處理器核為所述其他處理器核中與所述第一處理器核的距離最近的處理器核;
當(dāng)競(jìng)爭(zhēng)所述自適應(yīng)鎖的線程是有序地競(jìng)爭(zhēng)所述自適應(yīng)鎖時(shí),則通過(guò)遍歷所有非空的節(jié)能狀態(tài)請(qǐng)求者集合,尋找票序號(hào)最小的線程所在的節(jié)能狀態(tài)請(qǐng)求者集合,所述票序號(hào)是用于標(biāo)記獲取所述自適應(yīng)鎖的順序的標(biāo)識(shí)變量。
7.根據(jù)權(quán)利要求5或6所述的方法,其特征在于,所述喚醒所述非空的節(jié)能狀態(tài)請(qǐng)求者集合的首個(gè)線程,使其進(jìn)入自旋狀態(tài)包括:
通過(guò)硬件指令監(jiān)測(cè)所述非空的節(jié)能狀態(tài)請(qǐng)求者集合的首個(gè)線程的節(jié)能狀態(tài)標(biāo)識(shí)是否被清零,如果所述節(jié)能狀態(tài)標(biāo)識(shí)被清零,使所述首個(gè)線程進(jìn)入自旋狀態(tài)。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于華為技術(shù)有限公司;清華大學(xué),未經(jīng)華為技術(shù)有限公司;清華大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110394780.9/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
- 互動(dòng)業(yè)務(wù)終端、實(shí)現(xiàn)系統(tǒng)及實(shí)現(xiàn)方法
- 街景地圖的實(shí)現(xiàn)方法和實(shí)現(xiàn)系統(tǒng)
- 游戲?qū)崿F(xiàn)系統(tǒng)和游戲?qū)崿F(xiàn)方法
- 圖像實(shí)現(xiàn)裝置及其圖像實(shí)現(xiàn)方法
- 增強(qiáng)現(xiàn)實(shí)的實(shí)現(xiàn)方法以及實(shí)現(xiàn)裝置
- 軟件架構(gòu)的實(shí)現(xiàn)方法和實(shí)現(xiàn)平臺(tái)
- 數(shù)值預(yù)報(bào)的實(shí)現(xiàn)方法及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其冬眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其睡眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 輸入設(shè)備實(shí)現(xiàn)方法及其實(shí)現(xiàn)裝置
- 使用后向自適應(yīng)規(guī)則進(jìn)行整數(shù)數(shù)據(jù)的無(wú)損自適應(yīng)Golomb/Rice編碼和解碼
- 一種自適應(yīng)軟件UML建模及其形式化驗(yàn)證方法
- 媒體自適應(yīng)參數(shù)的調(diào)整方法、系統(tǒng)及相關(guān)設(shè)備
- 五自由度自適應(yīng)位姿調(diào)整平臺(tái)
- 采用自適應(yīng)機(jī)匣和自適應(yīng)風(fēng)扇的智能發(fā)動(dòng)機(jī)
- 一種自適應(yīng)樹(shù)木自動(dòng)涂白裝置
- 一種基于微服務(wù)的多層次自適應(yīng)方法
- 一種天然氣發(fā)動(dòng)機(jī)燃?xì)庾赃m應(yīng)控制方法及系統(tǒng)
- 一種中心自適應(yīng)的焊接跟蹤機(jī)頭
- 一種有砟軌道沉降自適應(yīng)式軌道系統(tǒng)
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 光源裝置、照明裝置、液晶裝置和電子裝置
- 預(yù)測(cè)裝置、編輯裝置、逆預(yù)測(cè)裝置、解碼裝置及運(yùn)算裝置
- 圖像形成裝置、定影裝置、遮光裝置以及保持裝置
- 打印裝置、讀取裝置、復(fù)合裝置以及打印裝置、讀取裝置、復(fù)合裝置的控制方法
- 電子裝置、光盤(pán)裝置、顯示裝置和攝像裝置
- 光源裝置、照明裝置、曝光裝置和裝置制造方法
- 用戶(hù)裝置、裝置對(duì)裝置用戶(hù)裝置、后端裝置及其定位方法
- 遙控裝置、通信裝置、可變裝置及照明裝置
- 透鏡裝置、攝像裝置、處理裝置和相機(jī)裝置
- 抖動(dòng)校正裝置、驅(qū)動(dòng)裝置、成像裝置、和電子裝置





