專利名稱:虛擬機系統(tǒng)和動態(tài)分配即插即用設備的方法
技術領域:
本發(fā)明涉及一種計算機虛擬技術,特別是涉及一種虛擬機系統(tǒng)和動態(tài)分配即插即用設備的方法。
背景技術:
虛擬機系統(tǒng)由來已久,從上世紀60年代開始就首先在大型機以及高端服務器系統(tǒng)進行應用。近代,隨著個人電腦的飛速發(fā)展,虛擬機系統(tǒng)在個人電腦上的應用也日益廣泛。
目前,市場上的虛擬機系統(tǒng)主要有表1中所示的三種類型表1
即插即用(Plug and Play,PnP)是Microsoft提出并首先應用于Windows95系統(tǒng)的一種操作系統(tǒng)特性。因為即插即用極大地降低了操作系統(tǒng)的使用復雜度,提供了良好的易用性,因此,在個人電腦操作系統(tǒng)上得到極為廣泛的支持,并且已經成為一種工業(yè)標準。所以,對即插即用支持的好壞程度將直接影響虛擬機系統(tǒng)從服務器端向個人電腦的遷移。
從表2可以看出,上述三類虛擬機系統(tǒng)對即插即用支持都不是很理想
表2
通過上述分析,能夠得出以下結論現有的虛擬機系統(tǒng)不支持即插即用設備的動態(tài)分配,將直接影響虛擬機系統(tǒng)給最終用戶的用戶體驗,影響其向個人電腦的推廣和應用。
因此,有必要提供一種可以支持即插即用設備動態(tài)分配的虛擬機系統(tǒng)和PnP動態(tài)分配方法來很好地解決目前存在的即插即用設備動態(tài)分配的問題。
發(fā)明內容
本發(fā)明的目的在于,提供一種虛擬機系統(tǒng)。
本發(fā)明的另一目的在于,提供一種動態(tài)分配即插即用設備的方法。
一種虛擬機系統(tǒng),包括虛擬機監(jiān)視器、硬件以及多個操作系統(tǒng)。其中,該虛擬機監(jiān)視器進一步包括即插即用模塊,用于根據調用指令,將產生的相應中斷信號發(fā)送給相應操作系統(tǒng),并通過截獲該相應操作系統(tǒng)的I/O操作,直接將該I/O操作作用于即插即用設備,或是根據即插即用標準規(guī)范,通過軟件模擬I/O操作并將模擬結果反饋給該相應操作系統(tǒng),完成中斷信號所指示的處理。
進一步,虛擬機監(jiān)視器中包括調度器,上述即插即用模塊包括功能調用模塊、中斷設置模塊以及設備I/O接口。其中,功能調用模塊根據調度器的調用指令,輸出相應的條件參數;中斷設置模塊根據功能調用模塊輸出的條件參數,向相應操作系統(tǒng)發(fā)出中斷信號;設備I/O接口截獲該相應操作系統(tǒng)對即插即用設備的I/O操作,直接將該I/O操作作用于即插即用設備,或是根據即插即用標準規(guī)范,通過軟件模擬I/O操作并將模擬結果反饋給該相應操作系統(tǒng)。
另外,所述操作系統(tǒng)中包括即插即用設備應用程序,用戶通過該應用程序產生調用指令,上述即插即用模塊包括功能調用模塊、中斷設置模塊以及設備I/O接口。其中,功能調用模塊根據即插即用設備應用程序產生的調用指令,輸出相應的條件參數;中斷設置模塊根據功能調用模塊輸出的條件參數,向相應操作系統(tǒng)發(fā)出中斷信號;設備I/O接口截獲該相應操作系統(tǒng)對即插即用設備的I/O操作,直接將該I/O操作作用于即插即用設備,或是根據即插即用標準規(guī)范,通過軟件模擬I/O操作并將模擬結果反饋給該相應操作系統(tǒng)。
一種動態(tài)分配即插即用設備的方法,用于將即插即用設備動態(tài)分配給虛擬機系統(tǒng)中的多個操作系統(tǒng)中的至少一操作系統(tǒng),其包括步驟1)接收調用指令,產生的相應中斷信號發(fā)送給相應操作系統(tǒng);2)截獲該相應操作系統(tǒng)的I/O操作,直接將該I/O操作作用于即插即用設備,或是根據即插即用標準規(guī)范,通過軟件模擬I/O操作并將模擬結果反饋給該相應操作系統(tǒng),完成中斷信號所指示的處理。
其中,上述步驟1)包括根據調用指令,輸出相應的條件參數;根據條件參數,向相應操作系統(tǒng)發(fā)出中斷信號。
本發(fā)明的有益效果是通過向不同操作系統(tǒng)發(fā)出即插即用設備拔出或者插入終端信號,即偽造即插即用設備中斷信號,讓操作系統(tǒng)認為該即插即用設備就是正在拔出或者插入,然后自動完成相應的卸載或者安裝過程,實際上該即插即用設備一直是與虛擬機系統(tǒng)物理連接的。因此,可以在不需要用戶參與或者重新配置、啟動操作系統(tǒng)的情況下,實現完全可控的即插即用設備的動態(tài)資源分配。
圖1為本發(fā)明第一實施例的虛擬機系統(tǒng)的結構示意圖。
圖2為本發(fā)明第一實施例的虛擬機系統(tǒng)中即插即用模塊的結構示意圖。
圖3為本發(fā)明第一實施例的虛擬機系統(tǒng)中即插即用設備的動態(tài)分配方法的流程圖。
圖4為本發(fā)明第二實施例的虛擬機系統(tǒng)的結構示意圖。
圖5為本發(fā)明第二實施例的虛擬機系統(tǒng)中即插即用模塊的結構示意圖。
圖6為本發(fā)明第二實施例的虛擬機系統(tǒng)中即插即用設備動態(tài)分配方法的流程圖。
具體實施例方式
以下將結合
本發(fā)明的虛擬機系統(tǒng)以及即插即用設備動態(tài)分配方法。其中,相同的附圖標記表示相同功能的單元或者模塊。
如圖1所示,為本發(fā)明第一實施例的虛擬機系統(tǒng)。該虛擬機系統(tǒng)包括伺服操作系統(tǒng)1、至少一用戶操作系統(tǒng)2、虛擬機監(jiān)視器3以及硬件4。在本發(fā)明第一實施例所涉及的技術方案中,由于僅涉及在一個操作系統(tǒng)向另一個操作系統(tǒng)切換過程中,即,伺服操作系統(tǒng)1向用戶操作系統(tǒng)2的切換或者用戶操作系統(tǒng)2之間的切換過程中,即插即用設備(PnP Device)的切換過程,因此,在這種意義上,可以將該伺服操作系統(tǒng)1視為一個用戶操作系統(tǒng)2,進而便于簡化描述。
該虛擬機監(jiān)視器3包括有調度器31以及即插即用模塊32。其中,該調度器31中設置有數據庫或者列表,該數據庫或者列表中包括各種信息和參數,例如每個操作系統(tǒng)的特性、每個操作系統(tǒng)可以支持的設備(包括即插即用設備)、操作系統(tǒng)和用戶的指令及其對應操作的參數(例如用戶的拔出或者插入指令及其對應的拔出或者插入操作的參數)等。
當從當前操作系統(tǒng)切換到另一操作系統(tǒng),并且需要將與當前操作系統(tǒng)中使用的即插即用設備插入到該另一操作系統(tǒng)時,用戶輸入切換指令。調度器31在接收到用戶輸入的切換指令后,根據其中的列表向即插即用模塊32發(fā)出調用指令。根據調度器31的調用指令,即插即用模塊32向當前操作系統(tǒng)發(fā)出中斷指令(拔出指令),表示需要將即插即用設備從當前操作系統(tǒng)中拔出。同時,該即插即用模塊32截獲當前操作系統(tǒng)后續(xù)對該即插即用設備的I/O操作,完成即插即用設備在當前操作系統(tǒng)中的卸載操作,并將卸載操作結果反饋調度器31。
接下來,在來自收到即插即用模塊32的卸載操作結果后,調度器31向即插即用模塊32發(fā)送調用指令。根據調度器31的調用指令,即插即用模塊32向該另一操作系統(tǒng)發(fā)出中斷指令(插入指令),表示需要將即插即用設備插入該另一操作系統(tǒng)中。同時,該即插即用模塊32截獲該另一操作系統(tǒng)后續(xù)對該即插即用設備的I/O操作,直接將該I/O操作作用于即插即用設備,或是根據即插即用標準規(guī)范,通過軟件模擬I/O操作并將模擬結果反饋給該操作系統(tǒng),完成即插即用設備在該另一操作系統(tǒng)中的安裝操作。
具體地,如圖2所示,該即插即用模塊32可以包括功能調用模塊321、中斷設置模塊322以及設備I/O接口323。
其中,該功能調用模塊321中至少包括調用的條件參數,該參數表明了即插即用設備動態(tài)分配的方式和條件,以及滿足該方式和條件所必需的各種參數。該中斷設置模塊322用于根據功能調用模塊321輸出的條件參數,向操作系統(tǒng)發(fā)出中斷信號。該設備I/O接口323用于截獲操作系統(tǒng)對設備(包括真實設備或者虛擬設備)的I/O操作,并且將I/O操作的結果返回給該操作系統(tǒng),這里,I/O操作的結果可以是真實硬件設備的I/O操作返回結果,也可以是通過軟件模擬I/O操作所獲得的結果。
請一并參閱圖2和圖3,說明在本發(fā)明虛擬機系統(tǒng)中即插即用設備的動態(tài)分配方法。
當調度器31在接收到用戶輸入的、將即插即用設備從當前操作系統(tǒng)切換到另一操作系統(tǒng)的切換指令后,根據其中的列表向功能調用模塊321發(fā)出調用指令。根據調度器31的調用指令,功能調用模塊321將對應的條件參數輸出到中斷設備模塊322。中斷設備模塊322根據功能調用模塊輸出的條件參數,產生相應的中斷信號,并將該中斷信號發(fā)送給當前操作系統(tǒng),表示需要將即插即用設備從當前操作系統(tǒng)中拔出。因為在虛擬機系統(tǒng)中,每個操作系統(tǒng)對應一個或多個虛擬CPU,中斷設備模塊322可以通過設置操作系統(tǒng)的虛擬CPU的中斷標志實現中斷信號的發(fā)送。當前操作系統(tǒng)根據中斷設備模塊322的中斷信號進行后續(xù)的、將即插即用設備從操作系統(tǒng)拔出的I/O操作。
然后,該設備I/O接口323截獲當前操作系統(tǒng)后續(xù)對該即插即用設備的I/O操作,完成即插即用設備在當前操作系統(tǒng)中的卸載操作,并將卸載操作結果反饋調度器31。
接下來,調度器31在來自收到即插即用模塊32的卸載操作結果后,根據其中的列表向功能調用模塊321發(fā)出調用指令。根據調度器31的調用指令,功能調用模塊321將對應的條件參數輸出到中斷設備模塊322。中斷設備模塊322根據功能調用模塊輸出的條件參數,產生相應的中斷信號,并將該中斷信號發(fā)送給該另一操作系統(tǒng),表示需要將即插即用設備插入到該另一操作系統(tǒng)中。該另一操作系統(tǒng)根據中斷設備模塊322的中斷信號進行后續(xù)的、將即插即用設備從操作系統(tǒng)拔出的I/O操作。該設備I/O接口323截獲該另一操作系統(tǒng)后續(xù)對該即插即用設備的I/O操作,完成即插即用設備在該另一操作系統(tǒng)中的插入操作。
在本發(fā)明第一實施例中僅以圖2所示的結構為例進行說明。但不僅限于此,在實現以下即插即用設備在不同操作系統(tǒng)中切換這樣的功能的情況下,也可以有其他配置方式。
例如,在第一實施例中的即插即用設備為獨享設備,因此,在從當前操作系統(tǒng)切換到另一操作系統(tǒng)時,需要將其同時切換到該另一操作系統(tǒng)。但是當該即插即用設備為共享設備時,可以只需要進行將其插入到該另一操作系統(tǒng)中的操作。這時,當前操作系統(tǒng)和該另一操作系統(tǒng)可以同時分享該即插即用設備。
從上述的描述可以得知,本發(fā)明的實質是通過向不同操作系統(tǒng)發(fā)出即插即用設備拔出或者插入終端信號,即偽造即插即用設備中斷信號,讓操作系統(tǒng)認為該即插即用設備就是正在拔出或者插入,然后自動完成相應的卸載或者安裝過程,實際上該即插即用設備一直是與虛擬機系統(tǒng)物理連接的。因此,可以在不需要用戶參與或者重新配置、啟動操作系統(tǒng)的情況下,實現完全可控的即插即用設備的動態(tài)資源分配。
本發(fā)明的虛擬機系統(tǒng)可以為基于混合模式或者基于主機模式的虛擬機系統(tǒng),如Xen虛擬機系統(tǒng),其虛擬機監(jiān)視器中集成了即插即用模塊,并利用虛擬機監(jiān)視器自身的調度器,按照上述圖3所示的方法實現即插即用設備從當前操作系統(tǒng)向另一操作系統(tǒng)的切換。
圖4為本發(fā)明第二實施例的虛擬機系統(tǒng)。該虛擬機系統(tǒng)包括伺服操作系統(tǒng)1、至少一用戶操作系統(tǒng)2、虛擬機監(jiān)視器3以及硬件4,該虛擬機監(jiān)視器3中集成了即插即用模塊32。
與第一實施例的虛擬機系統(tǒng)不同指出在于,本發(fā)明第二實施例中的虛擬機系統(tǒng)的用戶操作系統(tǒng)2中設置有即插即用設備的應用程序,該應用程序可以列出用戶能夠安裝和卸載的所有即插即用設備,用戶可以通過對該應用程序進行操作從而直接調用即插即用模塊32,而不需要象第一實施例那樣通過調度器31來實現對即插即用模塊32的調用。也就是,用戶在需要插入或者拔出即插即用設備的時候,可以直接通過該應用程序調用即插即用模塊32,偽造插入或者拔出即插即用設備的中斷信號,來實現即插即用設備的插入或者拔出。
當前操作系統(tǒng)需要安裝或者卸載即插即用設備時,用戶通過即插即用設備的應用程序輸入相應的調用指令,直接調用即插即用模塊32。根據來自該應用程序的調用指令,即插即用模塊32向當前操作系統(tǒng)發(fā)出中斷指令(插入或者拔出指令),表示需要將即插即用設備插入到當前操作系統(tǒng)或者從當前操作系統(tǒng)中拔出。同時,該即插即用模塊32截獲當前操作系統(tǒng)后續(xù)對該即插即用設備的I/O操作,完成即插即用設備在當前操作系統(tǒng)中的安裝或者卸載操作。
如圖5所示,該即插即用模塊32可以包括功能調用模塊321、中斷設置模塊322以及設備I/O接口323,功能也大致相同。
具體地,參考圖5和圖6,說明在本發(fā)明第二實施例的虛擬機系統(tǒng)中實現即插即用設備動態(tài)分配的方法。
當前操作系統(tǒng)需要安裝或者卸載即插即用設備時,用戶通過即插即用設備的應用程序輸入相應的調用指令,直接調用即插即用模塊32中的功能調用模塊321。根據來自該應用程序的調用指令,功能調用模塊321將對應的條件參數輸出到中斷設備模塊322。中斷設備模塊322根據功能調用模塊輸出的條件參數,產生相應的中斷信號(插入或者拔出指令),表示需要將即插即用設備插入到當前操作系統(tǒng)或者從當前操作系統(tǒng)中拔出,并將該中斷信號發(fā)送給當前操作系統(tǒng),表示需要將即插即用設備插入到當前操作系統(tǒng)或者從當前操作系統(tǒng)中拔出。當前操作系統(tǒng)根據中斷設備模塊322的中斷信號進行后續(xù)的、將插入到當前操作系統(tǒng)或者將即插即用設備從操作系統(tǒng)拔出的I/O操作。
這里,該即插即用設備可以為獨享設備或者共享設備,如果為獨享設備時,需要將其首先從其他操作系統(tǒng)中卸載,然后再安裝到當前操作系統(tǒng)。如果該即插即用設備為共享設備時,則只需要進行將其插入到當前操作系統(tǒng)中的操作。這時,當前操作系統(tǒng)和其他操作系統(tǒng)可以同時分享該即插即用設備。
從上述的描述可以得知,本發(fā)明的實質是通過向不同操作系統(tǒng)發(fā)出即插即用設備拔出或者插入終端信號,即偽造即插即用設備中斷信號,讓操作系統(tǒng)認為該即插即用設備就是正在拔出或者插入,然后自動完成相應的卸載或者安裝過程,實際上該即插即用設備一直是與虛擬機系統(tǒng)物理連接的。因此,可以在不需要用戶參與或者重新配置、啟動操作系統(tǒng)的情況下,實現完全可控的即插即用設備的動態(tài)資源分配。
該虛擬機系統(tǒng)可以為基于混合模式或者基于主機模式的虛擬機系統(tǒng),如Xen虛擬機系統(tǒng),其虛擬機監(jiān)視器中集成了即插即用模塊,并利用操作系統(tǒng)中的即插即用應用程序,按照上述圖5所示的方法實現即插即用設備在當前操作系統(tǒng)中的插入或者拔出操作。
根據本發(fā)明的虛擬機系統(tǒng)和即插即用設備的動態(tài)分配方法,可以有效解決現有虛擬機系統(tǒng)對即插即用設備設備支持不好,應用不便的問題。并且,可以根據不同的應用場景實現方便、靈活的分配方式,改善虛擬機系統(tǒng)給最終用戶的用戶體驗,對于虛擬機系統(tǒng)向個人電腦推廣和應用提供了一種切實可行的方案。
同時,無論是基于主機模式的,還是基于混合模式的虛擬機系統(tǒng),在不同操作系統(tǒng)之間進行切換的時候,不需要用戶的參與,根據策略自動完成即插即用設備在不同操作系統(tǒng)之間的切換,方便了用戶的使用,提高了虛擬機系統(tǒng)給最終用戶的用戶體驗。
權利要求
1.一種虛擬機系統(tǒng),包括虛擬機監(jiān)視器、硬件以及多個操作系統(tǒng),其特征在于該虛擬機監(jiān)視器進一步包括即插即用模塊,用于根據調用指令,將產生的相應中斷信號發(fā)送給相應操作系統(tǒng),并通過截獲該相應操作系統(tǒng)的I/O操作,直接將該I/O操作作用于即插即用設備,或是根據即插即用標準規(guī)范,通過軟件模擬I/O操作并將模擬結果反饋給該相應操作系統(tǒng),完成中斷信號所指示的處理。
2.如權利要求1所述的虛擬機系統(tǒng),其特征在于,該多個操作系統(tǒng)包括伺服操作系統(tǒng)以及至少一個用戶操作系統(tǒng)。
3.如權利要求1所述的虛擬機系統(tǒng),其特征在于,該中斷信號表示在該操作系統(tǒng)中安裝即插即用設備或者從該操作系統(tǒng)中卸載即插即用設備。
4.如權利要求1至3任一項所述的虛擬機系統(tǒng),其特征在于,虛擬機監(jiān)視器中包括調度器,該調度器根據用戶輸入的切換指令,產生相應的調用指令。
5.如權利要求4所述的虛擬機系統(tǒng),其特征在于,該即插即用模塊包括功能調用模塊、中斷設置模塊以及設備I/O接口,其中,功能調用模塊根據調度器的調用指令,輸出相應的條件參數;中斷設置模塊根據功能調用模塊輸出的條件參數,向相應操作系統(tǒng)發(fā)出中斷信號;設備I/O接口截獲該相應操作系統(tǒng)對即插即用設備的I/O操作,直接將該I/O操作作用于即插即用設備,或是根據即插即用標準規(guī)范,通過軟件模擬I/O操作并將模擬結果反饋給該相應操作系統(tǒng)。
6.如權利要求1至3任一項所述的虛擬機系統(tǒng),其特征在于,所述操作系統(tǒng)中包括即插即用設備應用程序,用戶通過該應用程序產生調用指令。
7.如權利要求6所述的虛擬機系統(tǒng),其特征在于,該即插即用模塊包括功能調用模塊、中斷設置模塊以及設備I/O接口,其中,功能調用模塊根據即插即用設備應用程序產生的調用指令,輸出相應的條件參數;中斷設置模塊根據功能調用模塊輸出的條件參數,向相應操作系統(tǒng)發(fā)出中斷信號;設備I/O接口截獲該相應操作系統(tǒng)對即插即用設備的I/O操作,直接將該I/O操作作用于即插即用設備,或是根據即插即用標準規(guī)范,通過軟件模擬I/O操作并將模擬結果反饋給該相應操作系統(tǒng),完成調用指令所指示的處理。
8.一種動態(tài)分配即插即用設備的方法,用于將即插即用設備動態(tài)分配給虛擬機系統(tǒng)中的多個操作系統(tǒng)中的至少一操作系統(tǒng),其包括步驟1)接收調用指令,產生的相應中斷信號發(fā)送給相應操作系統(tǒng);2)截獲該相應操作系統(tǒng)的I/O操作,直接將該I/O操作作用于即插即用設備,或是根據即插即用標準規(guī)范,通過軟件模擬I/O操作并將模擬結果反饋給該相應操作系統(tǒng),完成中斷信號所指示的處理。
9.如權利要求8所述的方法,其特征在于,該多個操作系統(tǒng)包括伺服操作系統(tǒng)以及至少一用戶操作系統(tǒng)。
10.如權利要求8所述的虛擬機系統(tǒng),其特征在于,該中斷信號表示在該操作系統(tǒng)中安裝即插即用設備或者從該操作系統(tǒng)中卸載即插即用設備。
11.如權利要求8至10任一項所述的方法,其特征在于,該調用指令根據用戶輸入的切換指令產生。
12.如權利要求10所述的方法,其特征在于,步驟1)包括根據調用指令,輸出相應的條件參數;根據條件參數,向相應操作系統(tǒng)發(fā)出中斷信號。
13.如權利要求8至10任一項所述的方法,其特征在于,用戶通過該操作系統(tǒng)中包括的即插即用設備應用程序產生調用指令。
14.如權利要求13所述的方法,其特征在于,步驟1)包括根據調用指令,輸出相應的條件參數;根據條件參數,向相應操作系統(tǒng)發(fā)出中斷信號。
全文摘要
本發(fā)明提供一種虛擬機系統(tǒng)以及動態(tài)分配即插即用設備的方法。該虛擬機系統(tǒng)包括虛擬機監(jiān)視器、硬件以及多個操作系統(tǒng)。其中,該虛擬機監(jiān)視器進一步包括即插即用模塊,用于根據調用指令,將產生的相應中斷信號發(fā)送給相應操作系統(tǒng),并通過截獲該相應操作系統(tǒng)的I/O操作,直接將該I/O操作作用于即插即用設備,或是根據即插即用標準規(guī)范,通過軟件模擬該I/O操作并將模擬結果反饋給相應的操作系統(tǒng),完成中斷信號所指示的處理。本發(fā)明可以在不需要用戶參與或者重新配置、啟動操作系統(tǒng)的情況下,實現完全可控的即插即用設備的動態(tài)資源分配。
文檔編號G06F9/46GK1949177SQ20051011261
公開日2007年4月18日 申請日期2005年10月11日 優(yōu)先權日2005年10月11日
發(fā)明者劉建成, 劉春梅, 宋春雨 申請人:聯想(北京)有限公司