[發(fā)明專利]在用戶空間中建立線程之間的隊(duì)列有效
| 申請?zhí)枺?/td> | 201811330977.4 | 申請日: | 2018-11-09 |
| 公開(公告)號: | CN111176855B | 公開(公告)日: | 2023-10-27 |
| 發(fā)明(設(shè)計(jì))人: | 李博杰;崔天一;王子博;白巍;張霖濤 | 申請(專利權(quán))人: | 微軟技術(shù)許可有限責(zé)任公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京世輝律師事務(wù)所 16093 | 代理人: | 李崢宇 |
| 地址: | 美國華*** | 國省代碼: | 暫無信息 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用戶 空間 建立 線程 之間 隊(duì)列 | ||
在本公開的實(shí)施例中,提出了在用戶空間中建立線程之間的隊(duì)列的方案。在第一應(yīng)用上創(chuàng)建第一線程并且在第二應(yīng)用上創(chuàng)建第二線程和第三線程之后,在操作系統(tǒng)的用戶空間中建立第一應(yīng)用與第二應(yīng)用之間的套接字連接。然后,在第一線程和第二線程之間建立第一隊(duì)列,并且在第一線程和第三線程之間建立不同的第二隊(duì)列。本公開的實(shí)施例通過針對每對線程分別建立單獨(dú)的隊(duì)列,能夠避免使用鎖共享同一隊(duì)列的情形。因此,根據(jù)本公開的實(shí)施例的無鎖隊(duì)列機(jī)制能夠顯著提升操作系統(tǒng)的性能。
背景技術(shù)
套接字(socket)是指運(yùn)行在網(wǎng)絡(luò)中的兩個(gè)應(yīng)用之間的雙向通信連接的一個(gè)端點(diǎn),其是支持TCP/IP(傳輸控制協(xié)議/因特網(wǎng)協(xié)議)的網(wǎng)絡(luò)通信的基本操作單元。套接字構(gòu)成一種抽象層,應(yīng)用通過套接字來發(fā)送和接收數(shù)據(jù)。套接字通常使用IP地址和端口號來進(jìn)行表示,發(fā)送應(yīng)用將數(shù)據(jù)發(fā)送給套接字,再通過網(wǎng)絡(luò)驅(qū)動交給另一套接字,進(jìn)而發(fā)送給接收應(yīng)用。套接字是現(xiàn)代操作系統(tǒng)中最廣泛使用的通信原語,其能夠?qū)崿F(xiàn)進(jìn)程、線程以及主機(jī)之間的通信。
操作系統(tǒng)的核心是內(nèi)核(kernel),其獨(dú)立于普通的應(yīng)用程序,可以訪問受保護(hù)的存儲器空間,其還具有訪問底層硬件設(shè)備的權(quán)限。為了保證內(nèi)核的安全,操作系統(tǒng)通常都強(qiáng)制用戶進(jìn)程不能直接操作內(nèi)核,具體的實(shí)現(xiàn)方式基本都是由操作系統(tǒng)將虛擬地址空間劃分為兩個(gè)部分,一部分為內(nèi)核空間,另一部分為用戶空間。內(nèi)核空間僅由內(nèi)核使用,而用戶空間可以由各個(gè)進(jìn)程使用。
操作系統(tǒng)通常在內(nèi)核空間中實(shí)現(xiàn)套接字連接,并設(shè)置需要并發(fā)保護(hù)的共享數(shù)據(jù)結(jié)構(gòu)。套接字通常有以下三方面的功能:尋址、定位和連接到另一應(yīng)用;提供由文件描述符(FD)標(biāo)識的可靠且有序的通信信道;復(fù)用來自多個(gè)信道的事件,操作系統(tǒng)可以通知應(yīng)用哪個(gè)或哪些FD準(zhǔn)備好接收或發(fā)送,然后應(yīng)用可以準(zhǔn)備緩沖器并且發(fā)出接收或發(fā)送操作。
發(fā)明內(nèi)容
在本公開的實(shí)施例中,提出了在用戶空間中建立線程之間的隊(duì)列的方案。在第一應(yīng)用上創(chuàng)建第一線程并且在第二應(yīng)用上創(chuàng)建第二線程和第三線程之后,在操作系統(tǒng)的用戶空間中建立第一應(yīng)用與第二應(yīng)用之間的套接字連接。然后,在第一線程和第二線程之間建立第一隊(duì)列,并且在第一線程和第三線程之間建立不同的第二隊(duì)列。本公開的實(shí)施例通過針對每對線程分別建立單獨(dú)的隊(duì)列,能夠避免使用鎖共享同一隊(duì)列的情形。因此,根據(jù)本公開的實(shí)施例的無鎖隊(duì)列機(jī)制能夠顯著提升操作系統(tǒng)的性能。
提供發(fā)明內(nèi)容部分是為了以簡化的形式來介紹對概念的選擇,它們在下文的具體實(shí)施方式中將被進(jìn)一步描述。發(fā)明內(nèi)容部分無意標(biāo)識本公開的關(guān)鍵特征或主要特征,也無意限制本公開的范圍。
附圖說明
結(jié)合附圖并參考以下詳細(xì)說明,本公開各實(shí)施例的上述和其他特征、優(yōu)點(diǎn)及方面將變得更加明顯。在附圖中,相同或相似的附圖標(biāo)記表示相同或相似的元素,其中:
圖1示出了其中可以實(shí)施本公開的一個(gè)或多個(gè)實(shí)施例的計(jì)算設(shè)備/服務(wù)器的框圖;
圖2示出了其中可以實(shí)施本公開的用于在用戶空間中建立點(diǎn)對點(diǎn)套接字連接的方法的流程圖;
圖3示出了根據(jù)本公開的實(shí)施例的在單個(gè)計(jì)算設(shè)備內(nèi)實(shí)現(xiàn)套接字連接的架構(gòu)的示意圖;
圖4示出了根據(jù)本公開的實(shí)施例的在不同計(jì)算設(shè)備之間實(shí)現(xiàn)套接字連接的方法的流程圖;
圖5示出了根據(jù)本公開的實(shí)施例的在不同計(jì)算設(shè)備之間實(shí)現(xiàn)套接字連接的架構(gòu)的示意圖;
圖6A示出了根據(jù)本公開的實(shí)施例的用于建立套接字連接的狀態(tài)機(jī)的示意圖;
圖6B示出了根據(jù)本公開的實(shí)施例的用于關(guān)閉套接字連接的狀態(tài)機(jī)的示意圖;
圖7示出了根據(jù)本公開的實(shí)施例的用于在用戶空間中建立線程之間的隊(duì)列的方法的流程圖;
圖8A示出了根據(jù)本公開的實(shí)施例的用于在單個(gè)發(fā)送線程與多個(gè)接收線程之間建立隊(duì)列的架構(gòu)的示意圖;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于微軟技術(shù)許可有限責(zé)任公司,未經(jīng)微軟技術(shù)許可有限責(zé)任公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811330977.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 在多線程處理器中用于高速線程間中斷的方法和設(shè)備
- 一種多線程系統(tǒng)中實(shí)現(xiàn)實(shí)時(shí)監(jiān)控各線程狀態(tài)的方法
- 移動終端系統(tǒng)線程池實(shí)現(xiàn)方法及裝置
- 一種基于策略模式的信號發(fā)生器多線程管理方法
- 多線程并發(fā)處理方法和多線程并發(fā)處理系統(tǒng)
- 分布式系統(tǒng)的線程管理方法和裝置
- 線程執(zhí)行方法、裝置、終端及存儲介質(zhì)
- 線程監(jiān)控方法、裝置、電子設(shè)備及計(jì)算機(jī)可讀存儲介質(zhì)
- 一種多核系統(tǒng)中多線程調(diào)度方法、裝置及設(shè)備
- 線程間通信方法、裝置、電子設(shè)備及存儲介質(zhì)





