計(jì)算環(huán)境內(nèi)的資源的管理的制作方法
【專利摘要】例如通過(guò)硬件控制器控制從要在線程的執(zhí)行中使用的一個(gè)或多個(gè)資源池的資源分配來(lái)管理計(jì)算環(huán)境中的資源。所述控制包括:基于池中的資源的當(dāng)前使用相對(duì)于關(guān)聯(lián)的資源使用閾值而有條件地從所述池向計(jì)算環(huán)境的一個(gè)或多個(gè)低優(yōu)先級(jí)線程分配資源。該管理還包括:監(jiān)視從所述池向計(jì)算環(huán)境的一個(gè)或多個(gè)高優(yōu)先級(jí)線程的資源分配,并且基于所述監(jiān)視,動(dòng)態(tài)地調(diào)整在從所述池向低優(yōu)先級(jí)線程分配資源中使用的資源使用閾值。
【專利說(shuō)明】計(jì)算環(huán)境內(nèi)的資源的管理
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的方面一般涉及計(jì)算環(huán)境內(nèi)的處理,并具體涉及促進(jìn)對(duì)計(jì)算環(huán)境內(nèi)要在線程的執(zhí)行中使用的資源的管理。
【背景技術(shù)】
[0002]線程通常存在于進(jìn)程內(nèi),并且進(jìn)程可以具有共享資源(諸如存儲(chǔ)器)的多個(gè)線程。線程被認(rèn)為是操作系統(tǒng)可以調(diào)度的最小處理單位。一個(gè)線程可以在沒(méi)有其它線程在處理器上執(zhí)行的情況下在該處理器上執(zhí)行,或者可以在具有其它線程的情況下在處理器上執(zhí)行。在該線程僅是處理器上執(zhí)行的唯一線程的情況下,處理器被稱為在單線程模式中執(zhí)行。然而,在該線程與其它線程一起執(zhí)行的情況下,處理器被稱為在同時(shí)多線程(SMT)模式中。
[0003]在同時(shí)多線程模式中,硬件資源在機(jī)器上執(zhí)行的多個(gè)軟件線程之間共享。每個(gè)線程表現(xiàn)為具有其自己的完整體系硬件集。此外,在超標(biāo)量處理器中,具有多個(gè)執(zhí)行管線是常見(jiàn)的,這些執(zhí)行管線可以在正被分配到硬件中的線程之間共享。雖然SMT提供了硬件的高效性,從而允許多個(gè)線程快速共享可用的執(zhí)行資源,但其存在單個(gè)線程的性能成本。處理器上唯一的線程比該線程與另一線程共享資源執(zhí)行得更快是常見(jiàn)的。這是因?yàn)樵赟MT中線程間可能存在資源競(jìng)爭(zhēng)問(wèn)題。
【發(fā)明內(nèi)容】
[0004]通過(guò)提供一種用于促進(jìn)計(jì)算環(huán)境中的資源管理的計(jì)算機(jī)系統(tǒng)來(lái)克服現(xiàn)有技術(shù)的缺點(diǎn)并提供附加的優(yōu)點(diǎn)。該計(jì)算機(jī)系統(tǒng)包括存儲(chǔ)器和與該存儲(chǔ)器通信的處理器,其中該計(jì)算機(jī)系統(tǒng)被配置為執(zhí)行方法。該方法包括:例如通過(guò)硬件控制器,基于一個(gè)資源池中的資源使用相對(duì)于與該一個(gè)池關(guān)聯(lián)的資源使用閾值的關(guān)系,控制從要在線程的執(zhí)行中使用的至少一個(gè)資源池向計(jì)算環(huán)境的至少一個(gè)低優(yōu)先級(jí)線程的有條件資源分配。
[0005]這里還描述和主張了與本發(fā)明的一個(gè)或多個(gè)方面相關(guān)的方法和計(jì)算機(jī)程序產(chǎn)品。此外,這里還描述并可以主張與本發(fā)明的一個(gè)或多個(gè)方面相關(guān)的服務(wù)。
[0006]通過(guò)本發(fā)明的一個(gè)或多個(gè)方面的技術(shù)實(shí)現(xiàn)附加特征和優(yōu)點(diǎn)。本發(fā)明的其它實(shí)施例和方面在這里被詳細(xì)描述,并被認(rèn)為是所主張的發(fā)明的一部分。
【專利附圖】
【附圖說(shuō)明】
[0007]在說(shuō)明書結(jié)尾處的權(quán)利要求中作為示例特別指出并主張了本發(fā)明的一個(gè)或多個(gè)方面。根據(jù)下面結(jié)合附圖的詳細(xì)說(shuō)明,本發(fā)明的一個(gè)或多個(gè)方面的前述和其它目的、特征和優(yōu)點(diǎn)將變得明顯,其中:
[0008]圖1A描述了計(jì)算環(huán)境的一個(gè)實(shí)施例,以并入和使用本發(fā)明的一個(gè)或多個(gè)方面;
[0009]圖1B描述了根據(jù)本發(fā)明的方面的、圖1A的中央處理器的進(jìn)一步的細(xì)節(jié);
[0010]圖2描述了根據(jù)本發(fā)明的一個(gè)或多個(gè)方面的包括一個(gè)或多個(gè)處理器的計(jì)算環(huán)境的另一實(shí)施例,該一個(gè)或多個(gè)處理器使用一個(gè)或多個(gè)資源池中的資源執(zhí)行多個(gè)線程,所述資源的分配被控制;
[0011]圖3描述了根據(jù)本發(fā)明的一個(gè)或多個(gè)方面的、要在線程的執(zhí)行中使用的多個(gè)資源池的一個(gè)實(shí)施例,并示出了與所述池關(guān)聯(lián)的資源使用閾值,其用于在分別管理所述池中的資源的分配中使用;
[0012]圖4A描述了根據(jù)本發(fā)明的一個(gè)或多個(gè)方面的、用于管理從在線程的執(zhí)行中使用的一個(gè)或多個(gè)資源池的資源分配的邏輯的一個(gè)實(shí)施例;
[0013]圖4B描述了根據(jù)本發(fā)明的一個(gè)或多個(gè)方面的、用于調(diào)整從一個(gè)或多個(gè)資源池中的一個(gè)池向計(jì)算環(huán)境的一個(gè)或多個(gè)低優(yōu)先級(jí)線程的資源分配的邏輯的一個(gè)實(shí)施例;
[0014]圖4C描述了根據(jù)本發(fā)明的一個(gè)方面的、用于動(dòng)態(tài)調(diào)整在觸發(fā)對(duì)向一個(gè)或多個(gè)低優(yōu)先級(jí)線程的資源分配的調(diào)整中使用的資源使用閾值的邏輯的一個(gè)實(shí)施例;以及
[0015]圖5描述了并入了本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算機(jī)程序產(chǎn)品的一個(gè)實(shí)施例。
【具體實(shí)施方式】
[0016]注意,如這里所使用的,硬件資源的分配發(fā)生在用于特定線程的指令被分配(dispatch)時(shí)。因此,如下面所使用的,資源的分配與指令的分配被作為同義詞而使用。所分配的資源的類型基于所分配的指令的類型,并且每種類型的資源被認(rèn)為存在于該資源類型的資源池中。
[0017]參照?qǐng)D1描述了并入和使用本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的一個(gè)實(shí)施例。計(jì)算環(huán)境100例如基于紐約Armonk的國(guó)際商業(yè)機(jī)器公司提供的z/Architecture?。IBM
的出版物 “z/Architecture-Principles of Operation”(IBM? 出版 N0.SA22-7832-08,第9版,2010年8月)中描述了 z/Arc hi lecture?,通過(guò)引用將其全文合并于此。在一個(gè)示例中,基于z/Architecture?的計(jì)算環(huán)境包括紐約Armonk的國(guó)際商業(yè)機(jī)器公司提供的System z?服務(wù)器。IBM?、z/Arcliitecture?湘System z?以及下面提及的Z/0S?,是紐約Armonk的國(guó)際商業(yè)機(jī)器公司的注冊(cè)商標(biāo)。這里使用的其它名稱可能是國(guó)際商業(yè)機(jī)器公司或其它公司的注冊(cè)商標(biāo)、商標(biāo)或產(chǎn)品名稱。
[0018]作為一個(gè)示例,計(jì)算環(huán)境100包括中央處理器綜合體(complex) (CPC) 102,其連接到輸入/輸出(I/O)子系統(tǒng)120。中央處理器綜合體102例如包括一個(gè)或多個(gè)分區(qū)104(例如,邏輯分區(qū)LP1-LPN)、一個(gè)或多個(gè)中央處理器106、系統(tǒng)管理器(hypervisor) 108 (例如,邏輯分區(qū)管理器)、以及系統(tǒng)控制器110,下面將對(duì)每個(gè)進(jìn)行描述。
[0019]每個(gè)邏輯分區(qū)104能夠作為獨(dú)立系統(tǒng)而工作。即,每個(gè)邏輯分區(qū)可以被獨(dú)立地重置(reset)、初始加載操作系統(tǒng)(如果需要)、以及以不同的程序操作。運(yùn)行在邏輯分區(qū)中的操作系統(tǒng)或應(yīng)用程序表現(xiàn)為能夠訪問(wèn)全部或完整的系統(tǒng),但實(shí)際上,僅可用其一部分。硬件和固件的組合使一個(gè)邏輯分區(qū)中的程序不與不同邏輯分區(qū)中的程序相干擾。這允許若干不同邏輯分區(qū)以分時(shí)方式在單個(gè)處理器或多個(gè)物理處理器上操作。
[0020]如這里所使用的,固件例如包括處理器的微代碼、毫代碼(millicode)、和/或宏代碼。其例如包括硬件級(jí)的指令和/或在更高級(jí)的機(jī)器代碼的實(shí)現(xiàn)中使用的數(shù)據(jù)結(jié)構(gòu)。在一個(gè)實(shí)施例中,其例如包括私有代碼,其通常作為包括專用于底層硬件的可信軟件或微代碼并控制操作系統(tǒng)對(duì)系統(tǒng)硬件的訪問(wèn)的微代碼而遞送。[0021]在此特定示例中,每個(gè)邏輯分區(qū)具有常駐操作系統(tǒng)112,其對(duì)于一個(gè)或多個(gè)邏輯分區(qū)可以不同。在一個(gè)實(shí)施例中,操作系統(tǒng)112是由紐約Armonk的國(guó)際商業(yè)機(jī)器公司提供的Z/OS?操作系統(tǒng)。此外,在此示例中,每個(gè)邏輯分區(qū)被分配了系統(tǒng)主儲(chǔ)存器(存儲(chǔ)器)的一部分,其被稱為區(qū)(zone)。
[0022]邏輯分區(qū)104包括一個(gè)或多個(gè)邏輯處理器。每個(gè)邏輯處理器可以具有永久分配給它的中央處理器106,或者可以存在中央處理器106的池,用于向任何一組邏輯處理器動(dòng)態(tài)分配,該分配可以跨越多個(gè)邏輯分區(qū)104。
[0023]邏輯分區(qū)104由系統(tǒng)管理器108管理,系統(tǒng)管理器108例如可以由運(yùn)行在處理器106上的固件實(shí)現(xiàn)。邏輯分區(qū)104和系統(tǒng)管理器108各自包括駐留在與中央處理器關(guān)聯(lián)的主儲(chǔ)存器的相應(yīng)部分中的一個(gè)或多個(gè)程序。系統(tǒng)管理器108的一個(gè)示例是處理器資源/系統(tǒng)管理器 ? (Processor Resource/System Manager?) (PR/SM),其由紐約 Armonk 的國(guó)際商業(yè)機(jī)器公司提供。
[0024]中央處理器106連接到系統(tǒng)控制器110,但與其分離。系統(tǒng)控制器110例如是硬件組件,其控制對(duì)存儲(chǔ)器和中央處理器內(nèi)的高速緩存(cache )的訪問(wèn),并在中央處理器和輸入/輸出子系統(tǒng)120之間通信。系統(tǒng)控制器負(fù)責(zé)由中央處理器和I/O系統(tǒng)做出的請(qǐng)求的排隊(duì)、串行化和執(zhí)行。在一個(gè)示例中,其負(fù)責(zé)向特定中央處理器發(fā)送命令和/或向多個(gè)中央處理器廣播命令。系統(tǒng)控制器可以是集中(centralized)組件或者其功能可以被分散。系統(tǒng)控制器不是處理器或核,例如其不執(zhí)行用戶應(yīng)用。而是,其是I/O子系統(tǒng)和中央處理器之間的通信機(jī)構(gòu)。
[0025]參照?qǐng)D1B描述關(guān)于中央處理器106的進(jìn)一步細(xì)節(jié)。在一個(gè)示例中,中央處理器106包括一個(gè)或多個(gè)核或處理器150,它們是分配給一個(gè)或多個(gè)邏輯分區(qū)的物理處理器。中央處理器被認(rèn)為是節(jié)點(diǎn)的一部分,并且每個(gè)節(jié)點(diǎn)包括一個(gè)或多個(gè)中央處理器。邏輯分區(qū)可以跨越多個(gè)節(jié)點(diǎn),其中來(lái)自一個(gè)節(jié)點(diǎn)的一個(gè)或多個(gè)中央處理器以及來(lái)自另一節(jié)點(diǎn)的一個(gè)或多個(gè)中央處理器可以被分配給該邏輯分區(qū)。
[0026]此外,根據(jù)本發(fā)明的一個(gè)方面,中央處理器106的一個(gè)或多個(gè)處理器150各自包括控制器151 (例如,硬件控制器),其用于監(jiān)視處理器,尤其是監(jiān)視執(zhí)行在該處理器上的線程,并且,在一個(gè)實(shí)施例中,監(jiān)視被線程訪問(wèn)的可用執(zhí)行資源池152,諸如,可用硬件寄存器。控制器151控制來(lái)自相應(yīng)資源池152的資源向線程(諸如低優(yōu)先級(jí)線程)的分配。
[0027]在一個(gè)實(shí)施例中,可以利用亂序(out-of-order)處理器實(shí)施圖1A和圖1B的計(jì)算環(huán)境。亂序處理器將指令的執(zhí)行分解為多個(gè)步驟,目的在于使處理器可以避免執(zhí)行操作所需要的數(shù)據(jù)不可得時(shí)發(fā)生的一類掛起(stall)。亂序處理器利用準(zhǔn)備好執(zhí)行的指令填充這樣的時(shí)隙,并接著在結(jié)束時(shí)對(duì)結(jié)果重新排序,以呈現(xiàn)按序執(zhí)行指令的表象。
[0028]亂序處理器需要大量架構(gòu)性硬件資源來(lái)實(shí)現(xiàn)高性能。在線程中執(zhí)行的代碼決定實(shí)現(xiàn)高性能所必須的系統(tǒng)資源量。實(shí)現(xiàn)高執(zhí)行性能所需要的系統(tǒng)資源越多,稱為處理器所具有的亂序窗口越大。換言之,在存在高度依賴性(例如,在指令B的計(jì)算中需要指令A(yù)的結(jié)果)的代碼中,對(duì)于該處理器而言,在飛行中(in-flight)的指令越多,在執(zhí)行期間被該線程消耗的硬件資源越多。此外,在處理器中執(zhí)行的某些線程可能是需要高性能或低執(zhí)行延遲的高優(yōu)先級(jí)線程,而某些線程可能是低優(yōu)先級(jí)線程(例如,可能僅需要在幾周時(shí)間中完成特定工作的工資計(jì)算)??梢栽谲浖惺褂么植诹6鹊木€程優(yōu)先級(jí)來(lái)基于手頭工作的優(yōu)先級(jí)來(lái)調(diào)度線程,但一旦線程被發(fā)送到硬件上執(zhí)行,則傳統(tǒng)上各種線程被以同樣的優(yōu)先級(jí)分配到系統(tǒng)硬件資源,即,不考慮線程之間的相對(duì)優(yōu)先級(jí)。
[0029]這里公開(kāi)一種用于管理計(jì)算環(huán)境的資源的手段(facility),其各方面可被實(shí)施為計(jì)算機(jī)系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品,如這里將進(jìn)一步說(shuō)明的。管理手段包括由硬件控制器基于特定線程的優(yōu)先級(jí)以及該線程在執(zhí)行時(shí)所在的處理器中的可用資源來(lái)控制用于該線程的指令的分配。一旦用于特定線程的指令被分配到發(fā)射隊(duì)列(issue queue)中,來(lái)自相應(yīng)可用資源池(諸如,硬件寄存器池)的資源被分配用于該指令的執(zhí)行,使得這些資源不可用于需要分配的其它指令。如果用于特定資源類型(諸如物理浮點(diǎn)寄存器)的資源池在該時(shí)刻是空的,并且指令已經(jīng)準(zhǔn)備好分配,則在分配時(shí)掛起該指令,直到使用該資源的執(zhí)行指令完成執(zhí)行而釋放了該資源為止。在一個(gè)方面中,避免高優(yōu)先級(jí)線程的分配掛起由這里呈現(xiàn)的管理協(xié)議解決。該控制包括基于低優(yōu)先級(jí)線程上的指令所需要的資源以及相應(yīng)資源池中可用資源的量,有條件地分配該低優(yōu)先級(jí)線程上的指令??梢詣?dòng)態(tài)地調(diào)整用于每個(gè)資源池的可用資源的閾值,以最大化系統(tǒng)性能并最小化高優(yōu)先級(jí)線程的分配掛起。
[0030]具體地,資源管理可以包括監(jiān)視從一個(gè)資源池向計(jì)算環(huán)境的至少一個(gè)高優(yōu)先級(jí)線程的資源分配,其中該至少一個(gè)高優(yōu)先級(jí)線程具有比該至少一個(gè)低優(yōu)先級(jí)線程高的優(yōu)先級(jí),并且基于該監(jiān)視,動(dòng)態(tài)地調(diào)整與該一個(gè)資源池關(guān)聯(lián)的、且用于將來(lái)自該一個(gè)資源池的資源有條件地分配到該至少一個(gè)低優(yōu)先級(jí)線程中的資源使用閾值。在一個(gè)實(shí)施方式中,在包括亂序處理器的計(jì)算環(huán)境中使用這樣的管理手段。
[0031]更具體地,這里公開(kāi)了一種管理手段,其中一個(gè)或多個(gè)可用硬件資源池由控制器硬件監(jiān)視。一旦特定資源池的使用中的硬件資源上升到超過(guò)相應(yīng)閾值,則修改向低優(yōu)先級(jí)線程的資源分配,以便促進(jìn)將池中的剩余資源保留用于一個(gè)或多個(gè)高優(yōu)先級(jí)線程的執(zhí)行中,其中該相應(yīng)的閾值由處理器自動(dòng)動(dòng)態(tài)地配置,以最大化處理器吞吐量并同時(shí)避免高優(yōu)先級(jí)線程的分配掛起。通過(guò)延遲或暫時(shí)掛起用于低優(yōu)先級(jí)線程的指令的分配,幫助向低優(yōu)先級(jí)線程的該修改的資源分配。通過(guò)允許高優(yōu)先級(jí)線程使用本會(huì)由低優(yōu)先級(jí)線程使用的分配周期(cycle),低優(yōu)先級(jí)線程的分配掛起不減小且可能增加高優(yōu)先級(jí)線程的分配率(dispatch rate)。低優(yōu)先級(jí)線程掛起的期間使得針對(duì)高優(yōu)先級(jí)線程最小化資源掛起,并且對(duì)于低優(yōu)先級(jí)線程的執(zhí)行資源的缺乏(starvation)不會(huì)導(dǎo)致該線程進(jìn)行適當(dāng)前進(jìn)的失敗。注意,如這里所使用的,分配是指令被分配到發(fā)射隊(duì)列中以及硬件資源被分配給指令,并且這些指令被稱為是在飛行中。當(dāng)飛行中的指令完成并且硬件資源釋放時(shí),使用中的系統(tǒng)資源將下降到資源使用閾值之下,并且可以將低優(yōu)先級(jí)資源的分配恢復(fù)到正常。在此構(gòu)思的一個(gè)實(shí)施例中,當(dāng)特定系統(tǒng)資源池中當(dāng)前使用的資源上升到高于相應(yīng)閾值時(shí),控制器硬件可以臨時(shí)停止低優(yōu)先級(jí)線程的分配,或者替代地,控制器或分配硬件可以壓制這些資源向低優(yōu)先級(jí)線程的分配率,這具有不完全停止低優(yōu)先級(jí)線程的分配從而避免這些線程的缺乏(這會(huì)導(dǎo)致低優(yōu)先級(jí)線程上的前進(jìn)進(jìn)展的失敗)的優(yōu)點(diǎn)。
[0032]圖2是計(jì)算環(huán)境200 (諸如上文結(jié)合圖1A和圖1B所描述的計(jì)算環(huán)境)的一個(gè)實(shí)施例的進(jìn)一步描述。在此描述中,多個(gè)線程212、214將在一個(gè)或多個(gè)處理器210上執(zhí)行。為了執(zhí)行,這些線程需要控制器216提供來(lái)自一個(gè)或多個(gè)資源池220的資源,用于在這些線程的執(zhí)行中使用。在此實(shí)施例中,多個(gè)線程212、214包括一個(gè)或多個(gè)高優(yōu)先級(jí)線程212以及一個(gè)或多個(gè)低優(yōu)先級(jí)線程214。如這里所使用的,高優(yōu)先級(jí)線程具有比低優(yōu)先級(jí)線程高的優(yōu)先級(jí),并且其是指需要高性能或低執(zhí)行延遲的線程?!暗蛢?yōu)先級(jí)線程”是指可接受低執(zhí)行性能或高執(zhí)行延遲的線程。線程優(yōu)先級(jí)由操作系統(tǒng)、中間件(middleware)或內(nèi)核(kernel)(取決于系統(tǒng)的類型)分配給線程,并且通常是用戶和系統(tǒng)限定的。例如,用戶可能希望指定何時(shí)一個(gè)線程是高優(yōu)先級(jí)(諸如運(yùn)行用于股票交易的算法的線程),而第二線程是低優(yōu)先級(jí)(諸如用于工資處理的線程)。示例性地,內(nèi)核繼而可以增加甚至更高優(yōu)先級(jí)的線程,例如用于關(guān)鍵器件驅(qū)動(dòng)器的線程。
[0033]如圖3中所示,可用系統(tǒng)資源池可以包括多個(gè)硬件資源池300,其包括浮點(diǎn)寄存器池310、通用寄存器池320、發(fā)射寄存器池330以及存儲(chǔ)緩沖池340。每個(gè)可用資源池310、320,330和340分別具有關(guān)聯(lián)的資源使用閾值311、321、331和341,其中每個(gè)都可以是可調(diào)整閾值,如這里所描述的。還應(yīng)注意,如圖3所示,每個(gè)池可以包括不同量的資源,并且與各池關(guān)聯(lián)的資源使用閾值在不同池中可以初始是不同百分比的水平,或可通過(guò)這里公開(kāi)的調(diào)整處理的操作而是不同百分比的水平。
[0034]在一個(gè)實(shí)施例中,可動(dòng)態(tài)地調(diào)整各個(gè)資源池的相應(yīng)資源使用閾值。這是因?yàn)槿魏谓o定資源池的最佳閾值水平取決于正在執(zhí)行的高優(yōu)先級(jí)線程的本性(nature),并且閾值本性在不同工作負(fù)荷之間可能非常不同。例如,如果高優(yōu)先級(jí)閾值不執(zhí)行浮點(diǎn)指令,則因?yàn)楦↑c(diǎn)寄存器池310 (圖3)已經(jīng)達(dá)到資源使用閾值311而限制低優(yōu)先級(jí)線程的分配,將會(huì)降低低優(yōu)先級(jí)線程的性能而對(duì)高優(yōu)先級(jí)線程沒(méi)有益處。
[0035]動(dòng)態(tài)可調(diào)整閾值方法的一個(gè)示例可以從例如90%的缺省閾值水平開(kāi)始,意味著開(kāi)始時(shí)每個(gè)資源池的90%可用于低優(yōu)先級(jí)線程,從而低優(yōu)先級(jí)線程初始不發(fā)生任何分配壓制。使用例如計(jì)數(shù)器監(jiān)視高優(yōu)先級(jí)線程的分配率,該計(jì)數(shù)器計(jì)數(shù)每個(gè)周期用于該線程的分配的平均數(shù)目。如果高優(yōu)先級(jí)線程對(duì)特定資源類型(例如浮點(diǎn)寄存器)使用得極少,則可以在一定數(shù)目(例如1024)的時(shí)鐘周期的時(shí)段上將該閾值水平遞增,例如每次遞增一個(gè)或多個(gè)寄存器(或資源)。注意,閾值調(diào)整時(shí)段中的時(shí)鐘周期數(shù)可以是可編程設(shè)置的,并且遞增調(diào)整可以基于針對(duì)正在使用機(jī)器的工作負(fù)荷的類型的性能測(cè)試,或者基于實(shí)時(shí)測(cè)量。替代地,如果高優(yōu)先級(jí)線程使用很多的特定資源,或者由于對(duì)給定資源的資源競(jìng)爭(zhēng)而發(fā)生掛起,則可以遞減用于該資源池的閾值水平,例如一次遞減一個(gè)或多個(gè)寄存器(或資源)。在此情況中,低優(yōu)先級(jí)線程在分配壓制狀態(tài)中,并且保持在該狀態(tài)中,直到競(jìng)爭(zhēng)資源池中的資源數(shù)掉回到經(jīng)調(diào)整的資源使用閾值之下為止。如果高優(yōu)先級(jí)線程在一可編程的時(shí)間段(例如1024個(gè)時(shí)鐘周期)中繼續(xù)經(jīng)受資源競(jìng)爭(zhēng),則對(duì)該競(jìng)爭(zhēng)資源的閾值可以繼續(xù)下降,直到例如其達(dá)到可編程的最小水平,諸如資源池總大小的25%??梢栽跈C(jī)器初始化時(shí)預(yù)先設(shè)立這些可編程設(shè)置,或者這些可編程設(shè)置可以作為更大的動(dòng)態(tài)負(fù)載平衡系統(tǒng)或控制的一部分。
[0036]圖4A-圖4C描述了根據(jù)本發(fā)明的一個(gè)或多個(gè)方面的邏輯的一個(gè)實(shí)施例。
[0037]參照?qǐng)D4A,硬件控制器通過(guò)監(jiān)視一個(gè)或多個(gè)可用資源池(諸如圖3中所示的上述系統(tǒng)寄存器池)中的資源的當(dāng)前使用(步驟405)而啟動(dòng)(步驟400)管理處理。基于對(duì)當(dāng)前資源使用的監(jiān)視,控制器確定是否動(dòng)態(tài)地調(diào)整從一個(gè)或多個(gè)池向正被執(zhí)行的低優(yōu)先級(jí)線程的資源分配(步驟410)。圖4B描述了這種處理的一個(gè)實(shí)施例。
[0038]參照?qǐng)D4B,控制器通過(guò)確定池中的當(dāng)前資源使用是否高于該池的資源使用閾值(步驟435)而開(kāi)始(步驟430)。如果“是”,則控制器開(kāi)始或繼續(xù)動(dòng)態(tài)地壓制從該池向一個(gè)或多個(gè)低優(yōu)先級(jí)線程的資源分配率(步驟440),其完成分配的動(dòng)態(tài)調(diào)整(步驟455)。如果池中的當(dāng)前資源使用不高于該池的資源使用閾值,則在完成(步驟455)之前,處理停止對(duì)從該池向低優(yōu)先級(jí)線程的資源分配的任何壓制(步驟450)。注意,根據(jù)此處理,一旦分配率被壓制,則低優(yōu)先級(jí)線程保持在分配壓制的狀態(tài),直到當(dāng)前資源使用掉回到該池的資源使用閾值之下為止。
[0039]繼續(xù)圖4A的邏輯,處理監(jiān)視高優(yōu)先級(jí)線程對(duì)池中的資源使用(步驟415),并且基于對(duì)高優(yōu)先級(jí)資源使用的監(jiān)視,確定是否動(dòng)態(tài)調(diào)整與資源池關(guān)聯(lián)的一個(gè)或多個(gè)使用閾值水平(步驟420)。圖4C描述了此邏輯的一個(gè)實(shí)施例。
[0040]參照?qǐng)D4C,處理通過(guò)確定高優(yōu)先級(jí)線程是否已經(jīng)遇到對(duì)特定池中的資源的資源競(jìng)爭(zhēng)(步驟465)而開(kāi)始(步驟460)。如果“否”,則可遞增該池的關(guān)聯(lián)資源使用閾值(步驟470),這完成動(dòng)態(tài)調(diào)整處理(步驟475)。
[0041]如上所述,可以使用計(jì)數(shù)器監(jiān)視高優(yōu)先級(jí)線程的資源競(jìng)爭(zhēng)或者更一般地分配率,計(jì)數(shù)器對(duì)每個(gè)周期線程分配的平均數(shù)目進(jìn)行計(jì)數(shù)。如果雖然資源池已經(jīng)達(dá)到給定資源使用閾值但高優(yōu)先級(jí)線程未遇到資源競(jìng)爭(zhēng),則可以在一定數(shù)目的時(shí)鐘周期(其中時(shí)鐘周期是可編程的設(shè)置)的時(shí)段上遞增該閾值,例如一次一或兩個(gè)資源。期望的遞增(其在另一實(shí)施例中可以是除了 I或2之外的資源數(shù)目)可以基于正在使用機(jī)器的工作負(fù)荷的類型的性能測(cè)試,或者例如基于實(shí)時(shí)測(cè)量。注意,在此示例中,增加池的資源使用閾值可以取決于低優(yōu)先級(jí)線程當(dāng)前是否在分配壓制狀態(tài)中。即,如果低優(yōu)先級(jí)線程當(dāng)前未被壓制,則可能不需要增加池的資源使用閾值。在另一實(shí)施例中,可以監(jiān)視高優(yōu)先級(jí)線程使用的資源的類型,以確定是否應(yīng)該隨著時(shí)間調(diào)整資源池中的資源線程。例如,如果特定線程非常多地使用浮點(diǎn)寄存器,而較少使用定點(diǎn)寄存器,則可以減小用于浮點(diǎn)寄存器池的資源閾值,并且可以增加用于定點(diǎn)寄存器池的閾值。
[0042]假設(shè)高優(yōu)先級(jí)線程確實(shí)遇到了對(duì)來(lái)自該池的資源的資源競(jìng)爭(zhēng),則處理調(diào)查該池的資源使用閾值是否為預(yù)定的或編程的最小水平(步驟480),并且如果是,則當(dāng)前不進(jìn)行任何動(dòng)作(步驟485)。否則,處理減小池的資源使用閾值,以提高壓制來(lái)自該池的資源向低優(yōu)先級(jí)線程的分配率的可能性(步驟490)。這完成對(duì)池的閾值水平調(diào)整處理(步驟475)。注意,在一個(gè)實(shí)施例中,對(duì)于多線程的執(zhí)行中使用的系統(tǒng)資源(諸如硬件寄存器)的每個(gè)池,可以分別并行地進(jìn)行圖4A-圖4C的處理。
[0043]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開(kāi)可以具體實(shí)現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0044]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0045]現(xiàn)在參考圖5,在一個(gè)例子中,計(jì)算機(jī)程序產(chǎn)品500包括,例如,一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)502,在其上存儲(chǔ)有計(jì)算機(jī)可讀的程序代碼裝置或邏輯504,以提供并方便本發(fā)明的一個(gè)或多個(gè)方面。
[0046]體現(xiàn)在計(jì)算機(jī)可讀介質(zhì)上的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,所述介質(zhì)包括但不限于:無(wú)線、有線、光纜、RF等,或上述的任意合適的組合。
[0047]可以以一種或多種程序設(shè)計(jì)語(yǔ)言或其組合來(lái)編寫用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如”C”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
[0048]本文中將參照本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,這些計(jì)算機(jī)程序指令通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0049]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在能使得計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一個(gè)包括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。
[0050]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令能夠提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過(guò)程。
[0051]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
[0052]除了上述,本發(fā)明的一個(gè)或多個(gè)方面可由服務(wù)提供商提供、許諾(offer)、部署、管理、服務(wù)等,該服務(wù)提供商提供用戶環(huán)境的管理。例如,服務(wù)提供商可創(chuàng)建、維持、支持等計(jì)算機(jī)代碼和/或計(jì)算機(jī)基礎(chǔ)設(shè)施,其為一個(gè)或多個(gè)用戶執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面。反過(guò)來(lái),服務(wù)提供商可例如根據(jù)預(yù)訂和/或費(fèi)用協(xié)議從用戶接受付費(fèi)。額外地或可替換地,月艮務(wù)提供商可從向一個(gè)或多個(gè)第三方銷售廣告內(nèi)容接受付費(fèi)。
[0053]在本發(fā)明的一個(gè)方面,可部署用于執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面的應(yīng)用。作為一個(gè)例子,部署應(yīng)用包括提供計(jì)算機(jī)基礎(chǔ)設(shè)施,其可操作以執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面。
[0054]作為本發(fā)明的又一個(gè)方面,可部署計(jì)算基礎(chǔ)設(shè)施,其包括將計(jì)算機(jī)可讀代碼集成到計(jì)算機(jī)系統(tǒng),其中與計(jì)算系統(tǒng)結(jié)合的代碼能夠執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面。
[0055]作為本發(fā)明的再一個(gè)方面,可提供用于集成計(jì)算基礎(chǔ)設(shè)施包括將計(jì)算機(jī)可讀碼集成到計(jì)算機(jī)系統(tǒng)的過(guò)程。計(jì)算機(jī)系統(tǒng)包括計(jì)算機(jī)可讀介質(zhì),其中計(jì)算機(jī)介質(zhì)包括本發(fā)明的一個(gè)或多個(gè)方面。與計(jì)算機(jī)系統(tǒng)結(jié)合的代碼能夠執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面。
[0056]雖然上面描述了各種實(shí)施例,但它們僅是示例。例如,其它架構(gòu)的計(jì)算環(huán)境可以并入和使用本發(fā)明的一個(gè)或多個(gè)方面。此外,中央處理器可以包括比這里描述的更多或更少的處理器。另外,處理器可以包括比這里描述的更多或更少的線程。再者,處理器不需要是中央處理器的一部分。還可以進(jìn)行許多其它改變。
[0057]而且,其他類型的計(jì)算環(huán)境可受益于本發(fā)明的一個(gè)或多個(gè)方面。作為例子,環(huán)境可包括仿真器(例如,軟件或其他仿真機(jī)制),其中特定架構(gòu)(包括例如指令執(zhí)行、諸如地址轉(zhuǎn)換的架構(gòu)功能、以及架構(gòu)寄存器)或其子集被仿真(例如,在具有處理器和存儲(chǔ)器的本機(jī)計(jì)算機(jī)系統(tǒng)中)。在這樣的環(huán)境中,仿真器的一個(gè)或多個(gè)仿真功能可實(shí)施本發(fā)明的一個(gè)或多個(gè)方面,即使執(zhí)行仿真器的計(jì)算機(jī)可具有與正被仿真的能力不同的架構(gòu)。作為一個(gè)例子,在仿真模式中,解碼正被仿真的特定指令或操作,且建立合適的仿真功能以實(shí)施單個(gè)指令或操作。
[0058]在仿真環(huán)境中,主計(jì)算機(jī)包括例如存儲(chǔ)器以存儲(chǔ)指令和數(shù)據(jù);指令獲取單元以從存儲(chǔ)器獲取指令,且可選地,提供用于獲取的指令的本地緩沖;指令解碼單元以接收獲取的指令并確定已被獲取的指令的類型;以及指令執(zhí)行單元以執(zhí)行該指令。執(zhí)行可包括將數(shù)據(jù)從存儲(chǔ)器加載到寄存器;從寄存器將數(shù)據(jù)存儲(chǔ)回存儲(chǔ)器;或執(zhí)行如由解碼單元確定的某些類型的算術(shù)或邏輯運(yùn)算。在一個(gè)例子中,每個(gè)單元在軟件中實(shí)現(xiàn)。例如,被所述單元執(zhí)行的操作被實(shí)現(xiàn)為仿真器軟件中的一個(gè)或多個(gè)子例程。
[0059]作為另一示例,適合用于存儲(chǔ)和/或執(zhí)行程序代碼的、包括通過(guò)系統(tǒng)總線與存儲(chǔ)元件直接或間接連接的至少一個(gè)處理器的數(shù)據(jù)處理系統(tǒng)是有用的。存儲(chǔ)元件例如包括在程序代碼的實(shí)際執(zhí)行期間使用的本地存儲(chǔ)器、塊儲(chǔ)存器、高速緩存存儲(chǔ)器,高速緩存存儲(chǔ)器提供至少一些程序代碼的臨時(shí)儲(chǔ)存,以便減少在執(zhí)行期間必須從塊儲(chǔ)存器檢索代碼的次數(shù)。
[0060]輸入/輸出或I/O裝置(包括但不限于,鍵盤、顯示器、指點(diǎn)裝置、DASD、帶子、⑶、DVD、拇指(thumb)驅(qū)動(dòng)器和其它存儲(chǔ)介質(zhì),等)可以直接或通過(guò)介入的I/O控制器連接到系統(tǒng)。網(wǎng)絡(luò)適配器也可以連接到系統(tǒng),以使得數(shù)據(jù)處理系統(tǒng)能夠通過(guò)介入的私有或共有網(wǎng)絡(luò)而變得連接到其它數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)裝置。調(diào)制解調(diào)器、線纜調(diào)制解調(diào)器和以太網(wǎng)卡僅是可用網(wǎng)絡(luò)適配器的類型中的小部分。
[0061]這里使用的措辭僅是用于描述特定實(shí)施例的目的,而不意圖限制本發(fā)明。如這里所使用的,單數(shù)形式意在也包括復(fù)數(shù)形式,除非上下文清楚地指示不是如此。還將理解,詞語(yǔ)“包括”(以及任何形式的“包括”)、“具有”(以及任何形式的“具有”)和“包含”(以及任何形式的“包含”)是開(kāi)放形式的動(dòng)詞。因此,“包括”、“具有”或“包含”一個(gè)或多個(gè)步驟或元件的方法或裝置擁有所述一個(gè)或多個(gè)步驟或元件,但不限于僅擁有所述一個(gè)或多個(gè)步驟或元件。同樣地,“包括”、“具有”或“包含” 一個(gè)或多個(gè)特征的方法的步驟或裝置的元件擁有所述一個(gè)或多個(gè)特征,但不限于僅擁有所述一個(gè)或多個(gè)特征。此外,以某種方式構(gòu)造的裝置或結(jié)構(gòu)至少以該方式構(gòu)造,但也可以以未列出的方式構(gòu)造。
[0062]所附權(quán)利要求書中的所有裝置或步驟加功能元件的相應(yīng)結(jié)構(gòu)、材料、操作以及等價(jià)物,如有的話,旨在包括用于結(jié)合如特別要求保護(hù)的其他所要求保護(hù)的元件來(lái)執(zhí)行所述功能的任何結(jié)構(gòu)、材料或操作。呈現(xiàn)本發(fā)明的說(shuō)明是為了示出和描述的作用,但不是窮盡性的或?qū)⒈景l(fā)明限制于所公開(kāi)的形式。許多修改和變化對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō)是明顯的,且不脫離本發(fā)明的范圍。選擇和描述實(shí)施例是為了最佳地解釋本發(fā)明的原理和實(shí)際應(yīng)用,并使得本領(lǐng)域普通技術(shù)人員能針對(duì)適于考慮的特定用途的具有各種修改的各種實(shí)施例理解本發(fā)明。
【權(quán)利要求】
1.一種用于促進(jìn)對(duì)計(jì)算環(huán)境中的資源進(jìn)行管理的計(jì)算機(jī)系統(tǒng),所述計(jì)算機(jī)系統(tǒng)包括: 存儲(chǔ)器;以及 處理器,其與所述存儲(chǔ)器通信,其中所述計(jì)算機(jī)系統(tǒng)被配置為執(zhí)行方法,所述方法包括: 由硬件控制器控制從要在線程的執(zhí)行中使用的至少一個(gè)資源池的資源分配,所述控制包括基于所述至少一個(gè)資源池中的一個(gè)資源池中的資源使用相對(duì)于與其關(guān)聯(lián)的資源使用閾值的關(guān)系,有條件地從所述一個(gè)資源池向所述計(jì)算環(huán)境的至少一個(gè)低優(yōu)先級(jí)線程分配資源。
2.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中所述方法還包括: 監(jiān)視從所述一個(gè)資源池向所述計(jì)算環(huán)境的至少一個(gè)高優(yōu)先級(jí)線程的資源分配,其中所述至少一個(gè)高優(yōu)先級(jí)線程具有比所述至少一個(gè)低優(yōu)先級(jí)線程高的優(yōu)先級(jí);以及 基于所述監(jiān)視,動(dòng)態(tài)地調(diào)整與所述一個(gè)資源池關(guān)聯(lián)的、并在所述有條件地從所述一個(gè)資源池向所述計(jì)算環(huán)境的至少一個(gè)低優(yōu)先級(jí)線程分配資源中使用的資源使用閾值。
3.如權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其中所述動(dòng)態(tài)地調(diào)整與所述一個(gè)資源池關(guān)聯(lián)的資源使用閾值包括:基于所述至少一個(gè)高優(yōu)先級(jí)線程所使用的資源類型動(dòng)態(tài)地調(diào)整所述資源使用閾值。
4.如權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其中所述動(dòng)態(tài)地調(diào)整與所述一個(gè)資源池關(guān)聯(lián)的資源使用閾值包括:基于所述至少一個(gè)高優(yōu)先級(jí)線程是否遇到對(duì)所述一個(gè)資源池的一個(gè)或多個(gè)資源的資源競(jìng)爭(zhēng)而動(dòng)態(tài)地調(diào)整所述資源使用閾值。
5.如權(quán)利要求4所述的計(jì)算機(jī)系統(tǒng),其中所述動(dòng)態(tài)地調(diào)整與所述一個(gè)資源池關(guān)聯(lián)的資源使用閾值包括:基于所述至少一個(gè)高優(yōu)先級(jí)線程未遇到對(duì)所述一個(gè)資源池的一個(gè)或多個(gè)資源的資源競(jìng)爭(zhēng)而遞增與所述一個(gè)資源池關(guān)聯(lián)的資源使用閾值。
6.如權(quán)利要求4所述的計(jì)算機(jī)系統(tǒng),其中所述動(dòng)態(tài)地調(diào)整與所述一個(gè)資源池關(guān)聯(lián)的資源使用閾值還包括:基于所述至少一個(gè)高優(yōu)先級(jí)線程遇到對(duì)所述一個(gè)資源池的一個(gè)或多個(gè)資源的資源競(jìng)爭(zhēng),確定與所述一個(gè)資源池關(guān)聯(lián)的資源使用閾值是否為編程的最小水平,并且基于所述資源使用閾值是所述編程的最小水平,不采取進(jìn)一步調(diào)整所述資源使用閾值的動(dòng)作,否則遞減與所述一個(gè)資源池關(guān)聯(lián)的資源使用閾值。
7.如權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其中有條件地從所述一個(gè)資源池分配資源包括:基于所述一個(gè)資源池中的資源使用相對(duì)于與其關(guān)聯(lián)的資源使用閾值的關(guān)系,動(dòng)態(tài)地調(diào)整從所述一個(gè)資源池向所述至少一個(gè)低優(yōu)先級(jí)線程的資源分配率。
8.如權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其中有條件地從所述一個(gè)資源池分配資源包括:基于所述一個(gè)資源池中的資源使用超過(guò)與所述一個(gè)資源池關(guān)聯(lián)的資源使用閾值,動(dòng)態(tài)地壓制從所述一個(gè)資源池向所述至少一個(gè)低優(yōu)先級(jí)線程的資源分配率。
9.如權(quán)利要求8所述的計(jì)算機(jī)系統(tǒng),其中有條件地從所述一個(gè)資源池分配資源還包括:基于所述一個(gè)資源池中的資源使用下降到低于與所述一個(gè)資源池關(guān)聯(lián)的資源使用閾值,停止壓制向所述至少一個(gè)低優(yōu)先級(jí)線程的資源分配率。
10.如權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其中所述計(jì)算環(huán)境包括要在所述線程的執(zhí)行中使用的多個(gè)資源池,所述一個(gè)資源池是所述多個(gè)資源池中的一個(gè)池,并且每個(gè)資源池包括各自的可調(diào)整資源使用閾值。
11.如權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),其中所述監(jiān)視包括監(jiān)視從所述多個(gè)資源池中的每個(gè)資源池向所述至少一個(gè)高優(yōu)先級(jí)線程的資源分配,并且所述方法還包括:基于對(duì)從所述多個(gè)資源池向所述至少一個(gè)高優(yōu)先級(jí)線程的資源分配的監(jiān)視,分別動(dòng)態(tài)地調(diào)整與所述多個(gè)資源池關(guān)聯(lián)的一個(gè)或多個(gè)相應(yīng)資源使用閾值。
12.如權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),其中所述有條件地分配資源包括:基于所述多個(gè)資源池中的每個(gè)資源池相對(duì)于與其關(guān)聯(lián)的相應(yīng)資源使用閾值,分別動(dòng)態(tài)地調(diào)整從每個(gè)資源池向所述至少一個(gè)低優(yōu)先級(jí)線程的資源分配率。
13.一種用于管理計(jì)算環(huán)境中的資源的方法,所述方法包括: 由硬件控制器控制從要在線程的執(zhí)行中使用的至少一個(gè)資源池的資源分配,所述控制包括:基于所述至少一個(gè)資源池中的一個(gè)資源池中的資源使用相對(duì)于與其關(guān)聯(lián)的資源使用閾值的關(guān)系,有條件地從所述一個(gè)資源池向所述計(jì)算環(huán)境的至少一個(gè)低優(yōu)先級(jí)線程分配資源。
14.如權(quán)利要求13所述的方法,還包括: 監(jiān)視從所述一個(gè)資源池向所述計(jì)算環(huán)境的至少一個(gè)高優(yōu)先級(jí)線程的資源分配,其中所述至少一個(gè)高優(yōu)先級(jí)線程具有比所述至少一個(gè)低優(yōu)先級(jí)線程高的優(yōu)先級(jí);以及 基于所述監(jiān)視,動(dòng)態(tài)地調(diào)整與所述一個(gè)資源池關(guān)聯(lián)的、并在所述有條件地從所述一個(gè)資源池向所述計(jì)算環(huán)境的至少一個(gè)低優(yōu)先級(jí)線程分配資源中使用的資源使用閾值。
15.如權(quán)利要求14所述的方法,其中所述動(dòng)態(tài)地調(diào)整與所述一個(gè)資源池關(guān)聯(lián)的資源使用閾值包括:基于所述至少一個(gè)高優(yōu)先級(jí)線程所使用的資源類型,動(dòng)態(tài)地調(diào)整所述資源使用閾值。
16.如權(quán)利要求14所述的方法,其中所述動(dòng)態(tài)地調(diào)整與所述一個(gè)資源池關(guān)聯(lián)的資源使用閾值包括:基于所述至少一個(gè)高優(yōu)先級(jí)線程是否遇到對(duì)所述一個(gè)資源池的一個(gè)或多個(gè)資源的資源競(jìng)爭(zhēng)而動(dòng)態(tài)地調(diào)整所述資源使用閾值。
17.如權(quán)利要求16所述的方法,其中所述動(dòng)態(tài)地調(diào)整與所述一個(gè)資源池關(guān)聯(lián)的資源使用閾值包括:基于所述至少一個(gè)高優(yōu)先級(jí)線程未遇到對(duì)所述一個(gè)資源池的一個(gè)或多個(gè)資源的資源競(jìng)爭(zhēng),遞增與所述一個(gè)資源池關(guān)聯(lián)的資源使用閾值。
18.如權(quán)利要求14所述的方法,其中有條件地從所述一個(gè)資源池分配資源包括:基于所述一個(gè)資源池中當(dāng)前使用的資源相對(duì)于與其關(guān)聯(lián)的資源使用閾值的關(guān)系,動(dòng)態(tài)地調(diào)整從所述一個(gè)資源池向所述至少一個(gè)低優(yōu)先級(jí)線程的資源分配率。
19.如權(quán)利要求14所述的方法,其中有條件地從所述一個(gè)資源池分配資源包括:基于所述一個(gè)資源池中的資源使用超過(guò)與所述一個(gè)資源池關(guān)聯(lián)的資源使用閾值,動(dòng)態(tài)地壓制從所述一個(gè)資源池向所述至少一個(gè)低優(yōu)先級(jí)線程的資源分配率。
【文檔編號(hào)】G06F9/50GK103677999SQ201310403268
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2013年9月6日 優(yōu)先權(quán)日:2012年9月14日
【發(fā)明者】F.Y.布薩巴, S.R.卡洛, C.A.克雷戈夫斯基, B.R.普拉斯基, 岑中龍 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司