亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

進(jìn)程控制程序以及進(jìn)程控制方法

文檔序號(hào):6553970閱讀:301來源:國(guó)知局

專利名稱::進(jìn)程控制程序以及進(jìn)程控制方法
技術(shù)領(lǐng)域
:本發(fā)明涉及一種進(jìn)程控制(schedulecontrol)程序以及進(jìn)程控制方法,尤其是涉及使計(jì)算機(jī)發(fā)揮給多個(gè)處理器裝置分配所執(zhí)行的線程(thread)的處理的功能的進(jìn)程控制程序、以及給多個(gè)處理器裝置分配所執(zhí)行的線程的進(jìn)程控制方法。
背景技術(shù)
:在對(duì)應(yīng)于由多個(gè)CPU(CentralProcessingUnit:中央處理器)來執(zhí)行程序的多處理器系統(tǒng)(mult-processorsystem)的OS(OperatingSystem:操作系統(tǒng))中,將所執(zhí)行的程序分割為多個(gè)執(zhí)行單位(下面,稱之為線程),并通過OS的調(diào)度程序(Scheduler)來給各個(gè)CPU分配線程,從而執(zhí)行程序。由此,通過多個(gè)CPU來同時(shí)處理一個(gè)程序,從而能夠節(jié)約程序的處理時(shí)間,并能夠分散CPU所承受的負(fù)擔(dān)。針對(duì)每個(gè)CPU,調(diào)度程序從待執(zhí)行的線程所連接的等待隊(duì)列(下面,稱之為就緒隊(duì)列(runqueue))選出優(yōu)先級(jí)最高的線程,并使選出該線程的就緒隊(duì)列所對(duì)應(yīng)的CPU執(zhí)行該線程。另外,針對(duì)每個(gè)線程記錄執(zhí)行開始時(shí)刻。圖7是示意性地示出了以往通過調(diào)度程序來分配線程的情形的圖,(A)示出了執(zhí)行某一線程時(shí)在高速緩沖存儲(chǔ)器(cachememory)中的數(shù)據(jù),(B)是示出了經(jīng)過一定時(shí)間之后重新分配該線程時(shí)在高速緩沖存儲(chǔ)器中的數(shù)據(jù)的情形的圖。在此,示出了以下計(jì)算機(jī)的局部結(jié)構(gòu)在該計(jì)算機(jī)中,在CPU500a、500b、500c、500d上分別連接有一次高速緩沖存儲(chǔ)器(下面,稱之為一次高速緩存)501a、501b、501c、501d,而且,CPU500a和500b共用二次高速緩沖存儲(chǔ)器(下面,稱之為二次高速緩存)502a,CPU500c和500d共用二次高速緩存502b。此外,陰影部分表示數(shù)據(jù)。在圖7(A)中,CPU500a執(zhí)行線程510。此時(shí),在一次高速緩存501a以及二次高速緩存502a中,存儲(chǔ)有用于線程510中的數(shù)據(jù),該數(shù)據(jù)是例如從未圖示的主存儲(chǔ)器中讀出的。此外,線程511、512、513連接至就緒隊(duì)列上,處于待執(zhí)行的狀態(tài)。然而,在多處理器系統(tǒng)中與單處理器系統(tǒng)的情形不同,線程并非始終通過同一個(gè)CPU來執(zhí)行,而例如在一定時(shí)間中斷,并使該CPU執(zhí)行另外的線程,從而實(shí)現(xiàn)多任務(wù)(Multi-Task)。而且,例如在重新啟動(dòng)所中斷的線程510時(shí),如圖7(B)所示,調(diào)度程序通過如下的方法選擇具有連接該線程510的就緒隊(duì)列的CPU。(1)若從線程510在上一次取得了執(zhí)行權(quán)的時(shí)刻(執(zhí)行開始時(shí)刻)開始到這次連接到就緒隊(duì)列的時(shí)刻為止的經(jīng)過時(shí)間在某一定時(shí)間以內(nèi),則選擇上一次執(zhí)行了線程510的CPU500a。(2)若不在某一定時(shí)間內(nèi),則在所有的CPU500a500d中選擇負(fù)擔(dān)最小的CPU。這是因?yàn)?,若在某一定時(shí)間以內(nèi),則如圖7B所示,在上一次執(zhí)行了線程510的CPU500a所使用的高速緩存中,可能會(huì)還殘留有上一次線程510使用過的數(shù)據(jù)。通過該控制,能夠提高高速緩存命中率(cachehitratio),從而能夠提高性能。此外,根據(jù)連接至就緒隊(duì)列的線程514、515、516的數(shù)目及其優(yōu)先級(jí),決定各CPU的負(fù)擔(dān)。另外,作為在多處理器系統(tǒng)中用于減少高速緩存的未命中的技術(shù)公知有如下技術(shù)對(duì)各線程(任務(wù))在各處理器的高速緩存中所確保的區(qū)塊(Block)數(shù)目進(jìn)行計(jì)數(shù),并將其計(jì)數(shù)結(jié)果存儲(chǔ)在多個(gè)處理器所共用的存儲(chǔ)器中,并且在重新啟動(dòng)線程時(shí),基于該計(jì)數(shù)結(jié)果,使在高速緩存中具有更多區(qū)塊數(shù)目的處理器執(zhí)行該線程(例如,參照專利文獻(xiàn)l)。另外,作為用于減少二次高速緩存的未命中的技術(shù)還具有如下技術(shù)在連接有多個(gè)CPU組的多處理器系統(tǒng)中,使處理始終在特定的CPU組執(zhí)行,其中,上述CPU組共用二次高速緩存(例如,參照專利文獻(xiàn)2)。專利文獻(xiàn)l:JP特開平8-30562號(hào)公報(bào)(第00200039段,圖1圖5)專利文獻(xiàn)2:JP特開平10-143382號(hào)公報(bào)
發(fā)明內(nèi)容發(fā)明所要解決的問題然而,以往的進(jìn)程控制方法中具有如下的問題,而且在上述以往的進(jìn)程控制方法中,以從上一次的執(zhí)行開始時(shí)刻所經(jīng)過的一定時(shí)間為基準(zhǔn),向CPU分配所中斷的線程。如圖7(B)所示,根據(jù)經(jīng)過時(shí)間,有時(shí)會(huì)有這樣的情形,即,雖然在一次高速緩存501a中沒有殘留有上一次執(zhí)行線程510時(shí)所存儲(chǔ)的數(shù)據(jù),但在二次高速緩存502a中存儲(chǔ)有該數(shù)據(jù)。另外,也會(huì)有這樣的情形,g卩,雖然在二次高速緩存502a中未殘留有數(shù)據(jù),但在未圖示的三次高速緩存中殘留有數(shù)據(jù)。也就是說,越是次數(shù)高的高速緩存,即使其經(jīng)過時(shí)間更長(zhǎng),殘留有數(shù)據(jù)的可能性也越高。然而,在以往的進(jìn)程控制中,并未考慮這樣的情形,而在經(jīng)過時(shí)間不在某一定時(shí)間內(nèi)的情況下,從所有的CPU中選擇負(fù)擔(dān)最小的CPU,因此可能會(huì)浪費(fèi)殘留在高速緩存中的數(shù)據(jù),從而存在無法高效率地使用高速緩存的問題。本發(fā)明是鑒于這樣的問題而提出的,其目的在于,提供一種將線程以能夠有效地使用高速緩存的方式分配給CPU的進(jìn)程控制程序。另外,本發(fā)明的其他目的在于,提供一種將線程以能夠高效率使用高速緩存的方式分配給CPU的進(jìn)程控制方法。用于解決的問題的方法為了解決上述問題,本發(fā)明提供一種進(jìn)程控制程序,使計(jì)算機(jī)具有進(jìn)行以下處理的功能,該處理是指,給多個(gè)處理器裝置分配所要執(zhí)行的線程的處理,該進(jìn)程控制程序的特征在于,如圖1所示,使計(jì)算機(jī)作為如下裝置發(fā)揮功能線程信息存儲(chǔ)裝置l,其在執(zhí)行線程20時(shí),存儲(chǔ)執(zhí)行開始時(shí)刻以及所運(yùn)行的處理器裝置(在圖1中例如為CPU10a)的識(shí)別信息(CPU編號(hào));經(jīng)過時(shí)間計(jì)算裝置2,其在給下一次要運(yùn)行的處理器裝置(CPU10a、10b、10c、10d)分配中斷中的線程20時(shí),計(jì)算從執(zhí)行開始時(shí)刻起的經(jīng)過時(shí)間t;線程分配裝置3,其對(duì)于處理器裝置(CPU10a、10b、10c、10d)所使用的高速緩沖存儲(chǔ)器(一次高速緩存lla、llb、llc、lld、二次高速緩存12a、12b、三次高速緩存13),若其次數(shù)越高就設(shè)定越大的時(shí)間參數(shù)Tl、T2、T3(T1<T2<T3),而且,在經(jīng)過時(shí)間t小對(duì)n(n為大于等于2的自然數(shù))次高速緩沖存儲(chǔ)器所設(shè)定的時(shí)間參數(shù)且大于等于對(duì)(n-l)次高速緩沖存儲(chǔ)器所設(shè)定的時(shí)間參數(shù)的情況下,在上一次所運(yùn)行的處理器裝置(CPU10a)以及與上一次所運(yùn)行的處理器裝置(CPU10a)—起共用n次高速緩沖存儲(chǔ)器的處理器裝置中,給負(fù)擔(dān)最小的處理器裝置分配線程20。若采用上述結(jié)構(gòu),則在執(zhí)行線程20時(shí),線程信息存儲(chǔ)裝置1存儲(chǔ)執(zhí)行開始時(shí)刻以及所運(yùn)行的處理器裝置(在圖1中例如為CPU10a)的識(shí)別信息(CPU編號(hào)),在給下一次要運(yùn)行的處理器裝置(CPU10a、10b、10c、10d)分配中斷中的線程20時(shí),經(jīng)過時(shí)間計(jì)算裝置2計(jì)算從執(zhí)行開始時(shí)刻起的經(jīng)過時(shí)間t,線程分配裝置3對(duì)于處理器裝置(CPU10a、10b、10c、10d)所使用的高速緩沖存儲(chǔ)器(一次高速緩存lla、llb、llc、lld、二次高速緩存12a、12b、三次高速緩存13),若其次數(shù)越高就設(shè)定越大的時(shí)間參數(shù)(T1<T2<T3),并且,在經(jīng)過時(shí)間t小于對(duì)n(n為大于等于2的自然數(shù))次高速緩沖存儲(chǔ)器所設(shè)定的時(shí)間參數(shù)、且大于等于對(duì)(n-l)次高速緩沖存儲(chǔ)器所設(shè)定的時(shí)間參數(shù)的情況下,在上一次所運(yùn)行的處理器裝置(CPU10a)以及與上一次所運(yùn)行的處理器裝置(CPU10a)—起共用n次高速緩沖存儲(chǔ)器的處理器裝置中,給負(fù)擔(dān)最小的處理器裝置分配線程20。發(fā)明的效果本發(fā)明在執(zhí)行線程時(shí),存儲(chǔ)執(zhí)行開始時(shí)刻以及所運(yùn)行的處理器裝置的識(shí)別信息,在給下一次要運(yùn)行的處理器裝置分配中斷中的線程時(shí),計(jì)算從執(zhí)行開始時(shí)刻起的經(jīng)過時(shí)間,并對(duì)于處理器裝置所使用的高速緩存,若其次數(shù)越高就設(shè)定越大的時(shí)間參數(shù),并且,在經(jīng)過時(shí)間小于對(duì)n(n為大于等于2的自然數(shù))次高速緩存所設(shè)定的時(shí)間參數(shù)、且大于等于對(duì)(n-l)次高速緩存所設(shè)定的時(shí)間參數(shù)的情況下,在上一次所運(yùn)行的處理器裝置以及與上一次所運(yùn)行的處理器裝置一起共用n次高速緩存的處理器裝置中,給負(fù)擔(dān)最小的處理器裝置分配線程,因此,根據(jù)經(jīng)過時(shí)間,能夠選擇使用著殘留有上一次執(zhí)行時(shí)所存儲(chǔ)的數(shù)據(jù)的可能性高的高速緩存的處理器裝置而作為中斷中的線程的分配對(duì)象。由此,高速緩存的命中率變高,從而能夠高效率地使用高速緩存。另外,由于給共用高速緩存的處理器裝置中負(fù)擔(dān)最小的處理器裝置進(jìn)行分配的處理,因此,能夠在分配中斷中的線程的同時(shí)進(jìn)行負(fù)擔(dān)分散處理。由此,能夠防止以下問題,SP,由于分配線程后進(jìn)行負(fù)擔(dān)分散處理,因此存儲(chǔ)在高速緩存中的線程數(shù)據(jù)被擠出,從而高速緩存命中率下降。本發(fā)明的上述以及其他目的、特征以及優(yōu)點(diǎn),相信通過所附的附圖以及相關(guān)的以下內(nèi)容會(huì)變得更加明確,其中,上述所附的附圖以及以下內(nèi)容表示作為本發(fā)明例子的最佳實(shí)施方式。圖1是說明用于分配多個(gè)CPU所執(zhí)行的線程的進(jìn)程控制的概略的圖。圖2是執(zhí)行本實(shí)施方式的進(jìn)程控制的計(jì)算機(jī)的一例的硬件結(jié)構(gòu)圖。圖3是示出了硬件結(jié)構(gòu)信息的圖。圖4是示意性地示出了本實(shí)施方式的進(jìn)程控制的OS功能的圖。圖5是說明執(zhí)行線程時(shí)的處理流程的流程圖。圖6是用于說明將中斷中的線程連接到CPU中的其中之一的就緒隊(duì)列上的處理流程的圖。圖7是示意性地示出了通過以往的調(diào)度程序分配線程的情形的圖,其中,(A)示出了執(zhí)行某一線程時(shí)在高速緩沖存儲(chǔ)器中的數(shù)據(jù),(B)是示出了經(jīng)過了一定時(shí)間之后重新分配該線程時(shí)在高速緩沖存儲(chǔ)器中的數(shù)據(jù)情形的圖。附圖標(biāo)記的說明1線程信息存儲(chǔ)裝置2經(jīng)過時(shí)間計(jì)算裝置3線程分配裝置10a、10b、10c、10dCPUlla、llb、llc、lld—次高速緩存12a、12b二次高速緩存13三高速緩存20、21、22、23、24、25、26線程Tl、T2、T3時(shí)間參數(shù)、t經(jīng)過時(shí)間具體實(shí)施方式下面,參照附圖,具體說明本發(fā)明的實(shí)施方式。首先,說明一下本發(fā)明的實(shí)施方式的概略。圖1是用于說明進(jìn)程控制的概略的圖,該進(jìn)程控制用于分配多個(gè)CPU所執(zhí)行的線程。此外,在此舉例說明在以下計(jì)算機(jī)中的進(jìn)程控制,在該計(jì)算機(jī)中,在多個(gè)CPU10a、10b、10c、10d上分別連接有一次高速緩存lla、llb、llc、lld,而且,CPU10a和10b共用二次高速緩存12a,而CPU10c和10d共用二次高速緩存12b,還有,CPU10a10d共用三次高速緩存13。另外,示意性地示出了各CPU10a10d所執(zhí)行的線程20、21、22、23、24、25、26。用于分配多個(gè)CPU10a10d所執(zhí)行的線程的進(jìn)程控制是,通過線程信息存儲(chǔ)裝置l、經(jīng)過時(shí)間計(jì)算裝置2、線程分配裝置3來執(zhí)行的。下面,說明一下各處理裝置的功能。在執(zhí)行線程2026的每一個(gè)時(shí),線程信息存儲(chǔ)裝置1存儲(chǔ)執(zhí)行開始時(shí)刻以及所運(yùn)行的CPU10a10d的識(shí)別信息(下面,稱之為CPU編號(hào))。在將中斷中的線程(例如為線程20)分配給下一次執(zhí)行該線程的CPU10a10d時(shí),經(jīng)過時(shí)間計(jì)算裝置2計(jì)算從存儲(chǔ)在線程信息存儲(chǔ)裝置1中的執(zhí)行開始時(shí)刻起的經(jīng)過時(shí)間t。線程分配裝置3用于給CPU10a10d分配線程2026。此時(shí),對(duì)于CPU10a10d所使用的高速緩沖存儲(chǔ)器(一次高速緩存lla、llb、llc、lld、二次高速緩存12a、12b、三次高速緩存13),以次數(shù)越高就設(shè)定越大的時(shí)間參數(shù)的方式設(shè)定時(shí)間參數(shù)Tl、T2、T3(T1<T2<T3)。以基于殘留有上一次執(zhí)行中斷中的線程時(shí)所使用的數(shù)據(jù)的可能性的時(shí)間,設(shè)定該時(shí)間參數(shù)。由于越是次數(shù)高的高速緩存容量越大,所以即使經(jīng)過時(shí)間t長(zhǎng),殘留有數(shù)據(jù)的可能性也會(huì)很高。因此,若次數(shù)越高,就設(shè)定越大的時(shí)間參數(shù)。具體而言,根據(jù)高速緩存的容量以及基準(zhǔn)值(Benchmark)等來決定時(shí)間參數(shù)。而且,線程分配裝置3的特征在于,在中斷中的線程的經(jīng)過時(shí)間t,小于設(shè)定在n次(n為大于等于2的自然數(shù))高速緩存中的時(shí)間參數(shù),而且大于等于設(shè)定在(n-l)次高速緩存中的時(shí)間參數(shù)的情況下,在上一次所運(yùn)行的CPU、以及與上一次所運(yùn)行的CPU—起共用n次高速緩存的CPU中,給負(fù)擔(dān)最小的CPU分配中斷中的線程。下面,以將中斷中的線程20重新分配給CPU10a10d中的其中之一的情形為例,說明一下本實(shí)施方式的進(jìn)程控制方法的概略。在將中斷中的線程20分配給CPU10a10d中的其中之一時(shí),經(jīng)過時(shí)間計(jì)算裝置2參照存儲(chǔ)于線程信息存儲(chǔ)裝置1中的上一次執(zhí)行線程20時(shí)的執(zhí)行開始時(shí)刻,計(jì)算到當(dāng)前時(shí)刻為止的經(jīng)過時(shí)間t。線程分配裝置3基于計(jì)算出的經(jīng)過時(shí)間t,對(duì)線程20進(jìn)行如下的分配。首先,在經(jīng)過時(shí)間t為t<Tl的情況下,參照線程信息存儲(chǔ)裝置1所存儲(chǔ)的CPU編號(hào),選擇上一次執(zhí)行了線程20的CPU10a,重新分配線程20(連接至CPU10a的就緒隊(duì)列)。在T1《KT2的情況下,在上一次所運(yùn)行的CPU10a、以及與CPU10a—起共用二次高速緩存12a的CPU10b中,給負(fù)擔(dān)小的CPU分配線程20。在圖1所示的情況下,CPU10a的就緒隊(duì)列中存在三個(gè)線程21、22、23。另一方面,CPU10b的就緒隊(duì)列中存在兩個(gè)線程24、26。因此,線程分配裝置3將線程20連接至負(fù)擔(dān)小的CPU10b的就緒隊(duì)列。在T2《KT3的情況下,在上一次所運(yùn)行的CPU10a、以及與CPU10a—起共用三次高速緩存13的CPU10b、10c、10d中,給負(fù)擔(dān)最小的CPU分配線程20。在圖1所示的情況下,CPU10c中不存在線程,而CPU10d中存在一個(gè)線程26,因此將線程20分配給CPU10c。此外,在t》T3的情況下,與以往同樣,在所有的CPU10a、10b、10c、10d中,給負(fù)擔(dān)最小的CPU分配線程20。在圖l所示的情況下,被選擇的是CPU10c,從而給CPU10c分配線程20。若通過執(zhí)行上述方法,則根據(jù)經(jīng)過時(shí)間,能夠選擇使用著殘留有上一次執(zhí)行時(shí)所存儲(chǔ)的數(shù)據(jù)的可能性高的高速緩存的CPU10a10d來作為中斷中的線程20的分配對(duì)象,因此高速緩存的命中率變高,從而能夠有效地使用高速緩存。另外,由于實(shí)行給共用高速緩存的CPU10a10d中負(fù)擔(dān)最小的CPU進(jìn)行分配的處理,因此,能夠在分配線程20的同時(shí)進(jìn)行負(fù)擔(dān)分散處理。由此,能夠防止以下問題,S卩,由于分配線程后進(jìn)行負(fù)擔(dān)分散處理,因此存儲(chǔ)在高速緩存中的線程數(shù)據(jù)被擠出,從而高速緩存命中率下降。接著,具體說明一下實(shí)施方式。圖2是執(zhí)行本實(shí)施方式的進(jìn)程控制的計(jì)算機(jī)的一例的硬件結(jié)構(gòu)圖。在此所示出的計(jì)算機(jī)30例如為UNIX(注冊(cè)商標(biāo))的服務(wù)器。計(jì)算機(jī)30由分別內(nèi)置有一次高速緩存的8個(gè)CPU31a、31b、31c、31d、31e、31f、31g、31h、二次高速緩存32a、32b、32c、32d、三次高速緩存33a、33b、以及經(jīng)由三次高速緩存33a、33b和系統(tǒng)總線34來連接的存儲(chǔ)器35、1/036等構(gòu)成。另外,二次高速緩存32a被CPU31a、31b共用,二次高速緩存32b被CPU31c、31d共用,二次高速緩存32c被CPU31e、31f共用,二次高速緩存32d被CPU31g、31h共用。進(jìn)而,三次高速緩存33a被CPU31a、31b、31c、31d共用,三次高速緩存33b被CPU31e、31f、31g、31h共用。通過如下的固件(firmware)來記述這種硬件結(jié)構(gòu)信息。圖3是示出了硬件結(jié)構(gòu)信息的圖。例如,針對(duì)CPU(cpunode),記述有各自的識(shí)別信息"id:",進(jìn)而,按照高速緩存的次數(shù)記述該CPU所使用的高速緩存的識(shí)別信息。例如,圖2中的CPU31a的識(shí)別信息被記述為"id=0",內(nèi)置于CPU31a中的一次高速緩存被記述為"level1cacheid:O",CPU31a所使用的二次高速緩存32a被記述為"level2cacheid:O",三次高速緩存33a被記述為"level3cacheid:O"。另夕卜,例如CPU31h的識(shí)別信息被記述為"id=7",內(nèi)置于CPU31h中的一次高速緩存的識(shí)別信息被記述為"level1cacheid:7",CPU31h所使用的二次高速緩存32d的識(shí)別信息被記述為"level2cacheid:3",三次高速緩存33b的識(shí)別信息被記述為"level3cacheid:1"。另外,在硬件結(jié)構(gòu)信息中還包括用于表示省略圖示的存儲(chǔ)器35以及1/036等結(jié)構(gòu)的記述。將這種硬件結(jié)構(gòu)信息提供給OS。圖4是示意性地示出了本實(shí)施方式的進(jìn)程控制的OS功能的圖。根據(jù)來自固件的硬件結(jié)構(gòu)信息,生成CPU管理結(jié)構(gòu)體40-1、40-2、40-3、、40-8,這些CPU管理結(jié)構(gòu)體表示圖2中的CPU31a31h的信息。通過線程管理結(jié)構(gòu)體來示出線程41,并且存儲(chǔ)該線程41的執(zhí)行開始時(shí)刻"disp一time"和執(zhí)行了該線程41的CPU編號(hào)"cpu"。通過調(diào)度程序42,將線程41分配給CPU31a31h中的其中之一。OS的調(diào)度程序42參照線程管理結(jié)構(gòu)體,基于經(jīng)過時(shí)間選擇要分配中斷中的線程的CPU。另外,如上所述那樣,基于高速緩存的次數(shù),設(shè)定時(shí)間參數(shù)T1、T2、T3。通過具有這種功能的OS,在具有圖2所示的硬件的計(jì)算機(jī)30上能夠?qū)崿F(xiàn)圖1所示的各裝置。下面,利用圖2、圖3、圖4,說明一下本實(shí)施方式的進(jìn)程控制方法。首先,說明一下執(zhí)行線程時(shí)的處理。圖5是用于說明執(zhí)行線程時(shí)的處理流程的流程圖。線程執(zhí)行處理一開始,則調(diào)度程序42確認(rèn)各CPU31a31h的就緒隊(duì)列,并確認(rèn)等待中的線程41的存在。在存在線程41的情況下,進(jìn)入到步驟S2的處理,而在不存在線程41的情況下,反復(fù)執(zhí)行步驟S1的處理,直到線程41出現(xiàn)在就緒隊(duì)列中為止(步驟S1)。在就緒隊(duì)列中存在有線程41的情況下,調(diào)度程序42從就緒隊(duì)列中選取線程41,并將其設(shè)定為執(zhí)行狀態(tài)。下面,如圖4所示,以連接在可由CPU管理結(jié)構(gòu)體40-2來示出的CPU31b的就緒隊(duì)列中的線程41a為例進(jìn)行說明。如圖4中的箭頭A所示,從可由CPU管理結(jié)構(gòu)體40-2示出的CPU31b的就緒隊(duì)列中選取線程41a,從而使線程41a取得在CPU31b上的執(zhí)行權(quán)(步驟S2)。進(jìn)而,向取得了執(zhí)行權(quán)的線程41a的線程管理結(jié)構(gòu)體中存儲(chǔ)作為執(zhí)行開始時(shí)刻"disp—time"的當(dāng)前時(shí)刻;要運(yùn)行的CPU31b的CPU編號(hào)(例如為CPU31b的識(shí)別信息"id=l")(步驟S3)。然后,CPU31b執(zhí)行取得了執(zhí)行權(quán)的線程41a(步驟S4)。這種線程41a處理一結(jié)束就清除,但在經(jīng)由1/036而等待來自外部設(shè)備的響應(yīng)或等待另外線程獲取中的專用資源的情況下,或者,在線程41a的處理超過了一定時(shí)間時(shí)等,可能會(huì)在處理結(jié)束之前中斷(圖4中的箭頭B)。在此情況下,調(diào)度程序42—旦使線程41a處于中斷狀態(tài),就將執(zhí)行權(quán)賦予給位于CPU31b的就緒隊(duì)列中的另外線程。在經(jīng)由1/036而接受到來自外部設(shè)備的響應(yīng)時(shí),或在另外線程獲取中的專用資源被釋放時(shí),除此之外,在線程41a的處理超過了一定時(shí)間一旦將執(zhí)行權(quán)轉(zhuǎn)讓給另外線程之后等,若要重新開始執(zhí)行線程41,則進(jìn)行重新給CPU31a31h中的其中之一分配線程41a的處理。圖6是用于說明將中斷中的線程連接到CPU中的其中之一的就緒隊(duì)列上的處理流程的圖。此外,下面也利用圖4中所示的線程41a來進(jìn)行說明。首先,調(diào)度程序42根據(jù)記錄在中斷中的線程41a的線程管理結(jié)構(gòu)體中的執(zhí)行開始時(shí)刻"disp一time"和當(dāng)前時(shí)刻之差,計(jì)算經(jīng)過時(shí)間t(步驟S5)。然后,在經(jīng)過時(shí)間t為KTl的情況下,選擇與上一次相同的CPU31b(步驟S6)。在Tl《KT2的情況下,從與上一次運(yùn)行的CPU3lb共用二次高速緩存32a的CPU31a、31b中選擇負(fù)擔(dān)最小的CPU。在圖4的例子中,連接在可由CPU管理結(jié)構(gòu)體40-l來示出的CPU31a的就緒隊(duì)列上的線程41的數(shù)目,大于連接在可由CPU管理結(jié)構(gòu)體40-2來示出的CPU31b的就緒隊(duì)列上的線程41的數(shù)目,而且負(fù)擔(dān)也大,因此選擇CPU31b(步驟S7)。在T2《t<T3的情況下,從與上一次運(yùn)行的CPU31b共用三次高速緩存33a的CPU31a、31b、31c、31d中選擇負(fù)擔(dān)最小的CPU。在圖4的例子中,示出了選擇可由CPU管理結(jié)構(gòu)體40-3來示出的CPU31c的情形(步驟S8)。在t^T3的情況下,從所有CPU31a31h中選擇負(fù)擔(dān)最小的CPU。在圖4的例子中,示出了選擇可由CPU管理結(jié)構(gòu)體40-8來示出的CPU31h的情形(步驟S9)。最后,調(diào)度程序42將線程41a連接至所選擇的CPU的就緒隊(duì)列上(步驟SIO)。如上所述,若采用本實(shí)施方式的進(jìn)程控制方法,則根據(jù)經(jīng)過時(shí)間,能夠選擇使用著殘留有上一次執(zhí)行時(shí)所存儲(chǔ)的數(shù)據(jù)的可能性高的高速緩存的CPU而作為中斷中的線程的分配對(duì)象,因此高速緩存的命中率變高,從而能夠有高效地使用高速緩存。另外,由于給共用高速緩存的CPU中負(fù)擔(dān)最小的CPU進(jìn)行分配的處理,因此,能夠在分配中斷中的線程的同時(shí)進(jìn)行負(fù)擔(dān)分散處理。由此,能夠防止這樣的問題,目卩,由于在分配線程后進(jìn)行負(fù)擔(dān)分散處理,存儲(chǔ)在高速緩存中的線程數(shù)據(jù)被擠出,從而高速緩存命中率下降。此外,如上所述那樣,在上述處理內(nèi)容可以通過計(jì)算機(jī)來實(shí)現(xiàn)。在該情況下,提供記述了計(jì)算機(jī)必備功能的處理內(nèi)容的程序。通過在計(jì)算機(jī)上執(zhí)行該程序,能夠在計(jì)算機(jī)上實(shí)現(xiàn)上述處理功能。能夠?qū)⒂浭隽颂幚韮?nèi)容的程序存儲(chǔ)在計(jì)算機(jī)可讀取的記錄介質(zhì)中。作為計(jì)算機(jī)可讀取的記錄介質(zhì)都包括磁記錄裝置、光盤、光磁記錄介質(zhì)、半導(dǎo)體存儲(chǔ)器等。磁記錄裝置包括硬盤裝置(HDD)、軟盤(FD)、磁帶等。光盤包括DVD(DigitalVersatileDisc:數(shù)字通用光盤)、DVD-RAM、CD-ROM、CD-R(Recordable:—次寫入)/RW(Rewritable:多次寫入)等。光磁記錄介質(zhì)包括MO(Magneto-Opticaldisk:磁光盤)等。在使程序流通的情況下,例如銷售記錄有該程序的DVD、CD-ROM等便攜式記錄介質(zhì)。另外,也可以將程序存儲(chǔ)在服務(wù)器的存儲(chǔ)裝置中,并通過網(wǎng)絡(luò)將該程序從服務(wù)器傳輸?shù)搅硗獾挠?jì)算機(jī)中。執(zhí)行程序的計(jì)算機(jī)例如將記錄于便攜式記錄介質(zhì)中的程序或者從服務(wù)器所接收的程序,存儲(chǔ)在自身的存儲(chǔ)裝置中。然后,計(jì)算機(jī)從自身的存儲(chǔ)裝置中讀取程序,并按照程序進(jìn)行處理。此外,計(jì)算機(jī)也可以從便攜式記錄介質(zhì)直接讀取程序,并按照該程序進(jìn)行處理。另外,計(jì)算機(jī)也可以每當(dāng)從服務(wù)器接收到程序時(shí),逐次按照所接收的程序來進(jìn)行處理。上面基于實(shí)施例說明本發(fā)明,但本發(fā)明并不限定于上述內(nèi)容,而能夠在后述技術(shù)方案的記載范圍內(nèi)進(jìn)行各種各樣的變形。例如,在上面舉例說明了只具有三次以下高速緩存的計(jì)算機(jī),但也同樣適用于具有三次以上高速緩存的計(jì)算機(jī)中。在上述內(nèi)容中只示出了本發(fā)明的原理。進(jìn)而,本領(lǐng)域的技術(shù)人員能夠進(jìn)行多種變形以及變更,因此本發(fā)明并不僅限定于在上面示出并說明的正確結(jié)構(gòu)以及應(yīng)用例,而能夠?qū)⑺鶎?duì)應(yīng)的所有變形例以及均等方案均視為基于后述的技術(shù)方案及其均等方案的本發(fā)明的范圍。權(quán)利要求1.一種進(jìn)程控制程序,使計(jì)算機(jī)具有進(jìn)行以下處理的功能,該處理是指,給多個(gè)處理器裝置分配所要執(zhí)行的線程的處理,該進(jìn)程控制程序的特征在于,使計(jì)算機(jī)作為如下裝置發(fā)揮功能線程信息存儲(chǔ)裝置,其在執(zhí)行線程時(shí),存儲(chǔ)執(zhí)行開始時(shí)刻以及所運(yùn)行的處理器裝置的識(shí)別信息;經(jīng)過時(shí)間計(jì)算裝置,其在給下一次要運(yùn)行的處理器裝置分配中斷中的上述線程時(shí),計(jì)算從上述執(zhí)行開始時(shí)刻起的經(jīng)過時(shí)間;線程分配裝置,其對(duì)于上述處理器裝置所使用的高速緩沖存儲(chǔ)器,若其次數(shù)越高就設(shè)定越大的時(shí)間參數(shù),而且,在上述經(jīng)過時(shí)間小于對(duì)n次高速緩沖存儲(chǔ)器所設(shè)定的上述時(shí)間參數(shù)、且大于等于對(duì)(n-1)次高速緩沖存儲(chǔ)器所設(shè)定的上述時(shí)間參數(shù)的情況下,在上一次所運(yùn)行的處理器裝置以及與上述上一次所運(yùn)行的處理器裝置一起共用上述n次高速緩沖存儲(chǔ)器的處理器裝置中,給負(fù)擔(dān)最小的處理器裝置分配上述線程,其中,上述n為大于等于2的自然數(shù)。2.如權(quán)利要求1所述的進(jìn)程控制程序,其特征在于,上述時(shí)間參數(shù)是根據(jù)上述高速緩沖存儲(chǔ)器的容量來設(shè)定的。3.—種進(jìn)程控制方法,給多個(gè)處理器裝置分配所要執(zhí)行的線程,其特征在于,包括在執(zhí)行線程時(shí),在線程信息存儲(chǔ)裝置中存儲(chǔ)執(zhí)行開始時(shí)刻以及所運(yùn)行的處理器裝置的識(shí)別信息的步驟;在給下一次要運(yùn)行的處理器裝置分配中斷中的上述線程時(shí),通過經(jīng)過時(shí)間計(jì)算裝置計(jì)算從上述執(zhí)行開始時(shí)刻起的經(jīng)過時(shí)間的步驟;通過線程分配裝置,對(duì)于上述處理器裝置所使用的高速緩沖存儲(chǔ)器,若其次數(shù)越高就設(shè)定越大的時(shí)間參數(shù),并且,在上述經(jīng)過時(shí)間小于對(duì)n次高速緩沖存儲(chǔ)器所設(shè)定的上述時(shí)間參數(shù)、且大于等于對(duì)(n-l)次高速緩沖存儲(chǔ)器所設(shè)定的上述時(shí)間參數(shù)的情況下,在上一次所運(yùn)行的處理器裝置以及與上述上一次所運(yùn)行的處理器裝置一起共用上述n次高速緩沖存儲(chǔ)器的處理器裝置中,給負(fù)擔(dān)最小的處理器裝置分配上述線程的步驟,其中,上述n為大于等于2的自然數(shù)。4.如權(quán)利要求3所述的進(jìn)程控制方法,其特征在于,上述時(shí)間參數(shù)是根據(jù)上述高速緩沖存儲(chǔ)器的容量來設(shè)定的。全文摘要以能夠高效率地使用高速緩存的方式向CPU分配線程。在執(zhí)行線程(20)時(shí),存儲(chǔ)執(zhí)行開始時(shí)刻以及所運(yùn)行的CPU(10a)的CPU編號(hào),在給下一次要運(yùn)行的CPU(10a~10d)分配中斷中的線程(20)時(shí),計(jì)算從執(zhí)行開始時(shí)刻起的經(jīng)過時(shí)間t,對(duì)于CPU(10a~10d)所使用的高速緩存,若其次數(shù)越高就設(shè)定越大的時(shí)間參數(shù)(T1、T2、T3)(T1<T2<T3),并且,在經(jīng)過時(shí)間t小于n(n為大于等于2的自然數(shù))次高速緩存中所設(shè)定的時(shí)間參數(shù)且大于等于(n-1)次高速緩存中所設(shè)定的時(shí)間參數(shù)的情況下,在與上一次所運(yùn)行的CPU(10a)一起共用n次高速緩存的CPU(10a~10d)中,給負(fù)擔(dān)最小的CPU分配線程(20)。文檔編號(hào)G06F9/46GK101238442SQ20058005128公開日2008年8月6日申請(qǐng)日期2005年8月9日優(yōu)先權(quán)日2005年8月9日發(fā)明者中村和浩申請(qǐng)人:富士通株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1