[發(fā)明專(zhuān)利]一種用戶(hù)線(xiàn)程訪問(wèn)內(nèi)核的方法有效
| 申請(qǐng)?zhí)枺?/td> | 201911063323.4 | 申請(qǐng)日: | 2019-11-04 |
| 公開(kāi)(公告)號(hào): | CN110543373B | 公開(kāi)(公告)日: | 2020-03-17 |
| 發(fā)明(設(shè)計(jì))人: | 龍恢;管志堅(jiān) | 申請(qǐng)(專(zhuān)利權(quán))人: | 長(zhǎng)沙新弘軟件有限公司 |
| 主分類(lèi)號(hào): | G06F9/54 | 分類(lèi)號(hào): | G06F9/54 |
| 代理公司: | 長(zhǎng)沙市標(biāo)致專(zhuān)利代理事務(wù)所(普通合伙) 43218 | 代理人: | 徐邵華 |
| 地址: | 410205 湖南省長(zhǎng)沙市*** | 國(guó)省代碼: | 湖南;43 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 用戶(hù) 線(xiàn)程 訪問(wèn) 內(nèi)核 方法 | ||
1.一種用戶(hù)線(xiàn)程訪問(wèn)內(nèi)核的方法,其特征在于,該方法使用一種基于原子操作的訪問(wèn)隊(duì)列,訪問(wèn)隊(duì)列由首指針、尾指針、共享訪問(wèn)計(jì)數(shù)值和訪問(wèn)者結(jié)點(diǎn)構(gòu)成;首指針指向隊(duì)列的第一個(gè)結(jié)點(diǎn),尾指針指向隊(duì)列的最后一個(gè)結(jié)點(diǎn);每個(gè)結(jié)點(diǎn)包含一個(gè)鏈接指針,結(jié)點(diǎn)與結(jié)點(diǎn)之間通過(guò)鏈接指針連接;共享訪問(wèn)計(jì)數(shù)值記錄獲取共享訪問(wèn)的次數(shù),訪問(wèn)目標(biāo)對(duì)象時(shí)共享訪問(wèn)計(jì)數(shù)值加1,在釋放共享訪問(wèn)時(shí)該計(jì)數(shù)值減1,當(dāng)該計(jì)數(shù)值被減為0時(shí)表示所有共享訪問(wèn)都已結(jié)束;當(dāng)共享訪問(wèn)計(jì)數(shù)值不為0時(shí),無(wú)法獲取對(duì)目標(biāo)對(duì)象的獨(dú)占訪問(wèn);
該方法包括設(shè)置一組系統(tǒng)接口和用戶(hù)進(jìn)程,每個(gè)用戶(hù)進(jìn)程包含多個(gè)用戶(hù)線(xiàn)程和一個(gè)訪問(wèn)隊(duì)列;用戶(hù)線(xiàn)程在調(diào)用系統(tǒng)接口時(shí),通過(guò)寄存器傳遞的調(diào)用參數(shù)在進(jìn)入內(nèi)核態(tài)后保存到線(xiàn)程切換上下文中,以便線(xiàn)程在重做系統(tǒng)調(diào)用時(shí)恢復(fù)調(diào)用參數(shù);當(dāng)用戶(hù)線(xiàn)程需要對(duì)進(jìn)程的相關(guān)資源進(jìn)行只讀訪問(wèn)時(shí),通過(guò)訪問(wèn)隊(duì)列獲取共享訪問(wèn);當(dāng)用戶(hù)線(xiàn)程需要對(duì)進(jìn)程的相關(guān)資源進(jìn)行修改時(shí),通過(guò)訪問(wèn)隊(duì)列獲取獨(dú)占訪問(wèn)。
2.根據(jù)權(quán)利要求1所述的一種用戶(hù)線(xiàn)程訪問(wèn)內(nèi)核的方法,其特征在于,獲取共享訪問(wèn)時(shí)包括如下步驟:
步驟101.取原共享訪問(wèn)計(jì)數(shù)值和原尾結(jié)點(diǎn)指針;
步驟102.使新共享訪問(wèn)計(jì)數(shù)值等于原共享訪問(wèn)計(jì)數(shù)值,新尾結(jié)點(diǎn)指針等于訪問(wèn)者結(jié)點(diǎn)指針并打上共享訪問(wèn)的標(biāo)記;
步驟103.判斷原尾結(jié)點(diǎn)指針是否為空指針,若為空指針則直接進(jìn)入步驟105,若不為空指針則進(jìn)入步驟104;
步驟104.判斷原共享訪問(wèn)計(jì)數(shù)值是否為0,若為0則直接進(jìn)入步驟106,若不為0則直接進(jìn)入步驟105;
步驟105.將新共享訪問(wèn)計(jì)數(shù)值加1,使新尾結(jié)點(diǎn)指針等于原尾結(jié)點(diǎn)指針;
步驟106.使用原子比較并交換操作嘗試同時(shí)將共享訪問(wèn)計(jì)數(shù)值和尾指針跟原共享訪問(wèn)計(jì)數(shù)值和原尾結(jié)點(diǎn)指針進(jìn)行比較并原子化的將其分別替換為新共享訪問(wèn)計(jì)數(shù)值和新尾結(jié)點(diǎn)指針;
步驟107.如果步驟106替換操作失敗則返回步驟101,如果步驟106替換操作成功則執(zhí)行步驟108;
步驟108.判斷新共享訪問(wèn)計(jì)數(shù)值是否為0,若不為0則表示獲取共享訪問(wèn)成功且操作流程結(jié)束,若為0則還需要執(zhí)行步驟109;
步驟109.將原尾結(jié)點(diǎn)的鏈接指針指向新尾結(jié)點(diǎn),表示獲取共享訪問(wèn)失敗且訪問(wèn)者結(jié)點(diǎn)被添加到隊(duì)列尾部,操作流程結(jié)束。
3.根據(jù)權(quán)利要求1所述的一種用戶(hù)線(xiàn)程訪問(wèn)內(nèi)核的方法,其特征在于,獲取獨(dú)占訪問(wèn)時(shí)包括如下步驟:
步驟201.取原共享訪問(wèn)計(jì)數(shù)值和原尾結(jié)點(diǎn)指針;
步驟202.使新共享訪問(wèn)計(jì)數(shù)值等于原共享訪問(wèn)計(jì)數(shù)值,新尾結(jié)點(diǎn)指針等于訪問(wèn)者結(jié)點(diǎn)指針并打上獨(dú)占訪問(wèn)的標(biāo)記;
步驟203.使用原子比較并交換操作嘗試同時(shí)將共享訪問(wèn)計(jì)數(shù)值和尾指針跟原共享訪問(wèn)計(jì)數(shù)值和原尾結(jié)點(diǎn)指針進(jìn)行比較并原子化的將其分別替換為新共享訪問(wèn)計(jì)數(shù)值和新尾結(jié)點(diǎn)指針;
步驟204.如果步驟203替換操作失敗則返回步驟201,如果步驟203替換操作成功則執(zhí)行步驟205;
步驟205.判斷原尾結(jié)點(diǎn)指針是否為空指針,若不為空指針則執(zhí)行步驟206,若為空指針則執(zhí)行步驟207;
步驟206.將原尾結(jié)點(diǎn)的鏈接指針指向新尾結(jié)點(diǎn),操作流程結(jié)束,獲取獨(dú)占訪問(wèn)失敗;
步驟207.將首指針指向新尾結(jié)點(diǎn),操作流程結(jié)束;原共享訪問(wèn)計(jì)數(shù)值若為0則表示獲取獨(dú)占訪問(wèn)成功,若不為0則表示獲取獨(dú)占訪問(wèn)失敗。
4.根據(jù)權(quán)利要求1所述的一種用戶(hù)線(xiàn)程訪問(wèn)內(nèi)核的方法,其特征在于,釋放共享訪問(wèn)時(shí)包括如下步驟:
步驟301.取原共享訪問(wèn)計(jì)數(shù)值和原尾結(jié)點(diǎn)指針;
步驟302.新共享訪問(wèn)計(jì)數(shù)值等于原共享訪問(wèn)計(jì)數(shù)值減1,新尾結(jié)點(diǎn)指針等于原尾結(jié)點(diǎn)指針;
步驟303.使用原子比較并交換操作嘗試同時(shí)將共享訪問(wèn)計(jì)數(shù)值和尾指針跟原共享訪問(wèn)計(jì)數(shù)值和原尾結(jié)點(diǎn)指針進(jìn)行比較并原子化的將其分別替換為新共享訪問(wèn)計(jì)數(shù)值和新尾結(jié)點(diǎn)指針;
步驟304.如果步驟303替換操作失敗則返回步驟301,如果步驟303替換操作成功則執(zhí)行步驟305;
步驟305.判斷新共享訪問(wèn)計(jì)數(shù)值是否為0,若為0則執(zhí)行步驟306,若不為0則表示釋放共享訪問(wèn)成功且操作流程結(jié)束;
步驟306.判斷新尾結(jié)點(diǎn)指針是否為空指針,操作流程結(jié)束;新尾結(jié)點(diǎn)指針若為空指針則表示釋放共享訪問(wèn)成功,若不為空指針則表示釋放共享訪問(wèn)失敗。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于長(zhǎng)沙新弘軟件有限公司,未經(jīng)長(zhǎng)沙新弘軟件有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911063323.4/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
- 用戶(hù)-用戶(hù)推薦器
- 用戶(hù)可定制配置的用戶(hù)終端及其用戶(hù)配置定制方法
- 用戶(hù)認(rèn)證方法、用戶(hù)認(rèn)證系統(tǒng)、用戶(hù)認(rèn)證裝置及用戶(hù)認(rèn)證程序
- 用戶(hù)認(rèn)證裝置、用戶(hù)認(rèn)證方法以及用戶(hù)認(rèn)證程序
- 用戶(hù)認(rèn)證裝置、用戶(hù)認(rèn)證方法以及用戶(hù)認(rèn)證程序
- 用戶(hù)接入方法及用戶(hù)設(shè)備
- 用戶(hù)管理方法、用戶(hù)管理系統(tǒng)和用戶(hù)終端
- 基于網(wǎng)絡(luò)的用戶(hù)對(duì)用戶(hù)交易
- 手機(jī)圖形用戶(hù)界面(用戶(hù)體系)
- 用戶(hù)認(rèn)證系統(tǒng)、用戶(hù)認(rèn)證服務(wù)器及用戶(hù)認(rèn)證方法
- 在多線(xiàn)程處理器中用于高速線(xiàn)程間中斷的方法和設(shè)備
- 一種多線(xiàn)程系統(tǒng)中實(shí)現(xiàn)實(shí)時(shí)監(jiān)控各線(xiàn)程狀態(tài)的方法
- 移動(dòng)終端系統(tǒng)線(xiàn)程池實(shí)現(xiàn)方法及裝置
- 一種基于策略模式的信號(hào)發(fā)生器多線(xiàn)程管理方法
- 多線(xiàn)程并發(fā)處理方法和多線(xiàn)程并發(fā)處理系統(tǒng)
- 分布式系統(tǒng)的線(xiàn)程管理方法和裝置
- 線(xiàn)程執(zhí)行方法、裝置、終端及存儲(chǔ)介質(zhì)
- 線(xiàn)程監(jiān)控方法、裝置、電子設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種多核系統(tǒng)中多線(xiàn)程調(diào)度方法、裝置及設(shè)備
- 線(xiàn)程間通信方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 存儲(chǔ)器訪問(wèn)調(diào)度裝置、調(diào)度方法與存儲(chǔ)器訪問(wèn)控制系統(tǒng)
- 一種限制用戶(hù)訪問(wèn)的方法和裝置
- 一種訪問(wèn)信息提供方法及系統(tǒng)
- 數(shù)據(jù)訪問(wèn)權(quán)限的控制方法及裝置
- 基于智能家居系統(tǒng)的訪問(wèn)授權(quán)方法、裝置及設(shè)備
- 網(wǎng)站訪問(wèn)請(qǐng)求的動(dòng)態(tài)調(diào)度方法及裝置
- 基于訪問(wèn)頻率的監(jiān)測(cè)方法、裝置、設(shè)備和計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 訪問(wèn)憑證驗(yàn)證方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 一種應(yīng)用訪問(wèn)控制方法、系統(tǒng)和介質(zhì)
- 異常訪問(wèn)行為的檢測(cè)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)





