亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

多處理器系統(tǒng)中的線程分配系統(tǒng)和分配方法

文檔序號(hào):6378185閱讀:232來(lái)源:國(guó)知局
專利名稱:多處理器系統(tǒng)中的線程分配系統(tǒng)和分配方法
技術(shù)領(lǐng)域
本發(fā)明涉及在多個(gè)進(jìn)程(或程序)中分配線程的系統(tǒng)和分配方法。
背景技術(shù)
通常,在Web服務(wù)器應(yīng)用中,多處理器系統(tǒng)已經(jīng)成功地被用作多線程程序的執(zhí)行環(huán)境。在這種情況下,系統(tǒng)執(zhí)行的進(jìn)程是例如代理服務(wù)器和防火墻的服務(wù)器程序。當(dāng)執(zhí)行分布式處理時(shí),一個(gè)服務(wù)器程序不時(shí)地被一個(gè)系統(tǒng)執(zhí)行。
Web服務(wù)器的多線程程序響應(yīng)多個(gè)客戶機(jī)的異步請(qǐng)求重復(fù)產(chǎn)生和撤銷任務(wù)。另一方面,在使用例如CPU(中央處理單元)服務(wù)器或CPU陣列的服務(wù)器時(shí),執(zhí)行多個(gè)具有不同性質(zhì)的程序,例如計(jì)算和計(jì)算機(jī)輔助設(shè)計(jì)(CAD)。
當(dāng)執(zhí)行包含多線程程序的一個(gè)進(jìn)程時(shí),通過(guò)將進(jìn)程中的所有線程分配到可分配的處理器中,進(jìn)程的執(zhí)行速度被大大提高。另一方面,當(dāng)存在多個(gè)進(jìn)程時(shí),有必要通過(guò)優(yōu)化系統(tǒng)吞吐率的方法分配線程。
當(dāng)多處理器系統(tǒng)中的8個(gè)處理器獨(dú)立執(zhí)行8個(gè)進(jìn)程時(shí),吞吐率明顯低于8個(gè)單獨(dú)處理器執(zhí)行一個(gè)進(jìn)程時(shí)的吞吐率。這種效率退化的原因是用戶空間的共享所產(chǎn)生的競(jìng)爭(zhēng)。
在多線程程序中,線程切換的速度高于程序切換的速度。此外,由于在不同線程中間共享相同的用戶空間,可以通過(guò)指針傳遞的形式在線程中間傳遞數(shù)據(jù)。線程中間數(shù)據(jù)傳遞的速度高于程序中間需要復(fù)制操作的數(shù)據(jù)傳遞。由于當(dāng)在使用不同處理器執(zhí)行程序的過(guò)程中以指針傳遞的形式執(zhí)行線程中間的數(shù)據(jù)傳遞時(shí),不必在硬件層次進(jìn)行復(fù)制操作,所以當(dāng)使用多處理器系統(tǒng)執(zhí)行多線程程序時(shí),多處理器系統(tǒng)最好具有高速緩存相關(guān)共享存儲(chǔ)器。
作為多線程程序執(zhí)行的優(yōu)化結(jié)果,硬件層次的高速緩存相關(guān)性支持被加入多處理器系統(tǒng)。在硬件層次維護(hù)高速緩存相關(guān)性適用于經(jīng)常出現(xiàn)的線程中間的數(shù)據(jù)傳遞,并且尤其適用于線程中間的通信。
如果使用高速緩存相關(guān)性協(xié)議的數(shù)據(jù)訪問(wèn)始終被用于準(zhǔn)備在線程中間具有低頻次通信的獨(dú)立程序之間傳遞的數(shù)據(jù),則從速度的角度看,這會(huì)增加不必要的處理。如果在CC-NUMA(高速緩存相關(guān)非均勻存儲(chǔ)器訪問(wèn))類型的多處理器系統(tǒng)中存在L2(二級(jí))高速緩存命中失誤,則會(huì)訪問(wèn)屬于歸屬節(jié)點(diǎn)(管理數(shù)據(jù)所屬的存儲(chǔ)器)的標(biāo)記存儲(chǔ)器,并且會(huì)自動(dòng)檢查保存最新數(shù)據(jù)的屬主節(jié)點(diǎn)。此外,如果使用窺探高速緩存,則始終需要向所有高速緩存廣播地址,因此在只有一套地址總線的情況下不能同時(shí)產(chǎn)生需要進(jìn)行窺探的多個(gè)存儲(chǔ)器訪問(wèn)。標(biāo)記存儲(chǔ)器被設(shè)計(jì)成控制臨時(shí)存儲(chǔ)數(shù)據(jù)的狀態(tài)。窺探高速緩存被用來(lái)自動(dòng)管理與硬件的相關(guān)性。L2高速緩存命中失誤意味著在第二級(jí)和第一級(jí)出現(xiàn)高速緩存命中失誤,其中高速緩沖存儲(chǔ)器具有兩級(jí)結(jié)構(gòu)。
因此,在多線程程序中最好并有效地在硬件上支持高速緩存相關(guān)性,但是在執(zhí)行多個(gè)程序時(shí)不需要這種支持。
本發(fā)明的目的是提供控制系統(tǒng)的吞吐率優(yōu)化的程序和分配方法。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的用于在包含多個(gè)處理器的多處理器系統(tǒng)所執(zhí)行的進(jìn)程中分配線程的系統(tǒng)包括當(dāng)向多個(gè)處理器中的每個(gè)處理器分配進(jìn)程中的線程時(shí)確定進(jìn)程的處理效率的裝置,和根據(jù)確定裝置的結(jié)果選擇一個(gè)處理器或多個(gè)處理器執(zhí)行該進(jìn)程的裝置。
根據(jù)本發(fā)明的用于在包含多個(gè)處理器的多處理器系統(tǒng)所執(zhí)行的進(jìn)程中分配線程的方法包括步驟當(dāng)向多個(gè)處理器中的每個(gè)處理器分配進(jìn)程中的線程時(shí)確定進(jìn)程的處理效率,和選擇一個(gè)處理器或多個(gè)處理器執(zhí)行該進(jìn)程。
根據(jù)本發(fā)明,由于進(jìn)程的優(yōu)化分配,可以在多處理器系統(tǒng)不存在任何吞吐率退化的情況下執(zhí)行所有進(jìn)程。


