專(zhuān)利名稱:多核環(huán)境下線程組地址空間調(diào)度和切換線程的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種計(jì)算機(jī)技術(shù)領(lǐng)域的方法,具體是一種多核環(huán)境下線程組地址 空間調(diào)度和切換線程的方法。
背景技術(shù):
片上多核處理器(CMP)是一種快速發(fā)展的并行解決方案。隨著硅技術(shù)的發(fā)展,在 單個(gè)晶片上可以集成越來(lái)越多的處理器核心。操作系統(tǒng)作為用戶與硬件的橋梁,其多核資 源的調(diào)度策略與調(diào)度方法對(duì)于系統(tǒng)整體性能的發(fā)揮起著至關(guān)重要的作用?,F(xiàn)代操作系統(tǒng)廣泛采用了多線程的計(jì)算模型。即進(jìn)程為計(jì)算的靜態(tài)環(huán)境抽象,包 括二進(jìn)制碼、地址空間、數(shù)據(jù)以及資源。線程為進(jìn)程的動(dòng)態(tài)執(zhí)行抽象,包括處理機(jī)上下文、運(yùn) 行棧以及線程狀態(tài)。在同一進(jìn)程下存在一個(gè)或多個(gè)執(zhí)行線程,線程為調(diào)度的基本單位。線程在進(jìn)行切換時(shí),會(huì)造成顯性以及隱性的性能開(kāi)銷(xiāo)。顯性開(kāi)銷(xiāo)包括保存上下文 時(shí)間、執(zhí)行操作系統(tǒng)調(diào)度代碼時(shí)間以及恢復(fù)上下文時(shí)間等。隱性開(kāi)銷(xiāo)則包括了由于線程切 換導(dǎo)致不同線程訪問(wèn)的高速緩存(Cache)相互影響即Cache污染,從而減少了 Cache命中 率而導(dǎo)致的性能損失。對(duì)于隸屬不同進(jìn)程的線程間切換,還需要進(jìn)行進(jìn)程的切換,其中最主 要工作就是進(jìn)程地址空間的切換。地址空間切換也會(huì)造成相應(yīng)的顯性和隱性的開(kāi)銷(xiāo)。顯性 開(kāi)銷(xiāo)包括更換頁(yè)目錄時(shí)間,無(wú)效化快表(TLB)的時(shí)間。對(duì)于Intel的x86以及許多復(fù)雜指 令集架構(gòu)(CISC)來(lái)說(shuō),無(wú)效化TLB是必須的,因?yàn)門(mén)LB不記錄地址空間信息,地址空間轉(zhuǎn)換 意味著原TLB映射的完全失效。而某些精簡(jiǎn)指令集架構(gòu)(RISC)如ARM、MIPS提供了具有地 址空間標(biāo)識(shí)的TLB,即TLB在進(jìn)行匹配時(shí)不但要匹配虛擬頁(yè)還要匹配地址空間標(biāo)識(shí)。這樣不 同地址空間的入口可以在TLB中共存,從而避免了無(wú)效化整個(gè)TLB的開(kāi)銷(xiāo)。對(duì)于地址空間 切換的隱性開(kāi)銷(xiāo)來(lái)說(shuō),不論是否使用地址空間標(biāo)識(shí)的TLB,都會(huì)造成很大的性能損失,只是 污染比冷啟動(dòng)造成的TLB失效懲罰要少而已??紤]到通用性問(wèn)題,現(xiàn)在商業(yè)操作系統(tǒng)的多核調(diào)度方法多為采用基于優(yōu)先級(jí)的調(diào) 度策略。無(wú)論靜態(tài)優(yōu)先級(jí)還是動(dòng)態(tài)優(yōu)先級(jí),該策略在進(jìn)行線程調(diào)度時(shí)僅考慮到單一線程的 屬性、執(zhí)行情況以及當(dāng)前處理器核的忙碌狀態(tài)等。傳統(tǒng)方法忽略掉或者部分忽略掉了處理 器分配與調(diào)度次序可能對(duì)線程地址空間切換次數(shù)、Cache命中率的影響。目前Linux最新 2. 6版本內(nèi)核采用了基于優(yōu)先級(jí)的調(diào)度策略,并為每一個(gè)處理單元分配一個(gè)本地就緒隊(duì)列。 然而,調(diào)度器在分配任務(wù)與負(fù)載平衡時(shí)并不考慮線程的地址空間信息。經(jīng)對(duì)現(xiàn)有文獻(xiàn)檢索發(fā)現(xiàn),中國(guó)專(zhuān)利申請(qǐng)?zhí)枮?00810162904,名稱為多核平臺(tái)下 基于硬件計(jì)時(shí)器與任務(wù)隊(duì)列的調(diào)度方法,該技術(shù)公開(kāi)了一種采用在硬件手段,添加多個(gè)硬 件任務(wù)隊(duì)列與計(jì)時(shí)器的多核調(diào)度方法。該方法旨在借助硬件實(shí)現(xiàn),減少調(diào)度開(kāi)銷(xiāo),但該方法 同樣忽略了線程的地址空間信息,并且靈活性較差。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的上述不足,提供一種多核環(huán)境下線程組地址空間調(diào)度和切換線程的方法。本發(fā)明通過(guò)對(duì)線程進(jìn)行分組,并為處理器的每個(gè)核配備一個(gè)任 務(wù)隊(duì)列,實(shí)現(xiàn)了具有調(diào)度收益的線程依次被調(diào)度,具有調(diào)度開(kāi)銷(xiāo)小,任務(wù)吞吐量大,調(diào)度靈 活性高的優(yōu)點(diǎn)。本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的,本發(fā)明包括以下步驟第一步,對(duì)每個(gè)進(jìn)程所包含的線程進(jìn)行線程組劃分處理,得到若干線程組。所述的線程組劃分處理,包括以下步驟
Αχ5 χC1. 1)根據(jù)巧=^得到每個(gè)進(jìn)程所劃分的線程組的組數(shù),其中=Pi是第i個(gè)
U >
線程所劃分的線程組的組數(shù),A是處理器的核數(shù),Bi是第i個(gè)線程的并行因子,Ci是第i個(gè) 線程的線程數(shù),D所有線程的總線程數(shù);1. 2)將線程指令訪問(wèn)模式差異和線程數(shù)據(jù)訪問(wèn)模式差異的和作為線程間的差異 函數(shù);1. 3)采用K-medoids聚類(lèi)方法進(jìn)行線程組的劃分。第二步,對(duì)線程組進(jìn)行分配處理,分別得到每個(gè)線程組的CPU核,并將每個(gè)線程組 送入對(duì)應(yīng)的本地隊(duì)列。所述的分配處理,是在所有的任務(wù)隊(duì)列中,找到不含與線程組t同進(jìn)程的線程組 的任務(wù)隊(duì)列集合,并在該任務(wù)隊(duì)列集合中選擇長(zhǎng)度最短的任務(wù)隊(duì)列所對(duì)應(yīng)的處理器核,作 為線程組t分配的處理器核。第三步,運(yùn)行各個(gè)CPU核,當(dāng)線程被動(dòng)態(tài)創(chuàng)建或刪除時(shí),對(duì)線程組進(jìn)行維持處理, 得到處理后的線程組;否則,執(zhí)行第四步。所述的維持處理,包括以下步驟2. 1)當(dāng)動(dòng)態(tài)創(chuàng)建線程t而不改變線程組的組數(shù)時(shí),計(jì)算線程t到其隸屬進(jìn)程的所 有線程組中心線程的差異,線程組加入差異最小的線程組,并修改本地隊(duì)列;2. 2)當(dāng)刪除線程t而不改變線程組的組數(shù)時(shí),直接將線程t刪除,并修改本地隊(duì) 列;2. 3)當(dāng)動(dòng)態(tài)創(chuàng)建線程t或刪除線程t而改變線程組的組數(shù)時(shí),采用第一步的方法, 對(duì)進(jìn)程進(jìn)行重新劃分處理,得到若干新的線程組,返回第二步。第四步,當(dāng)當(dāng)前線程時(shí)間片用完時(shí),調(diào)度并切換線程,返回第三步;否則,當(dāng)當(dāng)前線程阻塞,就緒隊(duì)列為空且負(fù)載不平衡時(shí),進(jìn)行線程遷移,然后進(jìn)行 調(diào)度并切換線程,返回第三步;當(dāng)當(dāng)前線程阻塞,就緒隊(duì)列不為空或負(fù)載平衡時(shí),直接進(jìn)行 調(diào)度并切換線程,返回第三步;當(dāng)當(dāng)前線程未阻塞但停機(jī)時(shí),線程調(diào)度結(jié)束;當(dāng)當(dāng)前線程未 阻塞且未停機(jī)時(shí),返回第三步;當(dāng)阻塞線程恢復(fù)為就緒狀態(tài)時(shí),找到結(jié)構(gòu)隊(duì)列中向前離該線 程最近的就緒線程U,并插入線程u之前。所述的調(diào)度采用先入先出的方式,當(dāng)調(diào)度發(fā)生時(shí),選取就緒隊(duì)列的隊(duì)頭線程作為 下一個(gè)運(yùn)行線程,并進(jìn)行線程切換。所述的負(fù)載不平衡,滿足以下條件任務(wù)隊(duì)列中就緒隊(duì)列為空、持續(xù)時(shí)間超過(guò)閾值 T、且系統(tǒng)總線程組數(shù)超過(guò)CPU核數(shù)。所述的線程遷移,是在就緒隊(duì)列為空且就緒隊(duì)列長(zhǎng)度大于或者等于2的任務(wù)隊(duì) 列中選取線程組數(shù)量最多的任務(wù)隊(duì)列L,將L中與其中任何線程組都不屬于同一進(jìn)程的線程組G遷移到任務(wù)隊(duì)列L中。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是1、減少了顯性以及隱性調(diào)度開(kāi)銷(xiāo)傳統(tǒng)的多核線程調(diào)度方法只考慮到單個(gè)線程的特征以及各核狀態(tài),并不關(guān)心線程 間的關(guān)系以及線程在就緒隊(duì)列中的排列次序?qū)φ{(diào)度開(kāi)銷(xiāo)的影響。事實(shí)上,由于線程切換而 導(dǎo)致的潛在的刷新TLB、TLB失效以及Cache失效都會(huì)對(duì)系統(tǒng)性能產(chǎn)生很大影響。本方法引 入了線程分組策略,對(duì)潛在的通過(guò)CPU核分配以及調(diào)度次序安排而可以受益的線程進(jìn)行聚 合,減少了調(diào)度過(guò)程中地址空間切換的次數(shù),提高了 Cache命中率從而提高了系統(tǒng)吞吐率、 提升了系統(tǒng)整體性能。2、增加了調(diào)度靈活性對(duì)于傳統(tǒng)的調(diào)度方法,尤其是硬件實(shí)現(xiàn)的調(diào)度方法,其調(diào)度策略嚴(yán)重依賴于硬件 平臺(tái)以及應(yīng)用的類(lèi)型,而本發(fā)明的采用的線程分組方法可以靈活地根據(jù)硬件平臺(tái)的特性以 及應(yīng)用特性進(jìn)行調(diào)整,從而能夠創(chuàng)造出適應(yīng)某一特定情況的線程組劃分。例如如對(duì)于NUMA 體系結(jié)構(gòu)可以對(duì)線程的位置加以考慮從而獲得訪存局部化更好的線程劃分以及CPU分配 結(jié)果。另外,本發(fā)明方法還可以同其他方法結(jié)合使用,例如在多級(jí)隊(duì)列的每級(jí)隊(duì)列中使用本 方法。
附圖1是實(shí)施例的方法流程圖;附圖2是實(shí)施例的任務(wù)隊(duì)列結(jié)構(gòu)圖。
具體實(shí)施例方式以下結(jié)合附圖對(duì)本發(fā)明的方法進(jìn)一步描述本實(shí)施例在以本發(fā)明技術(shù)方案為前提 下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)范圍不限于下述 的實(shí)施例。實(shí)施例如圖1所示,本實(shí)施例包括以下步驟第一步,對(duì)每個(gè)進(jìn)程所包含的線程進(jìn)行線程組劃分處理,得到若干線程組。所述的線程組劃分處理,包括以下步驟
Αχ5 χC1. 1)根據(jù)巧=^得到每個(gè)進(jìn)程所劃分的線程組的組數(shù),其中=Pi是第i個(gè)
U >
線程所劃分的線程組的組數(shù),A是處理器的核數(shù),Bi是第i個(gè)線程的并行因子,Ci是第i個(gè) 線程的線程數(shù),D所有線程的總線程數(shù);1. 2)將線程指令訪問(wèn)模式差異和線程數(shù)據(jù)訪問(wèn)模式差異的和作為線程間的差異 函數(shù);1. 3)采用K-medoids聚類(lèi)方法進(jìn)行線程組的劃分。第二步,對(duì)線程組進(jìn)行分配處理,分別得到每個(gè)線程組的CPU核,并將每個(gè)線程組 送入對(duì)應(yīng)的本地隊(duì)列。所述的分配處理,是在所有的任務(wù)隊(duì)列中,找到不含與線程組t同進(jìn)程的線程組的任務(wù)隊(duì)列集合,并在該任務(wù)隊(duì)列集合中選擇長(zhǎng)度最短的任務(wù)隊(duì)列所對(duì)應(yīng)的處理器核,作 為線程組t分配的處理器核。第三步,運(yùn)行各個(gè)CPU核,當(dāng)線程被動(dòng)態(tài)創(chuàng)建或刪除時(shí),對(duì)線程組進(jìn)行維持處理, 得到處理后的線程組;否則,執(zhí)行第四步。所述的維持處理,包括以下步驟2. 1)當(dāng)動(dòng)態(tài)創(chuàng)建線程t而不改變線程組的組數(shù)時(shí),計(jì)算線程t到其隸屬進(jìn)程的所 有線程組中心線程的差異,線程組加入差異最小的線程組,并修改本地隊(duì)列;2. 2)當(dāng)刪除線程t而不改變線程組的組數(shù)時(shí),直接將線程t刪除,并修改本地隊(duì) 列;2. 3)當(dāng)動(dòng)態(tài)創(chuàng)建線程t或刪除線程t而改變線程組的組數(shù)時(shí),采用第一步的方法, 對(duì)進(jìn)程進(jìn)行重新劃分處理,得到若干新的線程組,返回第二步。第四步,當(dāng)當(dāng)前線程時(shí)間片用完時(shí),調(diào)度并切換線程,返回第三步;否則,當(dāng)當(dāng)前線程阻塞,就緒隊(duì)列為空且負(fù)載不平衡時(shí),進(jìn)行線程遷移,然后進(jìn)行 調(diào)度并切換線程,返回第三步;當(dāng)當(dāng)前線程阻塞,就緒隊(duì)列不為空或負(fù)載平衡時(shí),直接進(jìn)行 調(diào)度并切換線程,返回第三步;當(dāng)當(dāng)前線程未阻塞但停機(jī)時(shí),線程調(diào)度結(jié)束;當(dāng)當(dāng)前線程未 阻塞且未停機(jī)時(shí),返回第三步;當(dāng)阻塞線程恢復(fù)為就緒狀態(tài)時(shí),找到結(jié)構(gòu)隊(duì)列中向前離該線 程最近的就緒線程U,并插入線程u之前。所述的調(diào)度采用先入先出的方式,當(dāng)調(diào)度發(fā)生時(shí),選取就緒隊(duì)列的隊(duì)頭線程作為 下一個(gè)運(yùn)行線程,并進(jìn)行線程切換。所述的負(fù)載不平衡,滿足以下條件任務(wù)隊(duì)列中就緒隊(duì)列為空、持續(xù)時(shí)間超過(guò)閾值 T、且系統(tǒng)總線程組數(shù)超過(guò)CPU核數(shù)。所述的線程遷移,是在就緒隊(duì)列為空且就緒隊(duì)列長(zhǎng)度大于或者等于2的任務(wù)隊(duì) 列中選取線程組數(shù)量最多的任務(wù)隊(duì)列L,將L中與其中任何線程組都不屬于同一進(jìn)程的線 程組G遷移到任務(wù)隊(duì)列L中。本實(shí)施例中每一個(gè)CPU核對(duì)應(yīng)一個(gè)任務(wù)隊(duì)列,具體的任務(wù)隊(duì)列結(jié)構(gòu)如圖2所示,其 中=TGi. χ表示第i號(hào)進(jìn)程的χ號(hào)線程組,TGi. χ e TGi ;^. χ表示第i號(hào)進(jìn)程的χ號(hào)線程, 懷χ e Ti Ji表示第i號(hào)進(jìn)程的線程集合。任務(wù)隊(duì)列Lk由雙向循環(huán)鏈表(結(jié)構(gòu)鏈表)和單 向循環(huán)隊(duì)列(調(diào)度隊(duì)列)組成,圖2中每一個(gè)塊代表線程節(jié)點(diǎn),任務(wù)隊(duì)列由共有3個(gè)線程組 (TG1. 3、TG2. 5以及TG3. 1)和9個(gè)線程節(jié)點(diǎn)組成。節(jié)點(diǎn)組成的環(huán)即為結(jié)構(gòu)鏈表。可見(jiàn),結(jié)構(gòu) 鏈表中同一線程組內(nèi)的線程鄰接。在沒(méi)有線程組加入與移出的情況下,結(jié)構(gòu)鏈表保持不變, 即結(jié)構(gòu)鏈表不受線程就緒與阻塞影響。調(diào)度隊(duì)列也就是線程就緒隊(duì)列,在附圖2中用虛線 表示,當(dāng)前執(zhí)行的線程用實(shí)箭頭表示,示例中為t3. 4,隊(duì)頭指針指向t3. 10。調(diào)度隊(duì)列采用鏈 式實(shí)現(xiàn),在排除了阻塞線程后順序與結(jié)構(gòu)鏈表保持一致。節(jié)點(diǎn)包含標(biāo)志位block用以區(qū)分 線程的狀態(tài),具體來(lái)說(shuō),block為1時(shí)線程就緒,block為0時(shí)線程阻塞。本實(shí)施例引入了線程分組策略,對(duì)潛在的通過(guò)CPU核分配以及調(diào)度次序安排而可 以受益的線程進(jìn)行聚合,減少了調(diào)度過(guò)程中地址空間切換的次數(shù),提高了 Cache命中率從 而提高了系統(tǒng)吞吐率、提升了系統(tǒng)整體性能;可以靈活地根據(jù)硬件平臺(tái)的特性以及應(yīng)用特 性進(jìn)行調(diào)整,從而能夠創(chuàng)造出適應(yīng)某一特定情況的線程組劃分。
權(quán)利要求
一種多核環(huán)境下線程組地址空間調(diào)度和切換線程的方法,其特征在于,包括以下步驟第一步,對(duì)每個(gè)進(jìn)程所包含的線程進(jìn)行線程組劃分處理,得到若干線程組;第二步,對(duì)線程組進(jìn)行分配處理,分別得到每個(gè)線程組的CPU核,并將每個(gè)線程組送入對(duì)應(yīng)的本地隊(duì)列;第三步,運(yùn)行各個(gè)CPU核,當(dāng)線程被動(dòng)態(tài)創(chuàng)建或刪除時(shí),對(duì)線程組進(jìn)行維持處理,得到處理后的線程組;否則,執(zhí)行第四步;第四步,當(dāng)當(dāng)前線程時(shí)間片用完時(shí),調(diào)度并切換線程,返回第三步;否則,當(dāng)當(dāng)前線程阻塞,就緒隊(duì)列為空且負(fù)載不平衡時(shí),進(jìn)行線程遷移,然后進(jìn)行調(diào)度并切換線程,返回第三步;當(dāng)當(dāng)前線程阻塞,就緒隊(duì)列不為空或負(fù)載平衡時(shí),直接進(jìn)行調(diào)度并切換線程,返回第三步;當(dāng)當(dāng)前線程未阻塞但停機(jī)時(shí),線程調(diào)度結(jié)束;當(dāng)當(dāng)前線程未阻塞且未停機(jī)時(shí),返回第三步;當(dāng)阻塞線程恢復(fù)為就緒狀態(tài)時(shí),找到結(jié)構(gòu)隊(duì)列中向前離該線程最近的就緒線程u,并插入線程u之前。
2.根據(jù)權(quán)利要求1所述的多核環(huán)境下線程組地址空間調(diào)度和切換線程的方法,其特征 是,第一步中所述的線程組劃分處理,包括以下步驟Λχβ xC1.1)根據(jù)巧=^得到每個(gè)進(jìn)程所劃分的線程組的組數(shù),其中=Pi是第i個(gè)線程 U >所劃分的線程組的組數(shù),A是處理器的核數(shù),Bi是第i個(gè)線程的并行因子,Ci是第i個(gè)線程 的線程數(shù),D所有線程的總線程數(shù);1.2)將線程指令訪問(wèn)模式差異和線程數(shù)據(jù)訪問(wèn)模式差異的和作為線程間的差異函數(shù);1.3)采用K-medoids聚類(lèi)方法進(jìn)行線程組的劃分。
3.根據(jù)權(quán)利要求1所述的多核環(huán)境下線程組地址空間調(diào)度和切換線程的方法,其特 征是,第二步中所述的分配處理,是在所有的任務(wù)隊(duì)列中,找到不含與線程組t同進(jìn)程的 線程組的任務(wù)隊(duì)列集合,并在該任務(wù)隊(duì)列集合中選擇長(zhǎng)度最短的任務(wù)隊(duì)列所對(duì)應(yīng)的處理器 核,作為線程組t分配的處理器核。
4.根據(jù)權(quán)利要求1所述的多核環(huán)境下線程組地址空間調(diào)度和切換線程的方法,其特征 是,第三步中所述的維持處理,包括以下步驟2.1)當(dāng)動(dòng)態(tài)創(chuàng)建線程t而不改變線程組的組數(shù)時(shí),計(jì)算線程t到其隸屬進(jìn)程的所有線 程組中心線程的差異,線程組加入差異最小的線程組,并修改本地隊(duì)列;2.2)當(dāng)刪除線程t而不改變線程組的組數(shù)時(shí),直接將線程t刪除,并修改本地隊(duì)列; 2. 3)當(dāng)動(dòng)態(tài)創(chuàng)建線程t或刪除線程t而改變線程組的組數(shù)時(shí),采用第一步的方法,對(duì)進(jìn) 程進(jìn)行重新劃分處理,得到若干新的線程組,返回第二步。
5.根據(jù)權(quán)利要求1所述的多核環(huán)境下線程組地址空間調(diào)度和切換線程的方法,其特征 是,第四步中所述的調(diào)度采用先入先出的方式,當(dāng)調(diào)度發(fā)生時(shí),選取就緒隊(duì)列的隊(duì)頭線程作 為下一個(gè)運(yùn)行線程,并進(jìn)行線程切換。
6.根據(jù)權(quán)利要求1所述的多核環(huán)境下線程組地址空間調(diào)度和切換線程的方法,其特征 是,第四步中所述的負(fù)載不平衡,滿足以下條件任務(wù)隊(duì)列中就緒隊(duì)列為空、持續(xù)時(shí)間超過(guò) 閾值T、且系統(tǒng)總線程組數(shù)超過(guò)CPU核數(shù)。
7.根據(jù)權(quán)利要求1所述的多核環(huán)境下線程組地址空間調(diào)度和切換線程的方法,其特征 是,第四步所述的線程遷移,是在就緒隊(duì)列為空且就緒隊(duì)列長(zhǎng)度大于或者等于2的任務(wù)隊(duì) 列中選取線程組數(shù)量最多的任務(wù)隊(duì)列L,將L中與其中任何線程組都不屬于同一進(jìn)程的線 程組G遷移到任務(wù)隊(duì)列L中。
全文摘要
一種計(jì)算機(jī)技術(shù)領(lǐng)域的多核環(huán)境下線程組地址空間調(diào)度和切換線程的方法,引入了線程分組策略,對(duì)潛在的通過(guò)CPU核分配以及調(diào)度次序安排而可以受益的線程進(jìn)行聚合,減少了調(diào)度過(guò)程中地址空間切換的次數(shù),提高了Cache命中率從而提高了系統(tǒng)吞吐率、提升了系統(tǒng)整體性能;采用的線程分組方法可以靈活地根據(jù)硬件平臺(tái)的特性以及應(yīng)用特性進(jìn)行調(diào)整,從而能夠創(chuàng)造出適應(yīng)某一特定情況的線程組劃分;還可以同其他調(diào)度方法結(jié)合使用。本發(fā)明通過(guò)對(duì)線程進(jìn)行分組,并為處理器的每個(gè)核配備一個(gè)任務(wù)隊(duì)列,實(shí)現(xiàn)了具有調(diào)度收益的線程依次被調(diào)度,具有調(diào)度開(kāi)銷(xiāo)小,任務(wù)吞吐量大,調(diào)度靈活性高的優(yōu)點(diǎn)。
文檔編號(hào)G06F9/48GK101923491SQ20101025010
公開(kāi)日2010年12月22日 申請(qǐng)日期2010年8月11日 優(yōu)先權(quán)日2010年8月11日
發(fā)明者丁孟為, 伍倩, 李陽(yáng), 楊藍(lán)麒, 沈耀, 王穩(wěn)寅, 過(guò)敏意 申請(qǐng)人:上海交通大學(xué)