分配和調(diào)度用于多個(gè)優(yōu)先化隊(duì)列的線程的制作方法
【專利說明】
【背景技術(shù)】
[0001]在現(xiàn)代計(jì)算系統(tǒng)中,具有允許計(jì)算機(jī)程序作為共享對(duì)操作系統(tǒng)所管理的計(jì)算資源的訪問的多個(gè)線程來執(zhí)行的操作系統(tǒng)是常見的。操作系統(tǒng)自身還可以具有可用于服務(wù)從應(yīng)用到操作系統(tǒng)資源的請(qǐng)求的多個(gè)線程,在本文中稱為工作者線程。
[0002]存在若干方式來管理競(jìng)爭(zhēng)資源的多個(gè)應(yīng)用的復(fù)雜度。一般地,提供隊(duì)列來管理來自應(yīng)用的請(qǐng)求以使用工作者線程,諸如使用線程來訪問資源的請(qǐng)求。如果所有請(qǐng)求被同等地對(duì)待,則首先向工作者線程分配先到請(qǐng)求。在一些實(shí)例中,一些請(qǐng)求具有比其它請(qǐng)求更高的優(yōu)先級(jí)。在這樣的情況中,單獨(dú)的請(qǐng)求隊(duì)列被用于每一個(gè)優(yōu)先級(jí)水平,并且每一個(gè)優(yōu)先級(jí)水平具有其自身的工作者線程池。調(diào)度器基于到達(dá)時(shí)間向隊(duì)列中的請(qǐng)求分配線程,并且通過基于優(yōu)先級(jí)而使線程活躍和阻擋或先占線程來管理多個(gè)線程對(duì)資源的共享訪問。
[0003]利用這樣的系統(tǒng),每一個(gè)工作者線程具有固定的優(yōu)先級(jí),并且在執(zhí)行期間不能夠改變優(yōu)先級(jí);否則存在優(yōu)先級(jí)顛倒的風(fēng)險(xiǎn)。而且,利用針對(duì)每一個(gè)優(yōu)先級(jí)水平的工作者線程池,優(yōu)先級(jí)水平的數(shù)目受系統(tǒng)資源限制。最后,這樣的系統(tǒng)可能經(jīng)歷相關(guān)性死鎖。
【發(fā)明內(nèi)容】
[0004]本
【發(fā)明內(nèi)容】
以簡(jiǎn)化的形式引入以下在【具體實(shí)施方式】中進(jìn)一步描述的所選概念。本
【發(fā)明內(nèi)容】
不意圖標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵或者本質(zhì)特征,也不意圖限制所要求保護(hù)的主題的范圍。
[0005]操作系統(tǒng)提供服務(wù)處于不同優(yōu)先級(jí)水平的多個(gè)請(qǐng)求的隊(duì)列的工作者線程池。并發(fā)性控制器限制并發(fā)執(zhí)行(即活躍)的工作者線程的數(shù)目。操作系統(tǒng)追蹤在每一個(gè)優(yōu)先級(jí)水平以上的并發(fā)執(zhí)行線程的數(shù)目,并且有利于較高優(yōu)先級(jí)工作者線程地先占較低優(yōu)先級(jí)工作者線程的操作。系統(tǒng)可以具有多個(gè)工作者線程池,其中每一個(gè)池具有其自身的優(yōu)先級(jí)隊(duì)列和并發(fā)性控制器。
[0006]并發(fā)性控制器合并有調(diào)度器。因此,線程還可以通過直接通知調(diào)度器來改變其優(yōu)先級(jí)中間操作。如果線程變成較低優(yōu)先級(jí)并且當(dāng)前是活躍的,則采取步驟以確保優(yōu)先級(jí)顛倒不會(huì)發(fā)生。特別地,調(diào)度器可以有利于較高優(yōu)先級(jí)工作者線程地先占處于現(xiàn)在較低優(yōu)先級(jí)的活躍工作者線程。
[0007]在以下描述中,對(duì)形成其部分的附圖做出參考,并且其中作為圖示,示出本技術(shù)的具體示例實(shí)現(xiàn)。要理解的是,可以利用其它實(shí)施例,并且可以做出結(jié)構(gòu)改變而不脫離本公開的范圍。
【附圖說明】
[0008]圖1是利用其可以實(shí)現(xiàn)這樣的系統(tǒng)的組件的示例計(jì)算機(jī)的框圖。
[0009]圖2是圖示了針對(duì)由用于計(jì)算機(jī)系統(tǒng)的操作系統(tǒng)所管理的工作者線程池的不同優(yōu)先級(jí)的多個(gè)隊(duì)列的示例實(shí)現(xiàn)的圖。
[0010]圖3是向隊(duì)列添加項(xiàng)目的示例實(shí)現(xiàn)的流程圖。[0011 ]圖4是在工作者線程結(jié)束之后選擇項(xiàng)目的示例實(shí)現(xiàn)的流程圖。
[0012]圖5是改變線程的優(yōu)先級(jí)的示例實(shí)現(xiàn)的流程圖。
[0013]圖6是向從隊(duì)列選擇的項(xiàng)目分配工作者線程的示例實(shí)現(xiàn)的流程圖。
[0014]圖7是操作中的并發(fā)性控制的說明性示例的圖。
【具體實(shí)施方式】
[0015]以下章節(jié)描述在其上可以實(shí)現(xiàn)向來自多個(gè)優(yōu)先化隊(duì)列的項(xiàng)目分配和調(diào)度工作者線程的操作系統(tǒng)的示例計(jì)算機(jī)系統(tǒng)。
[0016]以下描述意圖提供利用其可以實(shí)現(xiàn)這樣的系統(tǒng)的合適計(jì)算機(jī)的簡(jiǎn)要、一般描述。計(jì)算機(jī)可以是各種各樣的通用或?qū)S糜?jì)算硬件配置中的任一種??赡芎线m的眾所周知的計(jì)算機(jī)示例包括但不限于個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備(例如,媒體播放器、筆記本計(jì)算機(jī)、平板計(jì)算機(jī)、蜂窩電話、個(gè)人數(shù)據(jù)助理、話音記錄器)、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、游戲控制臺(tái)、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上系統(tǒng)或設(shè)備中的任一種的分布式計(jì)算環(huán)境等等。
[0017]圖1圖示了合適的計(jì)算機(jī)示例。這僅僅是合適的計(jì)算機(jī)的一個(gè)示例,且并不意圖暗示關(guān)于這樣的計(jì)算機(jī)的使用范圍或功能性的任何限制。
[0018]參照?qǐng)D1,示例計(jì)算機(jī)100在基本配置方面包括至少一個(gè)處理單元102和存儲(chǔ)器104。計(jì)算機(jī)可以包括多個(gè)處理單元和/或附加的協(xié)處理單元,諸如圖形處理單元120。取決于計(jì)算機(jī)的確切配置和類型,存儲(chǔ)器104可以是易失性(諸如RAM)、非易失性(諸如R0M、閃速存儲(chǔ)器等等)或二者的某種組合。該配置在圖1中以虛線106圖示。
[0019]此外,計(jì)算機(jī)100還可以具有附加特征/功能性。例如,計(jì)算機(jī)100還可以包括附加的存儲(chǔ)裝置(可移除和/或不可移除),包括但不限于磁盤或光盤或磁帶。這樣的附加存儲(chǔ)裝置在圖1中由可移除存儲(chǔ)裝置108和不可移除存儲(chǔ)裝置110圖示。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于存儲(chǔ)諸如計(jì)算機(jī)程序指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其它數(shù)據(jù)之類的信息的任何方法或者技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移除和不可移除介質(zhì)。存儲(chǔ)器104、可移除存儲(chǔ)裝置108和不可移除存儲(chǔ)裝置110都是計(jì)算機(jī)存儲(chǔ)介質(zhì)的示例。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于RAM、R0M、EEPR0M、閃速存儲(chǔ)器或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字通用盤(DVD)或其它光學(xué)存儲(chǔ)裝置、磁盒、磁帶、磁盤存儲(chǔ)裝置或其它磁存儲(chǔ)設(shè)備、或可以用來存儲(chǔ)所期望的信息并且可以由計(jì)算機(jī)100訪問的任何其它介質(zhì)。任何這樣的計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是計(jì)算機(jī)100的一部分。
[0020]計(jì)算機(jī)100還可以包含(多個(gè))通信連接112,其允許設(shè)備通過通信介質(zhì)與其它設(shè)備通信。通信介質(zhì)通常承載計(jì)算機(jī)程序指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或在諸如載波之類的已調(diào)制數(shù)據(jù)信號(hào)或其它輸運(yùn)機(jī)制中的其它數(shù)據(jù),并且包括任何信息遞送介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號(hào)”意指使其特性中的一個(gè)或者多個(gè)以便于在信號(hào)中編碼信息的這樣的方式設(shè)置或改變、從而改變信號(hào)的接收設(shè)備的配置或狀態(tài)的信號(hào)。作為示例而非限制,通信介質(zhì)包括有線介質(zhì)(諸如有線網(wǎng)絡(luò)或直接有線連接)以及無線介質(zhì)(諸如聲學(xué)、RF、紅外和其它無線介質(zhì))。通信連接112是與通信介質(zhì)對(duì)接以通過通信介質(zhì)傳送數(shù)據(jù)和從通信介質(zhì)接收數(shù)據(jù)的設(shè)備,諸如網(wǎng)絡(luò)接口。
[0021]計(jì)算機(jī)100可以具有(多個(gè))各種輸入設(shè)備114,諸如鍵盤、鼠標(biāo)、筆、相機(jī)、觸摸輸入設(shè)備等等。還可以包括諸如顯示器、揚(yáng)聲器、打印機(jī)等等之類的(多個(gè))輸出設(shè)備116。所有這些設(shè)備在本領(lǐng)域中都是眾所周知的,并且在此不需要詳細(xì)地討論。各種輸入和輸出設(shè)備可以實(shí)現(xiàn)自然用戶接口(NUI),其是使得用戶能夠以不受由諸如鼠標(biāo)、鍵盤、遙控器等之類的輸入設(shè)備所強(qiáng)加的人為約束的“自然”方式與設(shè)備交互的任何接口技術(shù)。
[0022]NUI方法的示例包括依賴于語音識(shí)別、觸摸和觸筆識(shí)別、在屏幕上和靠近屏幕二者的手勢(shì)識(shí)別、隔空手勢(shì)、頭部和眼睛追蹤、話音和語音、視覺、觸摸、手勢(shì)和機(jī)器智能的那些,并且可以包括以下各項(xiàng)的使用:觸敏顯示器、話音和語音識(shí)別、意圖和目標(biāo)理解、使用深度相機(jī)(諸如立體相機(jī)系統(tǒng)、紅外相機(jī)系統(tǒng)和其它相機(jī)系統(tǒng)以及這些的組合)的運(yùn)動(dòng)手勢(shì)檢測(cè)、使用加速度計(jì)或陀螺儀的運(yùn)動(dòng)手勢(shì)檢測(cè)、面部識(shí)別、三維顯示、頭部、眼睛和凝視追蹤、沉浸式增強(qiáng)現(xiàn)實(shí)和虛擬現(xiàn)實(shí)系統(tǒng)(這些全部都提供了更自然的接口),以及用于使用電場(chǎng)感測(cè)電極來感測(cè)腦部活動(dòng)的技術(shù)(EEG和相關(guān)方法)。
[0023]在計(jì)算機(jī)上操作的該系統(tǒng)的每個(gè)組件一般由軟件實(shí)現(xiàn),諸如一個(gè)或多個(gè)計(jì)算機(jī)程序,其包括由計(jì)算機(jī)處理的計(jì)算機(jī)可執(zhí)行指令和/或計(jì)算機(jī)解釋指令,諸如程序模塊。一般地,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等,其在被處理單元處理時(shí)指令處理單元執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。該計(jì)算機(jī)系統(tǒng)可以在分布式計(jì)算環(huán)境中實(shí)踐,其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)器存儲(chǔ)設(shè)備的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)兩者中。
[0024]可替換地或此外,本文描述的功能性可以至少部分地由一個(gè)或多個(gè)硬件邏輯組件執(zhí)行。例如而沒有限制地,可以使用的說明性類型的硬件邏輯組件包括現(xiàn)場(chǎng)可編程門陣列(FPGA)、專用程序集成電路(ASIC)、專用程序標(biāo)準(zhǔn)產(chǎn)品(ASSP)