圖1示出了本發(fā)明的系統(tǒng)結(jié)構(gòu)和分配狀態(tài)。
圖2示出了進(jìn)程中線程的執(zhí)行狀態(tài)。
圖3示出了維護(hù)高速緩存相關(guān)性的頁(yè)表的例子。
圖4示出了多處理器系統(tǒng)的例子。
具體實(shí)施例方式
下面參照附圖描述本發(fā)明的系統(tǒng)和分配方法的優(yōu)選實(shí)施例。在本說(shuō)明書的圖1、2和4中,代碼38統(tǒng)指38a、38b、P1、P2和P3。
如圖1所示,本發(fā)明的系統(tǒng)分配線程。換言之,本發(fā)明涉及多處理器系統(tǒng)中操作系統(tǒng)的調(diào)度程序?,F(xiàn)在詳細(xì)描述用于優(yōu)化系統(tǒng)吞吐率的方法。
圖2示出了操作系統(tǒng)32和進(jìn)程38。T0到T4是進(jìn)程38中的線程,各個(gè)位置的線程T0、T1、T2、T3和T4指示各個(gè)執(zhí)行點(diǎn)。在圖2中,線程T0是在用戶空間36中可與線程T1、T2、T3和T4并行執(zhí)行的線程。通過(guò)系統(tǒng)調(diào)用執(zhí)行T1,并且接著執(zhí)行T2、T3和T4。
如果只有圖2示出的T0、T2和T3被分配到本說(shuō)明書中的不同處理器,則即使在進(jìn)程38最多可以并行執(zhí)行3個(gè)線程的情況下,一個(gè)處理器(單處理器)的分配也涉及進(jìn)入單處理器執(zhí)行狀態(tài)。
通常,由于共享數(shù)據(jù),需要高速緩存相關(guān)性協(xié)議以便使用不同處理器并行執(zhí)行線程T0、T2和T3。使用單處理器執(zhí)行T0到T4則不需要高速緩存相關(guān)性協(xié)議。用戶空間36中的數(shù)據(jù)在對(duì)應(yīng)的頁(yè)表中標(biāo)明不需要相關(guān)性。另外,頁(yè)表被用來(lái)管理每個(gè)頁(yè)面的存儲(chǔ)器的存儲(chǔ)區(qū),其中存儲(chǔ)了虛擬地址和物理地址之間的對(duì)應(yīng)關(guān)系。通過(guò)使用這個(gè)表格,可以進(jìn)行高速緩存控制和高速緩存相關(guān)性控制。頁(yè)面是指通過(guò)等長(zhǎng)度地分割程序所得到的各個(gè)部分。
例如在圖3示出的頁(yè)表42中,當(dāng)不需要高速緩存相關(guān)性時(shí),在WIM(存儲(chǔ)器/高速緩存控制位)位字段中標(biāo)明此情況。由于多處理器系統(tǒng)40中包含的MMU(存儲(chǔ)器管理單元)的功能,硬件30沒(méi)有為用戶空間36的數(shù)據(jù)訪問(wèn)產(chǎn)生高速緩存相關(guān)性協(xié)議。
然而由于在傳遞數(shù)據(jù)時(shí)被其它處理器執(zhí)行過(guò)的程序操作,可以無(wú)法保持高速緩存相關(guān)性。例如,如果線程T5引用具有進(jìn)程(其中在圖2示出的T5在圖4示出的處理器uP2上的執(zhí)行期間不需要高速緩存相關(guān)性)的用戶空間36a,則不會(huì)保持高速緩存相關(guān)性。
在上述情況下,通過(guò)改變對(duì)處理器的分配并且增加允許單處理器執(zhí)行狀態(tài)的T5,保持高速緩存相關(guān)性。MMU被用來(lái)幫助產(chǎn)生用于改變分配的事件。在頁(yè)表42中,只有處于執(zhí)行狀態(tài)的一個(gè)處理器可以讀/寫數(shù)據(jù),而其它處理器不能在用戶空間36中讀/寫數(shù)據(jù)。在引用數(shù)據(jù)之前發(fā)生中斷以打破相對(duì)T5的高速緩存相關(guān)性,并且接著將T5分配到一個(gè)處理器,該處理器與T0、T1、T2、T3和T4被分配到的處理器相同。
在圖3的頁(yè)表42的例子中,有關(guān)頁(yè)面的讀/寫屬性允許通過(guò)分配PP(頁(yè)面保護(hù)位)位字段來(lái)省略高速緩存相關(guān)性協(xié)議。
不同處理器會(huì)看到頁(yè)表42中記錄的不同讀/寫屬性內(nèi)容,這是一種當(dāng)在DSM(分布式共享存儲(chǔ)器)中安裝軟件高速緩存時(shí)也會(huì)使用的技術(shù)。雖然在本發(fā)明中通過(guò)傳送其中在DSM的軟件高速緩存的節(jié)點(diǎn)之間已經(jīng)發(fā)生頁(yè)面故障的頁(yè)面來(lái)得到高速緩存效應(yīng),然而在節(jié)點(diǎn)之間傳送的是已經(jīng)出現(xiàn)頁(yè)面故障的線程。此外,頁(yè)面故障是當(dāng)訪問(wèn)存儲(chǔ)器中不存在的頁(yè)面時(shí)發(fā)生的中斷。
如果單處理器執(zhí)行整個(gè)進(jìn)程38,則多處理器系統(tǒng)40會(huì)失去其存在價(jià)值。因此,本發(fā)明的系統(tǒng)具有以下結(jié)構(gòu),并且選擇進(jìn)程38進(jìn)入單處理器執(zhí)行狀態(tài)。
圖1示出的本發(fā)明的系統(tǒng)10包括用于當(dāng)各個(gè)進(jìn)程38a和38b被分配到多處理器系統(tǒng)40中的多個(gè)處理器(多處理器)28時(shí),確定進(jìn)程38a和38b的處理效率的確定裝置12;和根據(jù)確定裝置12的結(jié)果選擇單處理器26或多處理器28以執(zhí)行進(jìn)程38a和38b的選擇裝置14。
確定裝置12包括觀察進(jìn)程38a和38b的執(zhí)行狀態(tài)的觀察部件16;和確定進(jìn)程38a和38b的處理效率的確定部件18。觀察部件16包括將進(jìn)程38a和38b的執(zhí)行時(shí)間分割成處理器26和28執(zhí)行的處理時(shí)間,以及I/O(輸入-輸出)延遲的裝置(未示出);和將處理時(shí)間與I/O延遲相比較的裝置(未示出)。確定部件18根據(jù)比較裝置的比較結(jié)果確定進(jìn)程38a和38b的處理效率。
選擇裝置14包括存儲(chǔ)器管理部件20和任務(wù)分配器22。存儲(chǔ)器管理部件20針對(duì)存儲(chǔ)器24中的進(jìn)程38a和38b確定是否保持高速緩存相關(guān)性。任務(wù)分配器22選擇多處理器或單處理器執(zhí)行進(jìn)程。
在本發(fā)明中,當(dāng)使用確定裝置12和選擇裝置14從其它處理器訪問(wèn)單處理器26執(zhí)行的進(jìn)程38a所處理的數(shù)據(jù)時(shí),訪問(wèn)被終止并且改變到上述單處理器26。更具體地,從其它處理器的訪問(wèn)發(fā)生中斷,以便將訪問(wèn)改變到單處理器26。
在本發(fā)明中,單處理器26讀寫將被由單處理器26執(zhí)行的進(jìn)程38a操作的數(shù)據(jù),以禁止其它處理器讀寫數(shù)據(jù)。
下面詳細(xì)描述使用上述系統(tǒng)10的分配方法。系統(tǒng)10確定當(dāng)進(jìn)程38a和38b中的線程被分配到各個(gè)多處理器28時(shí)的處理效率,并且選擇單處理器執(zhí)行或多處理器執(zhí)行。
(1)即使在CPU確定處理效率時(shí)所消耗的短時(shí)間內(nèi)并行執(zhí)行進(jìn)程,在存在輸入-輸出限制的情況下進(jìn)行處理時(shí)其效果仍然受到限制。于是,進(jìn)程38a和38b的執(zhí)行時(shí)間被分成由處理器28執(zhí)行的處理時(shí)間和輸入-輸出延遲,以便將處理時(shí)間與輸入-輸出延遲目比較。根據(jù)比較結(jié)果,當(dāng)輸入-輸出延遲較長(zhǎng)時(shí),使用單處理器。單處理器執(zhí)行圖1中的進(jìn)程38a。術(shù)語(yǔ)″輸入-輸出限制″表示當(dāng)處理數(shù)據(jù),即產(chǎn)生交換文件時(shí),使用硬盤上的虛擬存儲(chǔ)區(qū)。
(2)如果在包含系統(tǒng)10的操作系統(tǒng)32上工作的應(yīng)用系統(tǒng)是單線程程序,則也可以由單處理器執(zhí)行程序。在這種情況下,當(dāng)操作系統(tǒng)32是多線程程序時(shí),應(yīng)用程序的功能類似于多線程程序。當(dāng)多個(gè)線程由于期待施加輸入-輸出限制而沒(méi)有在應(yīng)用程序中并行執(zhí)行時(shí),操作系統(tǒng)32可以被單處理器執(zhí)行。更具體地,在本發(fā)明的程序中,選擇裝置14選擇單處理器執(zhí)行。
(3)即使適于使用多處理器的進(jìn)程38被單獨(dú)執(zhí)行,在執(zhí)行多個(gè)進(jìn)程38時(shí)處理效率仍然可能不佳。可以使用單處理器執(zhí)行這種處理。更具體地,在本發(fā)明的系統(tǒng)10中,確定裝置12確定單處理器執(zhí)行相應(yīng)進(jìn)程38a和38b的處理效率,而選擇裝置14根據(jù)確定結(jié)果選擇將單處理器用于執(zhí)行進(jìn)程。例如,即使多處理器適于執(zhí)行圖1中的進(jìn)程38a,選擇裝置14仍會(huì)選擇使用單處理器執(zhí)行進(jìn)程。
在包含本發(fā)明的系統(tǒng)10的多處理器系統(tǒng)40中,具有適于多處理器執(zhí)行的多線程程序的進(jìn)程38使用可以在硬件層次保持高速緩存相關(guān)性的多處理器28執(zhí)行并行處理。
由圖4中的2個(gè)處理器uP3和uP4處理進(jìn)程P3。在處理器uP3和uP4中針對(duì)數(shù)據(jù)訪問(wèn)產(chǎn)生高速緩存相關(guān)性協(xié)議。
最好不被多處理器執(zhí)行的進(jìn)程38被單處理器執(zhí)行。另一方面,軟件控制方法利用MMU的支持只保持其它處理器上的高速緩存相關(guān)性。當(dāng)針對(duì)用戶空間36a和36b(其中處理器uP1和uP2執(zhí)行圖4中的各個(gè)進(jìn)程P1和P2)訪問(wèn)數(shù)據(jù)時(shí),不產(chǎn)生高速緩存相關(guān)性協(xié)議。結(jié)果,高速緩存相關(guān)性協(xié)議的帶寬被壓縮,使得多處理器系統(tǒng)40的吞吐率得到改進(jìn)。
為了防止產(chǎn)生高速緩存相關(guān)性協(xié)議,當(dāng)從處理器uP2訪問(wèn)進(jìn)程P1時(shí),上述中斷裝置導(dǎo)致出現(xiàn)訪問(wèn)中斷。在出現(xiàn)中斷之后,線程被從要訪問(wèn)的處理器uP2分配到處理器uP1。
另外,MMU控制多處理器系統(tǒng)40,使得處理器可以讀/寫由進(jìn)程38執(zhí)行的數(shù)據(jù),從而禁止其它處理器讀寫數(shù)據(jù)。
如上所述,已經(jīng)描述了本發(fā)明的實(shí)施例,但是本發(fā)明不局限于這些實(shí)施例。上述說(shuō)明是根據(jù)以下假定而提供的,即高速緩存是L1(一級(jí))高速緩存,并且單處理器執(zhí)行狀態(tài)表示單處理器的執(zhí)行線程。相同的思路可以被應(yīng)用于L2高速緩存。在這種情況下,單處理器節(jié)點(diǎn)進(jìn)入執(zhí)行狀態(tài)?!鍐翁幚砥鞴?jié)點(diǎn)執(zhí)行狀態(tài)″是這樣的狀態(tài),其中屬于相同節(jié)點(diǎn)的多個(gè)處理器執(zhí)行屬于一個(gè)進(jìn)程的多個(gè)任務(wù)。
假定其中省略高速緩存相關(guān)性協(xié)議的空間是易于安裝并且具有有利效果的用戶空間,但是高速緩存相關(guān)性協(xié)議可以被應(yīng)用于一部分系統(tǒng)空間。也就是說(shuō),在系統(tǒng)空間中對(duì)使用進(jìn)行分類,并且高速緩存相關(guān)性協(xié)議被應(yīng)用于可以省略高速緩存相關(guān)性協(xié)議的部分。
本領(lǐng)域的技術(shù)人員可以想到的任何修改、變化或等同方案均應(yīng)被視作落在本發(fā)明的范圍內(nèi)。
前面已經(jīng)示出和描述了多處理器系統(tǒng)中滿足其尋求的所有目的和優(yōu)點(diǎn)的新穎系統(tǒng)和分配方法。然而在本說(shuō)明書和附圖(其中公開了本發(fā)明的優(yōu)選實(shí)施例)的基礎(chǔ)上,本領(lǐng)域的技術(shù)人員可以理解本發(fā)明的許多改變、修改、變化、組合和其它用途與應(yīng)用。所有這種不偏離本發(fā)明宗旨和范圍的改變、修改、變化和其它用途和應(yīng)用均視作被本發(fā)明所覆蓋,并且僅由后面的權(quán)利要求所限定。
權(quán)利要求
1.一種用于分配由包含多個(gè)處理器的多處理器系統(tǒng)執(zhí)行的進(jìn)程中的線程的系統(tǒng),包括當(dāng)向多個(gè)處理器中的各個(gè)處理器分配進(jìn)程中的線程時(shí)確定進(jìn)程的處理效率的裝置;和根據(jù)確定裝置的結(jié)果選擇一個(gè)處理器或多個(gè)處理器執(zhí)行該進(jìn)程的裝置。
2.如權(quán)利要求1所述的系統(tǒng),其中所述確定裝置包括將所述進(jìn)程的執(zhí)行時(shí)間分割成由處理器執(zhí)行的處理時(shí)間和輸入-輸出延遲的裝置;和將處理時(shí)間與輸入-輸出延遲相比較的裝置。
3.如權(quán)利要求1或2所述的系統(tǒng),還包括在一個(gè)處理器執(zhí)行的進(jìn)程所處理的數(shù)據(jù)被其它處理器訪問(wèn)的情況下,從多個(gè)處理器的訪問(wèn)改變成所述一個(gè)處理器的所述訪問(wèn)的裝置。
4.如權(quán)利要求3所述的系統(tǒng),還包括允許所述一個(gè)處理器讀/寫被一個(gè)處理器執(zhí)行的所述進(jìn)程所處理的數(shù)據(jù),并且禁止其它處理器讀/寫該數(shù)據(jù)的裝置。
5.一種用于分配包含多個(gè)處理器的多處理器系統(tǒng)所執(zhí)行的進(jìn)程中的線程的方法,包括的步驟有確定當(dāng)向多個(gè)處理器中的各個(gè)處理器分配進(jìn)程中的線程時(shí)進(jìn)程的處理效率;以及選擇一個(gè)處理器或多個(gè)處理器執(zhí)行進(jìn)程。
6.如權(quán)利要求5所述的方法,其中所述確定步驟包含將所述進(jìn)程的執(zhí)行時(shí)間分割成由處理器執(zhí)行的處理時(shí)間和輸入-輸出延遲,并且將處理時(shí)間與輸入-輸出延遲相比較。
7.如權(quán)利要求6所述的方法,其中在所述比較步驟中輸入-輸出延遲長(zhǎng)于處理時(shí)間,并且在所述選擇步驟中選擇一個(gè)處理器來(lái)執(zhí)行。
8.如權(quán)利要求5所述的方法,其中所述多處理器系統(tǒng)的操作系統(tǒng)包含多線程程序,多處理器系統(tǒng)執(zhí)行的應(yīng)用程序包含單線程程序,其中所述選擇步驟選擇一個(gè)處理器來(lái)執(zhí)行。
9.如權(quán)利要求5所述的方法,其中所述確定步驟確定在多個(gè)進(jìn)程中最好由多個(gè)處理器執(zhí)行各個(gè)進(jìn)程,并且所述選擇步驟在執(zhí)行多個(gè)進(jìn)程時(shí)選擇由一個(gè)處理器來(lái)執(zhí)行。
10.如權(quán)利要求5到9任何一個(gè)所述的方法,還包含在一個(gè)處理器執(zhí)行的所述進(jìn)程所處理的數(shù)據(jù)被其它處理器訪問(wèn)的情況下,將訪問(wèn)改變到一個(gè)處理器的步驟。
11.如權(quán)利要求10所述的方法,還包含讀/寫一個(gè)處理器執(zhí)行的所述進(jìn)程所處理的數(shù)據(jù),并且禁止其它處理器讀/寫該數(shù)據(jù)的步驟。
全文摘要
為了提供控制要優(yōu)化的系統(tǒng)的吞吐率的系統(tǒng)和分配方法,本發(fā)明的用于向多處理器系統(tǒng)40中多個(gè)處理器28分配進(jìn)程38中的線程的系統(tǒng)包括確定進(jìn)程的處理效率的確定裝置12,和根據(jù)確定裝置的結(jié)果選擇一個(gè)處理器或多個(gè)處理器執(zhí)行進(jìn)程的選擇裝置14。
文檔編號(hào)G06F12/08GK1489062SQ0315634
公開日2004年4月14日 申請(qǐng)日期2003年9月4日 優(yōu)先權(quán)日2002年10月11日
發(fā)明者上田真 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1