專利名稱:用于優(yōu)化運(yùn)行至少一個(gè)進(jìn)程的虛擬機(jī)的配置的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明總的涉及用于優(yōu)化虛擬機(jī)的系統(tǒng)和方法。具體而言,本發(fā)明涉及用于優(yōu)化運(yùn)行至少一個(gè)進(jìn)程的虛擬機(jī)的配置的系統(tǒng)和方法。
背景技術(shù):
在執(zhí)行管理程序以便在宿主計(jì)算裝置上執(zhí)行虛擬機(jī)的傳統(tǒng)計(jì)算環(huán)境中,管理程序通常向虛擬機(jī)提供對(duì)宿主計(jì)算裝置所提供的硬件資源的訪問(wèn)。傳統(tǒng)環(huán)境中,一旦管理程序已分配資源,這個(gè)進(jìn)程就不會(huì)重新評(píng)估虛擬機(jī)的需求。例如,典型的管理程序通過(guò)給每個(gè)機(jī)器指派一個(gè)處理器來(lái)將多個(gè)可利用的物理處理器分配給多個(gè)虛擬機(jī),而不考慮任何具體虛擬機(jī)的需求或任何具體物理處理器的可利用的功能。在這樣的環(huán)境中,假設(shè)第一虛擬機(jī)開(kāi)始執(zhí)行要求物理處理器的額外功能的進(jìn)程或者在所分配的物理處理器上施加了過(guò)多的負(fù)載的進(jìn)程,傳統(tǒng)的系統(tǒng)通常不包括用于評(píng)估第一虛擬機(jī)的需求并給第一虛擬機(jī)分配額外的物理處理器的功能。由于管理程序可能已將另外的物理處理器分配給其他虛擬機(jī),而這些其他虛擬機(jī)可能不會(huì)充分地利用分配給它們的物理處理器,這些傳統(tǒng)系統(tǒng)可能由計(jì)算裝置上的一個(gè)或多個(gè)虛擬機(jī)造成分配低效以及性能低下。
發(fā)明內(nèi)容
在一個(gè)方面,用于優(yōu)化運(yùn)行至少一個(gè)進(jìn)程的虛擬機(jī)的配置的方法包括由在計(jì)算裝置上執(zhí)行的管理程序指定在計(jì)算裝置上執(zhí)行的虛擬機(jī)中至少一個(gè)虛擬資源的配置參數(shù)。該方法包括由在虛擬機(jī)上執(zhí)行的代理識(shí)別當(dāng)前在虛擬機(jī)上執(zhí)行的至少一個(gè)進(jìn)程的名稱。該方法包括響應(yīng)于所述名稱的識(shí)別來(lái)改變所指定的配置參數(shù)的值。在一個(gè)實(shí)施例中,該方法包括由代理將所識(shí)別的名稱傳輸給管理程序。在又一個(gè)實(shí)施例中,該方法包括由管理程序改變所指定的配置參數(shù)的值。仍在又一個(gè)實(shí)施例中,該方法包括由管理程序改變第二虛擬機(jī)中至少一個(gè)虛擬資源的配置參數(shù)的值。又一個(gè)實(shí)施例中,該方法包括由管理程序響應(yīng)于所指定的配置參數(shù)的值來(lái)分配所述至少一個(gè)虛擬資源對(duì)計(jì)算裝置所提供的至少一個(gè)物理資源的訪問(wèn)。在又一個(gè)方面,用于優(yōu)化運(yùn)行至少一個(gè)進(jìn)程的虛擬機(jī)的配置的系統(tǒng)包括在計(jì)算裝置上執(zhí)行的虛擬機(jī)中的至少一個(gè)虛擬資源,在虛擬機(jī)內(nèi)部執(zhí)行的代理以及管理程序。所述至少一個(gè)虛擬資源具有配置參數(shù)。代理識(shí)別當(dāng)前在虛擬機(jī)上執(zhí)行的至少一個(gè)進(jìn)程的名稱。 管理程序響應(yīng)于從所述代理接收所識(shí)別的名稱來(lái)改變配置參數(shù)的值。在一個(gè)實(shí)施例中,所述至少一個(gè)虛擬資源是虛擬處理器。在又一個(gè)實(shí)施例中,所述至少一個(gè)虛擬資源是虛擬存儲(chǔ)器。仍在又一個(gè)實(shí)施例中,代理將所識(shí)別的名稱傳輸給管理
4程序。在又一個(gè)實(shí)施例中,管理程序改變第二虛擬機(jī)中虛擬資源的配置參數(shù)的值。在一些實(shí)施例中,管理程序執(zhí)行虛擬機(jī)。在其他實(shí)施例中,管理程序響應(yīng)于所指定的配置參數(shù)的值來(lái)分配所述至少一個(gè)虛擬資源對(duì)計(jì)算裝置所提供的至少一個(gè)物理資源的訪問(wèn)。在一個(gè)實(shí)施例中,管理程序改變指定分配給虛擬機(jī)的物理處理器時(shí)間的值。在又一個(gè)實(shí)施例中,管理程序改變指定分配給與虛擬機(jī)關(guān)聯(lián)的頁(yè)表的隨機(jī)存取存儲(chǔ)器(RAM)的數(shù)量的值。仍在又一個(gè)實(shí)施例中,管理程序改變指定分配給虛擬機(jī)的物理隨機(jī)存取存儲(chǔ)器 (RAM)的數(shù)量的值。
本發(fā)明的前述和其它目的、方面、特征和優(yōu)點(diǎn)通過(guò)參考下述結(jié)合附圖的描述將會(huì)更加明顯并更易于理解,其中圖IA是描述包括管理程序?qū)?、虛擬化層和硬件層的計(jì)算環(huán)境的實(shí)施例的框圖;圖IB和IC是描述用于與此處所描述的方法和系統(tǒng)有關(guān)的計(jì)算裝置的實(shí)施例的框圖;圖2A是描述用于優(yōu)化運(yùn)行至少一個(gè)進(jìn)程的虛擬機(jī)的配置的系統(tǒng)的實(shí)施例的框圖;圖2B是描述用于優(yōu)化多個(gè)虛擬機(jī)的配置的系統(tǒng)的實(shí)施例的框圖;以及圖3是描述用于優(yōu)化運(yùn)行至少一個(gè)進(jìn)程的虛擬機(jī)的配置的方法的實(shí)施例的流程圖。
具體實(shí)施例方式現(xiàn)參考圖1A,框圖描述了虛擬化環(huán)境的一個(gè)實(shí)施例。簡(jiǎn)而言之,計(jì)算裝置100包括管理程序?qū)?、虛擬化層和硬件層。管理程序?qū)影ü芾沓绦?01 (也稱為虛擬化管理器),其通過(guò)在虛擬化層中執(zhí)行的至少一個(gè)操作系統(tǒng)來(lái)分配和管理對(duì)硬件層中的多個(gè)物理資源的訪問(wèn)(例如處理器221和磁盤(pán)228)。虛擬化層包括至少一個(gè)操作系統(tǒng)和分配給至少一個(gè)操作系統(tǒng)的多個(gè)虛擬資源。虛擬資源可包括而不限于多個(gè)虛擬處理器132a、132b、132c (總稱為132),和/或虛擬盤(pán)142a、142b、142c (總稱為142)??蓪⒍鄠€(gè)虛擬資源和操作系統(tǒng)110 稱為虛擬機(jī)106。虛擬機(jī)106可包括控制操作系統(tǒng)105,該控制操作系統(tǒng)105與管理程序 101通信,并用于執(zhí)行應(yīng)用以管理并配置計(jì)算裝置100上的其他虛擬機(jī)?,F(xiàn)參考圖1A,具體而言,管理程序101可以以模擬可訪問(wèn)物理設(shè)備的操作系統(tǒng)的任何方式向操作系統(tǒng)提供虛擬資源。管理程序101可以向任一數(shù)量的客戶操作系統(tǒng)110a、 110b(總稱為110)提供虛擬資源。一些實(shí)施例中,計(jì)算裝置100執(zhí)行一種或多種管理程序, 而不是操作系統(tǒng)。這些實(shí)施例中,管理程序可用于模擬虛擬硬件、劃分物理硬件、虛擬化物理硬件并執(zhí)行提供對(duì)計(jì)算環(huán)境的訪問(wèn)的虛擬機(jī)。管理程序可包括由I^alo Alto, California 的VMWare制造的這些程序、XEN管理程序(一種開(kāi)源產(chǎn)品,其開(kāi)發(fā)由開(kāi)源Xen. org協(xié)會(huì)監(jiān)管)、由微軟公司提供的HyperVJirtualkrver或虛擬PC管理程序,或其他。一些實(shí)施例中,計(jì)算裝置100執(zhí)行創(chuàng)建客戶操作系統(tǒng)可在其上執(zhí)行的虛擬機(jī)平臺(tái)的管理程序,該計(jì)算裝置100被稱為宿主服務(wù)器。在一個(gè)這樣的實(shí)施例中,例如,計(jì)算裝置100是由位于 Lauderdale FL 的 Citrix Systems 公司提供的 XEN SERVER。
一些實(shí)施例中,管理程序101在計(jì)算裝置上執(zhí)行的操作系統(tǒng)之內(nèi)執(zhí)行。一個(gè)這樣的實(shí)施例中,執(zhí)行操作系統(tǒng)和管理程序101的計(jì)算裝置可被視為具有宿主操作系統(tǒng)(在計(jì)算裝置上執(zhí)行的操作系統(tǒng))和客戶操作系統(tǒng)(在由管理程序101提供的計(jì)算資源分區(qū)內(nèi)執(zhí)行的操作系統(tǒng))。其他實(shí)施例中,管理程序101和計(jì)算裝置上的硬件直接交互而不是在宿主操作系統(tǒng)上執(zhí)行。一個(gè)這樣的實(shí)施例中,管理程序101可被視為是在“裸機(jī)(bare metal)“ 上執(zhí)行,所述“裸機(jī)”指包括計(jì)算裝置的硬件。一些實(shí)施例中,管理程序101可以創(chuàng)建操作系統(tǒng)在其中執(zhí)行的虛擬機(jī)106a_c(總稱為106)。在一個(gè)這樣的實(shí)施例中,管理程序101加載虛擬機(jī)映像以創(chuàng)建虛擬機(jī)。另一個(gè)這樣的實(shí)施例中,管理程序101在虛擬機(jī)內(nèi)執(zhí)行操作系統(tǒng)。仍在另一個(gè)這樣的實(shí)施例中,虛擬機(jī)執(zhí)行操作系統(tǒng)。一些實(shí)施例中,管理程序101控制在計(jì)算裝置100上執(zhí)行的虛擬機(jī)106的處理器調(diào)度和內(nèi)存劃分。一個(gè)這樣的實(shí)施例中,管理程序101控制至少一個(gè)虛擬機(jī)106的執(zhí)行。另一個(gè)這樣的實(shí)施例中,管理程序101向至少一個(gè)虛擬機(jī)106呈現(xiàn)由計(jì)算裝置100提供的至少一個(gè)硬件資源的抽象。其他實(shí)施例中,管理程序101控制是否以及如何把物理處理器能力呈現(xiàn)給虛擬機(jī)106??刂撇僮飨到y(tǒng)105可以執(zhí)行用于管理和配置客戶操作系統(tǒng)的至少一個(gè)應(yīng)用。一個(gè)實(shí)施例中,控制操作系統(tǒng)105可以執(zhí)行管理應(yīng)用,如包括如下用戶接口的應(yīng)用,該用戶接口為管理員提供對(duì)用于管理虛擬機(jī)執(zhí)行的功能的訪問(wèn),這些功能包括用于執(zhí)行虛擬機(jī)、中止虛擬機(jī)執(zhí)行或者識(shí)別要分配給虛擬機(jī)的物理資源類型的功能。另一個(gè)實(shí)施例中,管理程序 101在由管理程序101創(chuàng)建的虛擬機(jī)106內(nèi)執(zhí)行控制操作系統(tǒng)105。仍在另一個(gè)實(shí)施例中, 控制操作系統(tǒng)105在被授權(quán)直接訪問(wèn)計(jì)算裝置100上的物理資源的虛擬機(jī)106上執(zhí)行。一個(gè)實(shí)施例中,控制操作系統(tǒng)105在被授權(quán)與至少一個(gè)客戶操作系統(tǒng)110交互的虛擬機(jī)106上執(zhí)行。另一個(gè)實(shí)施例中,客戶操作系統(tǒng)110通過(guò)管理程序101與控制操作系統(tǒng)105通信,以請(qǐng)求訪問(wèn)磁盤(pán)或網(wǎng)絡(luò)。仍在另一個(gè)實(shí)施例中,客戶操作系統(tǒng)110和控制操作系統(tǒng)105可通過(guò)由管理程序101建立的通信信道通信,例如,通過(guò)由管理程序101提供的多個(gè)共享存儲(chǔ)器頁(yè)面通信。一些實(shí)施例中,控制操作系統(tǒng)105包括用于直接與由計(jì)算裝置100提供的網(wǎng)絡(luò)硬件通信的網(wǎng)絡(luò)后端驅(qū)動(dòng)器。一個(gè)這樣的實(shí)施例中,網(wǎng)絡(luò)后端驅(qū)動(dòng)器處理來(lái)自至少一個(gè)客戶操作系統(tǒng)110的至少一個(gè)虛擬機(jī)請(qǐng)求。其他實(shí)施例中,控制操作系統(tǒng)105包括用于與計(jì)算裝置100上的存儲(chǔ)單元通信的塊后端驅(qū)動(dòng)器。一個(gè)這樣的實(shí)施例中,塊后端驅(qū)動(dòng)器根據(jù)從客戶操作系統(tǒng)110接收的至少一個(gè)請(qǐng)求從存儲(chǔ)單元讀寫(xiě)數(shù)據(jù)。一個(gè)實(shí)施例,控制操作系統(tǒng)105包括工具堆棧104。其他實(shí)施例中,工具堆棧104提供如下功能和管理程序101交互、和其他控制操作系統(tǒng)105(例如位于第二計(jì)算裝置IOOb 上)通信,或者管理計(jì)算裝置100上的虛擬機(jī)106b、106c。另一個(gè)實(shí)施例中,工具堆棧104 包括自定義應(yīng)用,其用于向虛擬機(jī)群的管理員提供改進(jìn)的管理功能。一些實(shí)施例中,工具堆棧104和控制操作系統(tǒng)105中的至少一個(gè)包括管理API,其提供用于遠(yuǎn)程配置并控制計(jì)算裝置100上運(yùn)行的虛擬機(jī)106的接口。其他實(shí)施例中,控制操作系統(tǒng)105通過(guò)工具堆棧104 和管理程序101通信。一個(gè)實(shí)施例中,管理程序101在由管理程序101創(chuàng)建的虛擬機(jī)106內(nèi)執(zhí)行客戶操作系統(tǒng)110。另一個(gè)實(shí)施例中,客戶操作系統(tǒng)110為計(jì)算裝置100的用戶提供對(duì)計(jì)算環(huán)境中的資源的訪問(wèn)。另一個(gè)實(shí)施例中,資源包括程序、應(yīng)用、文檔、文件、多個(gè)應(yīng)用、多個(gè)文件、 可執(zhí)行程序文件、桌面環(huán)境、計(jì)算環(huán)境或?qū)τ?jì)算裝置100的用戶可用的其他資源。另一個(gè)實(shí)施例中,可通過(guò)多個(gè)訪問(wèn)方法將資源傳送給計(jì)算裝置100,這些方法包括但不限于常規(guī)的直接安裝在計(jì)算裝置100上、通過(guò)應(yīng)用流的方法傳送給計(jì)算裝置100、將由在第二計(jì)算裝置 100'上執(zhí)行資源產(chǎn)生的并通過(guò)表示層協(xié)議傳送給計(jì)算裝置100的輸出數(shù)據(jù)傳送給計(jì)算裝置100、將由在第二計(jì)算裝置100'上執(zhí)行的虛擬機(jī)執(zhí)行資源所產(chǎn)生的輸出數(shù)據(jù)傳送給計(jì)算裝置100、或者從連接到計(jì)算裝置100的移動(dòng)存儲(chǔ)裝置(例如USB設(shè)備)執(zhí)行或者通過(guò)在計(jì)算裝置100上執(zhí)行的虛擬機(jī)執(zhí)行并且產(chǎn)生輸出數(shù)據(jù)。一些實(shí)施例中,計(jì)算裝置100把執(zhí)行資源所產(chǎn)生的輸出數(shù)據(jù)傳輸給另一個(gè)計(jì)算裝置100'。一個(gè)實(shí)施例中,客戶操作系統(tǒng)110和該客戶操作系統(tǒng)110在其上執(zhí)行的虛擬機(jī)結(jié)合形成完全虛擬化虛擬機(jī),該完全虛擬化虛擬機(jī)并不知道自己是虛擬機(jī),這樣的機(jī)器可稱為“Domain U HVM(硬件虛擬機(jī))虛擬機(jī)”。另一個(gè)實(shí)施例中,完全虛擬化機(jī)包括模擬基本輸入/輸出系統(tǒng)(BIOS)的軟件以便在完全虛擬化機(jī)中執(zhí)行操作系統(tǒng)。仍在另一個(gè)實(shí)施例中,完全虛擬化機(jī)可包括驅(qū)動(dòng)器,其通過(guò)和管理程序101通信提供功能。這樣的實(shí)施例中, 驅(qū)動(dòng)器通常意識(shí)到自己在虛擬化環(huán)境中執(zhí)行。另一個(gè)實(shí)施例中,客戶操作系統(tǒng)110和該客戶操作系統(tǒng)110在其上執(zhí)行的虛擬機(jī)結(jié)合形成超虛擬化虛擬機(jī)(paravirtualized),該超虛擬化虛擬機(jī)意識(shí)到自己是虛擬機(jī),這樣的機(jī)器可稱為“Doma in U PV虛擬機(jī)”。另一個(gè)實(shí)施例中,超虛擬化機(jī)包括完全虛擬化機(jī)不包括的額外驅(qū)動(dòng)器。另一個(gè)實(shí)施例中,超虛擬化機(jī)包括如上所述的被包含在控制操作系統(tǒng)105中的網(wǎng)絡(luò)后端驅(qū)動(dòng)器和塊后端驅(qū)動(dòng)器。計(jì)算裝置100可以被部署為任意類型和形式的計(jì)算裝置和/或在其上執(zhí)行,例如能夠與任意類型和形式的網(wǎng)絡(luò)通信并且執(zhí)行此處所描述的操作的計(jì)算機(jī)、網(wǎng)絡(luò)裝置或設(shè)備。圖IB和IC描述了用于實(shí)施此處所描述的方法和系統(tǒng)的實(shí)施例的計(jì)算裝置100的框圖。 如圖IB和IC所示,計(jì)算裝置100包括中央處理單元121和主存儲(chǔ)器單元122。如圖IB所示,計(jì)算裝置100可包括存儲(chǔ)裝置128、安裝裝置116、網(wǎng)絡(luò)接口 118、I/O控制器123、顯示裝置12如-1對(duì)11、鍵盤(pán)1 和諸如鼠標(biāo)的指示裝置127。存儲(chǔ)裝置1 可包括但不限于操作系統(tǒng)、軟件和客戶機(jī)代理120。如圖IC所示,每個(gè)計(jì)算裝置100也可包括其它可選的部件, 例如存儲(chǔ)器端口 103、橋170、一個(gè)或多個(gè)輸入/輸出設(shè)備130a-130n(總的使用標(biāo)號(hào)130表示),以及與中央處理單元121通信的高速緩存存儲(chǔ)器140。中央處理單元121是響應(yīng)并處理從主存儲(chǔ)器單元122取出的指令的任意邏輯電路。在許多實(shí)施例中,中央處理單元121由微處理器單元提供,例如由California, Mountain View 的 htel 公司制造的微處理器單元;由 Illinois,Schaumburg 的 Motorola 公司制造的微處理器單元;由Califirnia,Santa Clara的Transmeta公司制造的微處理 ^# 71 ; New York, White Plains ^ International Business Machines ^wJfj^JitW RS/6000 處理器;或者由 California,Sunnyvale 的 Advanced Micro Devices 公司制造的微處理器單元。計(jì)算裝置100可以基于這些處理器中的任意一種,或者能夠按照這里所說(shuō)明的那樣運(yùn)行的任意其它處理器。主存儲(chǔ)器單元122可以是能夠存儲(chǔ)數(shù)據(jù)并允許微處理器121直接訪問(wèn)任意存儲(chǔ)位置的一個(gè)或多個(gè)存儲(chǔ)器芯片,例如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、突發(fā)(Burst)SRAM或同步突發(fā)SRAM (BSRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器DRAM、快速頁(yè)模式DRAM (FPM DRAM)、增強(qiáng) DRAM (EDRAM)、擴(kuò)展數(shù)據(jù)輸出RAM (EDO RAM)、擴(kuò)展數(shù)據(jù)輸出DRAM (EDO DRAM)、突發(fā)擴(kuò)展數(shù)據(jù)輸出 DRAM(BED0 DRAM)、增強(qiáng)型 DRAM (EDRAM)、同步 DRAM (SDRAM)、JEDEC SRAM、PC100 SDRAM、 雙倍數(shù)據(jù)傳輸率SDRAM (DDR SDRAM)、增強(qiáng)SRAM (ESDRAM)、同步鏈路DRAM (SLDRAM)、直接 Rambus DRAM (DRDRAM)或鐵電RAM (FRAM)。主存儲(chǔ)器122可以基于上述存儲(chǔ)器芯片的任意一種,或者能夠像這里所說(shuō)明的那樣運(yùn)行的任意其它可用存儲(chǔ)器芯片。在圖IB中所示的實(shí)施例中處理器121通過(guò)系統(tǒng)總線150(在下面進(jìn)行更詳細(xì)的描述)與主存儲(chǔ)器122進(jìn)行通信。圖IC描述了在其中處理器通過(guò)存儲(chǔ)器端口 103直接與主存儲(chǔ)器122通信的計(jì)算裝置 100的實(shí)施例。例如,在圖IC中主存儲(chǔ)器122可以是DRDRAM。圖IC描述在其中主處理器121通過(guò)有時(shí)被稱為背側(cè)總線的次級(jí)總線直接與高速緩存存儲(chǔ)器140通信的實(shí)施例。其他實(shí)施例中,主處理器121使用系統(tǒng)總線150與高速緩存存儲(chǔ)器140通信。高速緩存存儲(chǔ)器140通常有比主存儲(chǔ)器122更快的響應(yīng)時(shí)間,并且通常由SRAM、BSRAM或EDRAM提供。在圖IC中所示的實(shí)施例中,處理器121通過(guò)本地系統(tǒng)總線 150與多個(gè)I/O裝置130進(jìn)行通信??梢允褂酶鞣N不同的總線將中央處理單元121連接到任意I/O裝置130,包括VESA VL總線、ISA總線、EISA總線、微通道體系結(jié)構(gòu)(MCA)總線、 PCI總線、PCI-X總線、PCI-Express總線或NuBus。對(duì)于I/O裝置是視頻顯示器124的實(shí)施例,處理器121可以使用高級(jí)圖形端口(AGP)與顯示裝置IM通信。圖IC描述了在其中主處理器121通過(guò)HYPERTRANSPORT,RAPIDI0,或INFINIBAND通信技術(shù)直接與I/O裝置130b 通信的計(jì)算機(jī)100的實(shí)施例。圖IC也描述了在其中本地總線和直接通信相混合的實(shí)施例 處理器121使用本地互連總線與I/O裝置130a通信同時(shí)直接與I/O裝置130b通信。各式各樣的I/O裝置130a-130n可以存在于計(jì)算裝置100中。輸入設(shè)備包括鍵盤(pán)、 鼠標(biāo)、觸控板、軌跡球、話筒、撥號(hào)盤(pán)和繪圖板。輸出設(shè)備包括視頻顯示器、揚(yáng)聲器、噴墨打印機(jī)、激光打印機(jī)和熱升華打印機(jī)。如圖IB所示,I/O裝置可以由I/O控制器123控制。I/O 控制器可以控制一個(gè)或多個(gè)I/O裝置,例如鍵盤(pán)1 和指示裝置127(如鼠標(biāo)或光筆)。此外,I/O裝置還可以為計(jì)算裝置100提供存儲(chǔ)和/或安裝介質(zhì)116。仍在其它實(shí)施例中,計(jì)算裝置100可以提供USB連接(未示出)以接收手持USB存儲(chǔ)裝置,例如由位于California, Los Alamitos的Twintech Industry公司生產(chǎn)的設(shè)備的USB閃存驅(qū)動(dòng)線。再次參考圖1B,計(jì)算裝置100可以支持任意適當(dāng)?shù)陌惭b裝置116,例如用于接收像 3. 5英寸、5. 25英寸磁盤(pán)或ZIP磁盤(pán)這樣的軟盤(pán)的軟盤(pán)驅(qū)動(dòng)器、⑶-ROM驅(qū)動(dòng)器、⑶-R/RW驅(qū)動(dòng)器、DVD-ROM驅(qū)動(dòng)器、閃存驅(qū)動(dòng)器、多種格式的磁帶驅(qū)動(dòng)器、USB設(shè)備、硬盤(pán)驅(qū)動(dòng)器或適于安裝軟件和程序的任意其它設(shè)備。計(jì)算裝置100還可以包括存儲(chǔ)裝置,諸如一個(gè)或者多個(gè)硬盤(pán)驅(qū)動(dòng)器或者獨(dú)立磁盤(pán)冗余陣列,用于存儲(chǔ)操作系統(tǒng)和其它相關(guān)軟件,以及用于存儲(chǔ)諸如涉及客戶機(jī)代理120的任意程序的應(yīng)用軟件程序。或者,可以使用安裝裝置116的任意一種作為存儲(chǔ)裝置。此外,操作系統(tǒng)和軟件可從可引導(dǎo)介質(zhì)運(yùn)行,可引導(dǎo)介質(zhì)例如是可引導(dǎo) CD,諸如ΚΝ0ΡΡΙΧ,其為一種用于GNU/Linux的可引導(dǎo)CD,可自knoppix. net作為GNU/Linux 分發(fā)獲得。此外,計(jì)算裝置100可以包括網(wǎng)絡(luò)接口 118以通過(guò)多種連接來(lái)與網(wǎng)絡(luò)104對(duì)接,所述連接包括但不限于標(biāo)準(zhǔn)電話線路、LAN或WAN鏈路(例如802. 11,Tl,Τ3、561Λ、X. 25、SNA、DECNET)、寬帶連接(如ISDN、幀中繼、ATM、千兆以太網(wǎng)、SONET上以太網(wǎng) (Ethernet-over-SONET))、無(wú)線連接、或上述任意或全部的某種組合。使用多種通信協(xié)議(例如 TCP/IP、IPX、SPX、NetBIOS、Ethernet、ARCNET、SONET、SDH、光纖分布數(shù)據(jù)接口 (FDDI)、RS232、RS485、IEEE802. 11、IEEE802. Ila IEEE802. lib、IEEE802. llg、CDMA、GSM、 WiMax和直接異步連接)可建立連接。在一個(gè)實(shí)施例中,計(jì)算裝置100可以通過(guò)任意類型和 /或形式的網(wǎng)關(guān)或諸如安全套接字層(SSL)或傳輸層安全(TLS)協(xié)議,或由位于Flordia, FT. Lauderdale的Citrix Systems公司制造的Citrix網(wǎng)關(guān)協(xié)議的隧道協(xié)議來(lái)與其他計(jì)算裝置100’通信。網(wǎng)絡(luò)接口 118可以包括內(nèi)置網(wǎng)絡(luò)適配器、網(wǎng)絡(luò)接口卡、PCMCIA網(wǎng)絡(luò)卡、卡總線網(wǎng)絡(luò)適配器、無(wú)線網(wǎng)絡(luò)適配器、USB網(wǎng)絡(luò)適配器、調(diào)制解調(diào)器或適用于將計(jì)算裝置100對(duì)接到能夠通信并執(zhí)行這里所說(shuō)明的操作的任意類型的網(wǎng)絡(luò)的任意其它設(shè)備。在一些實(shí)施例中,計(jì)算裝置100可以包括多個(gè)顯示裝置1對(duì)『12如或與其相連,這些顯示裝置各自可以是相同或不同的類型和/或形式。因而,任意一種1/0裝置130a-130n 和/或1/0控制器123可以包括任一類型和/或形式的適當(dāng)?shù)挠布④浖蛴布蛙浖慕M合,以支持、允許或提供通過(guò)計(jì)算裝置100連接和使用多個(gè)顯示裝置12如-1對(duì)11。例如,計(jì)算裝置100可以包括任意類型和/或形式的視頻適配器、視頻卡、驅(qū)動(dòng)器和/或庫(kù),以與顯示裝置1^8-12 對(duì)接、通信、連接或以其他方式使用顯示裝置12如-1對(duì)11。在一個(gè)實(shí)施例中,視頻適配器可以包括多個(gè)連接器以與多個(gè)顯示裝置1對(duì)『12如對(duì)接。在其它實(shí)施例中, 計(jì)算裝置100可以包括多個(gè)視頻適配器,每個(gè)視頻適配器與顯示裝置中的一個(gè)或多個(gè)連接。在一些實(shí)施例中,計(jì)算裝置100的操作系統(tǒng)的任一部分都可以被配置用于使用多個(gè)顯示器12如-1對(duì)11。在其它實(shí)施例中,顯示裝置12如-12如中的一個(gè)或多個(gè)可以由一個(gè)或多個(gè)其它計(jì)算裝置提供,諸如(例如通過(guò)網(wǎng)絡(luò))與計(jì)算裝置100連接的計(jì)算裝置100a 和100b。這些實(shí)施例可以包括被設(shè)計(jì)和構(gòu)造的任一類型的軟件,以使用另一個(gè)計(jì)算機(jī)的顯示裝置作為計(jì)算裝置100的第二顯示裝置IMa。本領(lǐng)域的普通技術(shù)人員會(huì)認(rèn)識(shí)和意識(shí)到可以將計(jì)算裝置100配置成擁有多個(gè)顯示裝置的各種方式和實(shí)施例。在進(jìn)一步的實(shí)施例中,1/0裝置130可以是系統(tǒng)總線150和外部通信總線之間的橋,所述外部通信總線如USB總線、Apple桌面總線、RS-232串行連接、SCSI總線、FireWire 總線、FireffireSOO總線、以太網(wǎng)總線、AppleTalk總線、千兆位以太網(wǎng)總線、異步傳輸模式總線、HIPPI總線、超級(jí)HIPPI總線、krialPlus總線、SCI/LAMP總線、光纖信道總線、串行 SCSI總線或HDMI總線。圖IB和IC中所描述類型的計(jì)算裝置100通常地在操作系統(tǒng)的控制下運(yùn)行,操作系統(tǒng)控制任務(wù)的調(diào)度和對(duì)系統(tǒng)資源的訪問(wèn)。計(jì)算裝置100可運(yùn)行任一操作系統(tǒng),諸如任一版本的MICROSOFT WINDOWS的操作系統(tǒng);不同發(fā)行版本的Unix和Linux操作系統(tǒng);用于Macintosh計(jì)算機(jī)的MACOS的任意版本;任意嵌入式操作系統(tǒng);任意實(shí)時(shí)操作系統(tǒng);任意開(kāi)源操作系統(tǒng);任意專有操作系統(tǒng);任意用于移動(dòng)計(jì)算裝置的操作系統(tǒng),或者能夠在計(jì)算裝置上運(yùn)行且執(zhí)行此處所描述的操作的任意其它操作系統(tǒng)。典型的操作系統(tǒng)包括,但不限于WINDOWS 3· χ、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT 3. 51、WINDOWS NT 4.0、WINDOWS CE、WINDOWS MOBILE, WINDOWS XP 禾口 WINDOWS VISTA,所有這些均由位于 Washington, Redmond的微軟公司出品;由位于California,Cupertino的蘋(píng)果計(jì)算機(jī)出品的Mac OS ;由位于New York, Armonk的國(guó)際商業(yè)機(jī)器公司出品的OS/2 ;以及由位于Utah,
9Salt Lake City的Caldera公司發(fā)布的可免費(fèi)使用的Linux操作系統(tǒng)或者任意類型和/或形式的Unix操作系統(tǒng),以及其它。計(jì)算機(jī)系統(tǒng)100可以是任意工作站、電話、桌面計(jì)算機(jī)、膝上型或筆記本計(jì)算機(jī)、 服務(wù)器、手持計(jì)算機(jī)、移動(dòng)電話或其他便攜電信通信設(shè)備、媒體播放設(shè)備、游戲系統(tǒng)、移動(dòng)計(jì)算裝置,或能夠通信的任意其它類型和/或形式的計(jì)算、電信或者媒體裝置。計(jì)算機(jī)系統(tǒng) 100有足夠的處理器能力和存儲(chǔ)容量以執(zhí)行此處所述的操作。例如,計(jì)算機(jī)系統(tǒng)100可包括由位于California,Cupertino的蘋(píng)果計(jì)算機(jī)公司出品的IPOD系列設(shè)備、由位于日本東京的索尼公司出品的 PLAYSTATI0N2、PLAYSTATI0N3 或PERSONAL PLAYSTATION PORTABLE (PSP) 設(shè)備,由位于日本Kyoto的Nintendo有限公司出品的NINTENDO DS、NINTENDO GAMEB0Y、 NINTENDO GAMEB0Y ADVANCED 或 NINTENDO REVOLUTION 設(shè)備,或者由位于 Washington, Redmond的微軟公司出品的XBOX或XBOX 360設(shè)備。在一些實(shí)施例中,計(jì)算裝置100可以有不同的處理器、操作系統(tǒng)以及與該裝置一致的輸入設(shè)備。例如,在一個(gè)實(shí)施例中,計(jì)算裝置100是由I^lm公司出品的Treol80、270、 600、650、680、700p、700w或750智能電話。在這些實(shí)施例的一些中,TERO智能電話是在 I5aImOS操作系統(tǒng)的控制下操作并且包括筆輸入設(shè)備以及五向?qū)Ш皆O(shè)備。在其他實(shí)施例中,計(jì)算裝置100是移動(dòng)設(shè)備,例如,JAVA使能蜂窩電話(JAVA enabled cellular telephone)或個(gè)人數(shù)字助理(PDA),諸如 i55sr,i58sr, i85s, i88s, i90c, i95cl或imllOO,以上這些均由位于Illinois, Schaumburg的摩托羅拉公司制造;由位于日本Kyoto的Kyocera公司制造的6035或7135 ;或者由位于韓國(guó)首爾的Samsung電子有限公司制造的i300或i330。在一些實(shí)施例中,計(jì)算裝置100是由位于芬蘭的諾基亞公司制造或由位于瑞典Lund的Sony Ericsson Mobile Communications AB公司制造的移動(dòng)設(shè)備。仍在其他實(shí)施例中,計(jì)算裝置100是黑莓(Bladcberry)手持或智能電話,諸如由Research In Motion有限公司制造的設(shè)備,包括黑莓7100系列、8700系列、7700系列、 7200系列、黑莓7520或黑莓PERAL 8100。仍在其他實(shí)施例中,計(jì)算裝置100是智能電話、 PocketPC,PocketPC 電話,或支持 Microsft Windows Mobile Software 的其它手持移動(dòng)設(shè)備。此外,計(jì)算裝置100可以是任意工作站、桌面計(jì)算機(jī)、膝上型或筆記本計(jì)算機(jī)、服務(wù)器、 手持計(jì)算機(jī)、移動(dòng)電話、任意其它計(jì)算機(jī)、或能夠通信并有足夠的處理器能力和存儲(chǔ)容量以執(zhí)行此處所述的操作的其它形式的計(jì)算或者電信設(shè)備。在一些實(shí)施例中,計(jì)算裝置100是數(shù)字音頻播放器。在這些實(shí)施例的一個(gè)中,計(jì)算裝置100是諸如由位于California Cupertino的蘋(píng)果計(jì)算機(jī)公司制造的Apple IPOD,IPOD Touch, IPOD ΝΑΝΟ和IPOD SHUFFLE系列設(shè)備的數(shù)字音頻播放器。在這些實(shí)施例的又一個(gè)中,數(shù)字音頻播放器可作為便攜媒體播放器和作為大容量存儲(chǔ)裝置來(lái)工作。在其他實(shí)施例中,計(jì)算裝置 100 是諸如由位于 NJ,Ridgefield Park 的 Samsung Electronics America 公司制造的 DigitalAudioPlayer klectMP3 播放器,或由位于 IL. khaumburg 的Motorola 公司制造的Motorola m500或m25 Digital Audio Players的數(shù)字音頻播放器。仍在其他實(shí)施例中,計(jì)算裝置100是便攜媒體播放器,諸如由Creative Technologies有限公司制造的 ZEN VISION W,ZEN VISION系列、ZEN PORTABLE MEDIA CENTER設(shè)備或MP3播放器的Digital MP3系列。仍在其他實(shí)施例中,計(jì)算裝置100是支持以下文件格式的便攜媒體播放器或數(shù)字音頻播放器,這些文件格式包括,但不限于MP3、WAV、M4A/AAC、WMAProtected AAC、AIFF, Audible 音頻書(shū)、Apple Lossless 音頻文件格式和.mov、. m4v 以及.mp4MPEG_4 (H. 264/ MPEG-4AVC)視頻文件格式。在一些實(shí)施例中,計(jì)算裝置100包括設(shè)備的組合,例如與數(shù)字音頻播放器或便攜媒體播放器相組合的移動(dòng)電話。在這些實(shí)施例的一個(gè)中,計(jì)算裝置100是智能電話,例如由蘋(píng)果計(jì)算機(jī)公司制造的iPhone,或由Research InMotion有限公司制造的黑莓設(shè)備。又一個(gè)實(shí)施例中,計(jì)算裝置100是裝有web瀏覽器和麥克風(fēng)與揚(yáng)聲器的系統(tǒng)(如電話耳機(jī))的筆記本電腦或桌面計(jì)算機(jī)。在這樣的實(shí)施例中,計(jì)算裝置100是web使能的(web-enabled) 的并且能接聽(tīng)和啟動(dòng)電話呼叫。在其他實(shí)施例中,計(jì)算裝置100是組合數(shù)字音頻播放器和移動(dòng)電話的 Motorola RAZR 或 Motorola ROKR 系列。計(jì)算裝置100可以是文件服務(wù)器、應(yīng)用服務(wù)器、web服務(wù)器、代理服務(wù)器、設(shè)備、網(wǎng)絡(luò)設(shè)備、網(wǎng)關(guān)、應(yīng)用網(wǎng)關(guān)、網(wǎng)關(guān)服務(wù)器、虛擬化服務(wù)器、部署服務(wù)器、SSL VPN服務(wù)器或防火墻。在一些實(shí)施例中,計(jì)算裝置100提供遠(yuǎn)程認(rèn)證撥入用戶服務(wù),并被稱為RADIUS服務(wù)器。 在其他實(shí)施例中,計(jì)算裝置100可以有作為應(yīng)用服務(wù)器或者作為主應(yīng)用服務(wù)器工作的能力。仍在其他實(shí)施例中,計(jì)算裝置100是刀片服務(wù)器。在一個(gè)實(shí)施例中,計(jì)算裝置100可包括活動(dòng)目錄。計(jì)算裝置100可以是應(yīng)用加速設(shè)備。對(duì)于其中計(jì)算裝置100是應(yīng)用加速設(shè)備的實(shí)施例,計(jì)算裝置100可提供包括防火墻功能、應(yīng)用防火墻功能,或負(fù)載平衡功能的功能。在一些實(shí)施例中,計(jì)算裝置100包括諸如由位于 CA, San Jose 的 Citrix 應(yīng)用網(wǎng)絡(luò)組、位于 CA, Mountain View,的 Silver Peak Systems 公司、位于 CA, San Francisco 的 Riverbed Technology 公司、位于 WA, Seattle 的 F5Networks公司或位于CA,Sunnyvale的Juniper Networks公司制造的設(shè)備線中的一個(gè)設(shè)備。在其他實(shí)施例中,計(jì)算裝置100可被稱為客戶機(jī)節(jié)點(diǎn)、客戶機(jī)器、端節(jié)點(diǎn)或端點(diǎn)。 在一些實(shí)施例中,客戶機(jī)100具有作為客戶機(jī)節(jié)點(diǎn)尋求訪問(wèn)服務(wù)器所提供的資源的能力以及作為服務(wù)器節(jié)點(diǎn)為其它客戶機(jī)提供對(duì)所寄載的資源訪問(wèn)的能力。在一些實(shí)施例中,第一客戶機(jī)計(jì)算裝置100a與第二服務(wù)器計(jì)算裝置100b通信。 在一個(gè)實(shí)施例中,客戶機(jī)與群38中的計(jì)算裝置100之一進(jìn)行通信。例如,通過(guò)網(wǎng)絡(luò),客戶機(jī)可以請(qǐng)求執(zhí)行群38中的計(jì)算裝置100所寄載的各種應(yīng)用以及接收應(yīng)用執(zhí)行的結(jié)果的輸出數(shù)據(jù)以用于顯示。在一個(gè)實(shí)施例中,客戶機(jī)執(zhí)行程序鄰近應(yīng)用(program neighborhood application)以與群38中的計(jì)算裝置100通信。計(jì)算裝置100可以執(zhí)行、操作或者以其它方式提供應(yīng)用,該應(yīng)用可以是任何類型和/或形式的軟件、程序或可執(zhí)行指令,諸如任何類型和/或形式的web瀏覽器、基于web的客戶機(jī)、客戶機(jī)-服務(wù)器應(yīng)用、瘦客戶端計(jì)算客戶機(jī)、ActiveX控件、或Java小程序,或者能夠在計(jì)算裝置100上執(zhí)行的任何其他類型和/或形式的可執(zhí)行指令。在一些實(shí)施例中,應(yīng)用可以是由第二計(jì)算裝置代表第一計(jì)算裝置的用戶執(zhí)行的基于服務(wù)器的或者基于遠(yuǎn)程的應(yīng)用。在其他實(shí)施例中,第二計(jì)算裝置可使用任何瘦客戶端或遠(yuǎn)程顯示協(xié)議向第一計(jì)算裝置顯示輸出的數(shù)據(jù),所述協(xié)議如由位于Ft. Lauderdale Florida的Citrix Systems公司制造的獨(dú)立計(jì)算架構(gòu)(ICA)協(xié)議;或由位于Washington,Redmond的Microsoft公司制造的遠(yuǎn)程桌面協(xié)議(RDP) ;Xll協(xié)議;由AT&T貝爾實(shí)驗(yàn)室制造的虛擬網(wǎng)絡(luò)計(jì)算(VNC)協(xié)議;由位于 USA,CA, Sunnyvale 和 IsraelJaanana 的 Qumranet 公司制造的 SPICE 協(xié)議;由位于 CA, Milpitas的VESA公司制造的Net2Display協(xié)議;由位于B. C. Burnaby的Teradici公司制造的PC-over-IP協(xié)議;由位于CA,San Jose的Wyse Technology公司制造的TCX協(xié)議;由位于NY,NewYork的紐約哥倫比亞大學(xué)開(kāi)發(fā)的THINC協(xié)議;或者由位于MA,Chelmsford的 Desktone公司制造的Virtual-D協(xié)議。應(yīng)用可以使用任何類型的協(xié)議,并且其可以是,例如,HTTP客戶機(jī)、FTP客戶機(jī)、Oscar客戶機(jī)或Telnet客戶機(jī)。在其他實(shí)施例中,應(yīng)用包括與諸如軟IP電話的網(wǎng)絡(luò)電話(VoIP)通信有關(guān)的任意類型的軟件。在進(jìn)一步的實(shí)施例中, 應(yīng)用包括與實(shí)時(shí)數(shù)據(jù)通信有關(guān)的任何應(yīng)用例如用于流式傳輸視頻和/或音頻的應(yīng)用。一些實(shí)施例中,第一計(jì)算裝置IOOa代表客戶機(jī)計(jì)算裝置IOOb的用戶執(zhí)行應(yīng)用。 其他實(shí)施例中,計(jì)算裝置IOOa執(zhí)行虛擬機(jī),其提供執(zhí)行會(huì)話,在該會(huì)話中,代表用戶或客戶機(jī)計(jì)算裝置IOOb執(zhí)行應(yīng)用。一個(gè)這樣的實(shí)施例中,執(zhí)行會(huì)話是寄載的桌面會(huì)話。另一個(gè)這樣的實(shí)施例中,計(jì)算裝置100執(zhí)行終端服務(wù)會(huì)話。終端服務(wù)會(huì)話可以提供寄載的桌面環(huán)境。 仍在另一個(gè)這樣的實(shí)施例中,執(zhí)行會(huì)話提供對(duì)計(jì)算環(huán)境的訪問(wèn),計(jì)算環(huán)境可包括以下的一個(gè)或多個(gè)應(yīng)用、多個(gè)應(yīng)用、桌面應(yīng)用以及在其中可執(zhí)行一個(gè)或多個(gè)應(yīng)用的桌面會(huì)話?,F(xiàn)參考圖2A,框圖描述用于優(yōu)化運(yùn)行至少一個(gè)進(jìn)程的虛擬機(jī)的配置的系統(tǒng)的一個(gè)實(shí)施例的框圖。概括而言,該系統(tǒng)包括計(jì)算裝置100、虛擬機(jī)250、管理程序101和進(jìn)程識(shí)別代理210。計(jì)算裝置100包括至少一個(gè)物理硬件資源,例如,物理處理器221。管理程序101 在計(jì)算裝置100上執(zhí)行。虛擬機(jī)250在計(jì)算裝置100上執(zhí)行并且包括至少一個(gè)客戶操作系統(tǒng)110和至少一個(gè)虛擬資源212。所述至少一個(gè)虛擬資源212具有配置參數(shù)。在虛擬機(jī)250 內(nèi)執(zhí)行的進(jìn)程識(shí)別代理210識(shí)別當(dāng)前在虛擬機(jī)上執(zhí)行的至少一個(gè)進(jìn)程214的名稱。管理程序101響應(yīng)于從進(jìn)程識(shí)別代理210接收所識(shí)別的名稱來(lái)改變配置參數(shù)的至少一個(gè)值?,F(xiàn)參考圖2A,更具體地,虛擬機(jī)250包括至少一個(gè)虛擬資源212。在一個(gè)實(shí)施例中, 至少一個(gè)虛擬資源212是如與圖IA有關(guān)的上文所描述的虛擬處理器132。在又一個(gè)實(shí)施例中,至少一個(gè)虛擬資源212是如與圖IA有關(guān)的上文所描述的虛擬盤(pán)142。仍在又一個(gè)實(shí)施例中,虛擬資源是虛擬網(wǎng)絡(luò)裝置。在又一個(gè)實(shí)施例中,虛擬資源是虛擬存儲(chǔ)器。仍在又一個(gè)實(shí)施例中,管理程序101創(chuàng)建至少一個(gè)虛擬資源212。在又一個(gè)實(shí)施例中,管理程序加載虛擬機(jī)映像以執(zhí)行虛擬機(jī)250,同時(shí)該虛擬機(jī)映像定義至少一個(gè)虛擬資源,管理程序101實(shí)例化所述虛擬資源。至少一個(gè)虛擬資源212具有配置參數(shù)。在一個(gè)實(shí)施例中,例如,配置參數(shù)識(shí)別虛擬資源212所訪問(wèn)的物理資源而且該配置參數(shù)的值指定已給虛擬資源212分配多少對(duì)物理資源的訪問(wèn)。在虛擬機(jī)250內(nèi)執(zhí)行的進(jìn)程識(shí)別代理210識(shí)別當(dāng)前在虛擬機(jī)250上執(zhí)行的至少一個(gè)進(jìn)程的名稱。又一個(gè)實(shí)施例中,進(jìn)程識(shí)別代理210在計(jì)算裝置100的虛擬化層中執(zhí)行。仍在又一個(gè)實(shí)施例中,進(jìn)程識(shí)別代理210在計(jì)算裝置100的管理程序?qū)又袌?zhí)行。在一些實(shí)施例中,進(jìn)程識(shí)別代理210包括收發(fā)器。在這些實(shí)施例的一個(gè)中,進(jìn)程識(shí)別代理210中的收發(fā)器將所識(shí)別的名稱傳輸給管理程序101。其他實(shí)施例中,進(jìn)程識(shí)別代理210包括用于查詢客戶操作系統(tǒng)110以識(shí)別當(dāng)前在虛擬機(jī)250上執(zhí)行的至少一個(gè)進(jìn)程的功能。在這些實(shí)施例的一個(gè)中,例如,進(jìn)程識(shí)別代理210訪問(wèn)應(yīng)用編程接口以查詢客戶操作系統(tǒng)110的殼組件。在一個(gè)實(shí)施例中,進(jìn)程識(shí)別代理210是客戶操作系統(tǒng)110內(nèi)的組件。又一個(gè)實(shí)施例中,在客戶操作系統(tǒng)110的初始執(zhí)行時(shí)的安裝或者初始化進(jìn)程期間,用戶將進(jìn)程識(shí)別代理210安裝到客戶操作系統(tǒng)110中;例如,當(dāng)用戶初始執(zhí)行客戶操作系統(tǒng)110時(shí),用戶可接收到安裝包括進(jìn)程識(shí)別代理210的多個(gè)管理工具的選項(xiàng)。仍在又一個(gè)實(shí)施例中,進(jìn)程識(shí)別代理210稱為“客戶代理”。管理程序101響應(yīng)于從進(jìn)程識(shí)別代理210接收所識(shí)別的名稱來(lái)改變配置參數(shù)的值。一個(gè)實(shí)施例中,管理程序101通過(guò)與進(jìn)程識(shí)別代理210和管理程序101通信的控制操作系統(tǒng)105直接接收所識(shí)別的名稱。在又一個(gè)實(shí)施例中,所改變的值指定分配給虛擬機(jī)的物理處理器時(shí)間的值。仍在又一個(gè)實(shí)施例中,所改變的值指定分配給與虛擬機(jī)關(guān)聯(lián)的頁(yè)表的隨機(jī)存取存儲(chǔ)器(RAM)的數(shù)量的值。又一個(gè)實(shí)施例中,所改變的值指定分配給虛擬機(jī)的物理隨機(jī)存取存儲(chǔ)器(RAM)的數(shù)量的值。在一些實(shí)施例中,管理程序響應(yīng)于所指定的配置參數(shù)的值來(lái)分配所述至少一個(gè)虛擬資源對(duì)計(jì)算裝置100所提供的至少一個(gè)物理資源的訪問(wèn)。 其他實(shí)施例中,管理程序101響應(yīng)于從進(jìn)程識(shí)別代理210和控制操作系統(tǒng)105的至少一個(gè)接收做出更改的指令來(lái)改變配置參數(shù)的值?,F(xiàn)參考圖2B,框圖描述用于優(yōu)化多個(gè)虛擬機(jī)的配置的系統(tǒng)的一個(gè)實(shí)施例。簡(jiǎn)言之, 該系統(tǒng)包括計(jì)算裝置100、第一虛擬機(jī)250、第二虛擬機(jī)沈0、管理程序101和進(jìn)程識(shí)別代理 210。正如圖2B所描述的,在第一虛擬機(jī)250上執(zhí)行的進(jìn)程識(shí)別代理210與控制操作系統(tǒng) 105通信,所述控制操作系統(tǒng)105與管理程序101通信。進(jìn)程識(shí)別代理210識(shí)別當(dāng)前在虛擬機(jī)250上執(zhí)行的至少一個(gè)進(jìn)程的名稱。進(jìn)程識(shí)別代理210包括收發(fā)器,所述收發(fā)器向控制操作系統(tǒng)105傳輸所識(shí)別的名稱。控制操作系統(tǒng)105識(shí)別對(duì)第二虛擬機(jī)260中至少一個(gè)虛擬資源的配置參數(shù)的值將要做出的改變??刂撇僮飨到y(tǒng)105包括發(fā)送器,所述發(fā)送器向管理程序101發(fā)送改變第二虛擬機(jī)沈0中至少一個(gè)資源的所識(shí)別的值的指令。一個(gè)實(shí)施例中,管理程序響應(yīng)于從進(jìn)程識(shí)別代理210和控制操作系統(tǒng)105的至少一個(gè)接收變更值的指令來(lái)改變第二虛擬機(jī)中至少一個(gè)虛擬資源的配置參數(shù)的值。又一個(gè)實(shí)施例中,管理程序響應(yīng)于從進(jìn)程識(shí)別代理210和控制操作系統(tǒng)105的至少一個(gè)接收所識(shí)別的名稱來(lái)改變第二虛擬機(jī)中至少一個(gè)虛擬資源的配置參數(shù)的值。現(xiàn)參考圖3,流程圖描述用于優(yōu)化運(yùn)行至少一個(gè)進(jìn)程的虛擬機(jī)的配置的方法的一個(gè)實(shí)施例。概括來(lái)講,該方法包括由在計(jì)算裝置上執(zhí)行的管理程序指定在計(jì)算裝置上執(zhí)行的虛擬機(jī)中至少一個(gè)虛擬資源的配置參數(shù)(302)。該方法包括由在虛擬機(jī)內(nèi)執(zhí)行的代理識(shí)別當(dāng)前在虛擬機(jī)上執(zhí)行的至少一個(gè)進(jìn)程的名稱(304)。該方法包括響應(yīng)于所述名稱的識(shí)別來(lái)改變所指定的配置參數(shù)的值(306)。在一些實(shí)施例中,提供在其上具有指令的計(jì)算機(jī)可讀介質(zhì),當(dāng)執(zhí)行指令時(shí),提供對(duì)運(yùn)行至少一個(gè)進(jìn)程的虛擬機(jī)的配置的優(yōu)化?,F(xiàn)參考圖3,更具體地,管理程序指定在計(jì)算裝置上執(zhí)行的虛擬機(jī)中至少一個(gè)虛擬資源的配置參數(shù)(30 。在一個(gè)實(shí)施例中,管理程序101指定至少一個(gè)虛擬資源212的配置參數(shù)的值。一些實(shí)施例中,管理程序101在虛擬機(jī)初始化進(jìn)程中指定虛擬機(jī)250中至少一個(gè)虛擬資源212的配置參數(shù)。在這些實(shí)施例的一個(gè)中,例如,管理程序101可通過(guò)創(chuàng)建虛擬機(jī)映像的實(shí)例來(lái)產(chǎn)生虛擬機(jī)250,所述虛擬機(jī)映像識(shí)別將要被包括在虛擬機(jī)250中的至少一個(gè)虛擬資源212并且指定所述至少一個(gè)虛擬資源212的配置參數(shù)。在這些實(shí)施例的又一個(gè)中,管理程序101可訪問(wèn)配置說(shuō)明以確定配置參數(shù)的值。其他實(shí)施例中,管理程序101 訪問(wèn)配置映射,所述配置映射將至少一個(gè)資源的標(biāo)識(shí)與所述至少一個(gè)資源的配置參數(shù)的值相關(guān)聯(lián)。在這些實(shí)施例的一個(gè)中,例如,管理程序101可訪問(wèn)配置映射,所述配置映射指示虛擬機(jī)應(yīng)包括虛擬處理器132,所述虛擬處理器132可訪問(wèn)物理處理器221的一定量的時(shí)間 (配置參數(shù)),并且指定所述物理處理器221的時(shí)間量(配置參數(shù)的值)。進(jìn)一步的實(shí)施例中,管理程序101響應(yīng)于所指定的配置參數(shù)的值來(lái)分配至少一個(gè)虛擬資源212對(duì)計(jì)算裝置 100所提供的至少一個(gè)物理資源的訪問(wèn)。在虛擬機(jī)上執(zhí)行的代理識(shí)別當(dāng)前在虛擬機(jī)上執(zhí)行的至少一個(gè)進(jìn)程的名稱(304)。 在一個(gè)實(shí)施例中,代理將所識(shí)別的名稱傳輸?shù)娇刂撇僮飨到y(tǒng)105。進(jìn)程識(shí)別代理210識(shí)別當(dāng)前在虛擬機(jī)250上執(zhí)行的至少一個(gè)進(jìn)程的名稱。在這些實(shí)施例的一個(gè)中,進(jìn)程識(shí)別代理210 查詢客戶操作系統(tǒng)110的殼組件以確定在虛擬機(jī)250內(nèi)的客戶操作系統(tǒng)上執(zhí)行的進(jìn)程214 的名稱。在這些實(shí)施例的又一個(gè)中,進(jìn)程識(shí)別代理210將所識(shí)別的進(jìn)程名稱傳輸?shù)娇刂撇僮飨到y(tǒng)105。仍在這些實(shí)施例的又一個(gè)中,進(jìn)程識(shí)別代理210將所識(shí)別的進(jìn)程名稱傳輸?shù)焦ぞ叨褩?04。在其他實(shí)施例中,進(jìn)程識(shí)別代理210訪問(wèn)客戶操作系統(tǒng)110所提供的應(yīng)用編程接口以便檢索在虛擬機(jī)250上執(zhí)行的進(jìn)程的列舉。在進(jìn)一步的實(shí)施例中,進(jìn)程識(shí)別代理 210將所識(shí)別的名稱傳輸給管理程序101。在一些實(shí)施例中,進(jìn)程識(shí)別代理210通過(guò)管理程序101所建立的共享內(nèi)存頁(yè)通信信道來(lái)與控制操作系統(tǒng)105通信。在其他實(shí)施例中,進(jìn)程識(shí)別代理210通過(guò)計(jì)算裝置100 上的網(wǎng)絡(luò)堆棧來(lái)與控制操作系統(tǒng)105通信。仍在其他實(shí)施例中,進(jìn)程識(shí)別代理210通過(guò)對(duì)計(jì)算裝置100上所存儲(chǔ)的共享環(huán)形緩沖區(qū)或其他數(shù)據(jù)結(jié)構(gòu)的修改來(lái)與控制操作系統(tǒng)105通在一個(gè)實(shí)施例中,根據(jù)所識(shí)別的當(dāng)前在虛擬機(jī)上執(zhí)行的至少一個(gè)進(jìn)程的名稱,控制操作系統(tǒng)105確定所指定的配置參數(shù)的值應(yīng)改變。又一個(gè)實(shí)施例中,例如, 控制操作系統(tǒng)105確定進(jìn)程識(shí)別代理210已識(shí)別虛擬機(jī)250已開(kāi)始執(zhí)行的計(jì)算密集 (computationally-intense)的進(jìn)程214的名稱并且確定虛擬機(jī)250的虛擬處理器132當(dāng)前被分配的對(duì)物理處理器221的訪問(wèn)不足以執(zhí)行該進(jìn)程214 ;控制操作系統(tǒng)105確定應(yīng)該改變所指定的配置參數(shù)的值(例如,分配給該虛擬處理器的物理處理器的時(shí)間數(shù)量)。仍在又一個(gè)實(shí)施例中,控制操作系統(tǒng)105通過(guò)增大所指定的配置參數(shù)的值,可改善虛擬機(jī)250中進(jìn)程214的性能。又一個(gè)實(shí)施例中,控制操作系統(tǒng)105向管理程序101傳輸改變所指定的配置參數(shù)的值的指令。一個(gè)實(shí)施例中,控制操作系統(tǒng)105訪問(wèn)配置文件以確定是否指示管理程序響應(yīng)于所識(shí)別的進(jìn)程214的名稱來(lái)改變所指定的配置參數(shù)的值。又一個(gè)實(shí)施例中,控制操作系統(tǒng) 105訪問(wèn)至少一個(gè)進(jìn)程和至少一個(gè)指定的配置參數(shù)的值之間的映射。仍在又一個(gè)實(shí)施例中, 例如,所述映射可以為虛擬機(jī)的虛擬資源的多個(gè)配置參數(shù)的每一個(gè)識(shí)別多個(gè)已知進(jìn)程和推薦值;所述推薦值可被指定來(lái)優(yōu)化虛擬機(jī)的具體特性,例如,移動(dòng)性、性能或可靠性。例如, 配置文件可識(shí)別如下映射
權(quán)利要求
1.一種用于優(yōu)化運(yùn)行至少一個(gè)進(jìn)程的虛擬機(jī)的配置的方法,所述方法包括由在計(jì)算裝置上執(zhí)行的管理程序指定在計(jì)算裝置上執(zhí)行的虛擬機(jī)中的至少一個(gè)虛擬資源的配置參數(shù);由在虛擬機(jī)內(nèi)執(zhí)行的代理識(shí)別當(dāng)前在虛擬機(jī)上執(zhí)行的至少一個(gè)進(jìn)程的名稱;以及響應(yīng)于所述名稱的識(shí)別來(lái)改變所指定的配置參數(shù)的值。
2.根據(jù)權(quán)利要求1所述的方法,還包括由管理程序響應(yīng)于所指定的配置參數(shù)的值來(lái)分配所述至少一個(gè)虛擬資源對(duì)計(jì)算裝置所提供的至少一個(gè)物理資源的訪問(wèn)。
3.根據(jù)權(quán)利要求1所述的方法,還包括由所述代理向管理程序傳輸所識(shí)別的名稱。
4.根據(jù)權(quán)利要求1所述的方法,還包括由管理程序響應(yīng)于從所述代理接收所識(shí)別的名稱來(lái)改變第二虛擬機(jī)中至少一個(gè)虛擬資源的配置參數(shù)的值。
5.根據(jù)權(quán)利要求1所述的方法,其中改變還包括改變指定分配給虛擬機(jī)的物理處理器時(shí)間的值。
6.根據(jù)權(quán)利要求1所述的方法,其中改變還包括改變指定分配給與虛擬機(jī)關(guān)聯(lián)的頁(yè)表的隨機(jī)存取存儲(chǔ)器(RAM)的數(shù)量的值。
7.根據(jù)權(quán)利要求1所述的方法,其中改變還包括改變指定分配給虛擬機(jī)的物理隨機(jī)存取存儲(chǔ)器(RAM)的數(shù)量的值。
8.一種在其上具有指令的計(jì)算機(jī)可讀介質(zhì),當(dāng)執(zhí)行所述指令時(shí)提供用于優(yōu)化運(yùn)行至少一個(gè)進(jìn)程的虛擬機(jī)的配置的方法,所述計(jì)算機(jī)可讀介質(zhì)包括用于由在計(jì)算裝置上執(zhí)行的管理程序指定在計(jì)算裝置上執(zhí)行的虛擬機(jī)中至少一個(gè)虛擬資源的配置參數(shù)的指令;用于由在虛擬機(jī)內(nèi)執(zhí)行的代理識(shí)別當(dāng)前在虛擬機(jī)上執(zhí)行的至少一個(gè)進(jìn)程的名稱的指令;以及用于響應(yīng)于所述名稱的識(shí)別來(lái)改變所指定的配置參數(shù)的值的指令。
9.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),還包括用于由管理程序響應(yīng)于所指定的配置參數(shù)的值來(lái)分配所述至少一個(gè)虛擬資源對(duì)計(jì)算裝置所提供的至少一個(gè)物理資源的訪問(wèn)的指令。
10.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),還包括用于由所述代理向管理程序傳輸所識(shí)別的名稱的指令。
11.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),還包括用于由管理程序響應(yīng)于從代理接收所識(shí)別的名稱來(lái)改變第二虛擬機(jī)中至少一個(gè)虛擬資源的配置參數(shù)的值的指令。
12.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),還包括用于改變指定分配給虛擬機(jī)的物理處理器時(shí)間的值的指令。
13.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),還包括用于改變指定分配給與虛擬機(jī)關(guān)聯(lián)的頁(yè)表的隨機(jī)存取存儲(chǔ)器(RAM)的數(shù)量的值的指令。
14.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),還包括用于改變指定分配給虛擬機(jī)的物理隨機(jī)存取存儲(chǔ)器(RAM)的數(shù)量的值的指令。
15.一種用于優(yōu)化運(yùn)行至少一個(gè)進(jìn)程的虛擬機(jī)的配置的系統(tǒng),所述系統(tǒng)包括在計(jì)算裝置上執(zhí)行的虛擬機(jī)中至少一個(gè)虛擬資源,所述至少一個(gè)虛擬資源具有配置參在虛擬機(jī)內(nèi)執(zhí)行的代理,其識(shí)別當(dāng)前在虛擬機(jī)上執(zhí)行的至少一個(gè)進(jìn)程的名稱;管理程序,其響應(yīng)于從所述代理接收所識(shí)別的名稱來(lái)改變配置參數(shù)的值。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述至少一個(gè)虛擬資源還包括虛擬處理器。
17.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述至少一個(gè)虛擬資源還包括虛擬存儲(chǔ)器。
18.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述代理還包括收發(fā)器,其用于向管理程序傳輸所識(shí)別的名稱。
19.根據(jù)權(quán)利要求15所述的系統(tǒng),其中管理程序還包括用于響應(yīng)于所指定的配置參數(shù)的值來(lái)分配所述至少一個(gè)虛擬資源對(duì)計(jì)算裝置所提供的至少一個(gè)物理資源的訪問(wèn)的裝置。
20.根據(jù)權(quán)利要求15所述的系統(tǒng),其中管理程序還包括用于響應(yīng)于從代理接收所識(shí)別的名稱來(lái)改變第二虛擬機(jī)中至少一個(gè)虛擬資源的配置參數(shù)的值的裝置。
21.根據(jù)權(quán)利要求15所述的系統(tǒng),其中管理程序還包括用于改變指定分配給虛擬機(jī)的物理處理器時(shí)間的值的裝置。
22.根據(jù)權(quán)利要求15所述的系統(tǒng),其中管理程序還包括用于改變指定分配給與虛擬機(jī)關(guān)聯(lián)的頁(yè)表的隨機(jī)存取存儲(chǔ)器(RAM)的數(shù)量的值的裝置。
23.根據(jù)權(quán)利要求15所述的系統(tǒng),其中管理程序還包括用于改變指定分配給虛擬機(jī)的物理隨機(jī)存取存儲(chǔ)器(RAM)的數(shù)量的值的裝置。
全文摘要
用于優(yōu)化運(yùn)行至少一個(gè)進(jìn)程的虛擬機(jī)的配置的系統(tǒng),其包括在計(jì)算裝置上執(zhí)行的虛擬機(jī)中至少一個(gè)虛擬資源,在虛擬機(jī)內(nèi)執(zhí)行的代理和管理程序。所述至少一個(gè)虛擬資源具有配置參數(shù)。所述代理識(shí)別當(dāng)前在虛擬機(jī)上執(zhí)行的至少一個(gè)進(jìn)程的名稱。管理程序響應(yīng)于從所述代理接收所識(shí)別的名稱來(lái)改變配置參數(shù)的值。
文檔編號(hào)G06F9/455GK102257479SQ200980151449
公開(kāi)日2011年11月23日 申請(qǐng)日期2009年11月19日 優(yōu)先權(quán)日2008年12月1日
發(fā)明者D·J·斯科特, J·J·魯?shù)吕? R·W·夏普, V·漢奎茲 申請(qǐng)人:思杰系統(tǒng)有限公司