作系統(tǒng)在必要時(shí)仍然能夠處理一定的事件,從而提供更好的用戶(hù)體驗(yàn)。當(dāng)然,也可以定義其它數(shù)據(jù)和消息類(lèi)型、例如系統(tǒng)通知、藍(lán)牙數(shù)據(jù)等等。
[0017]在一個(gè)實(shí)現(xiàn)中,后臺(tái)操作系統(tǒng)被調(diào)度執(zhí)行后,超級(jí)系統(tǒng)管理器通過(guò)判斷客戶(hù)機(jī)虛擬CPU (VCPU)的行為判斷該客戶(hù)機(jī)是否已經(jīng)完成對(duì)先前發(fā)生的特定事件的處理。例如在如下情況下可以判斷先前事件已經(jīng)完成:所有的VCPU都進(jìn)入空閑狀態(tài)如(Intel CPU)C1或以上狀態(tài),或者所有的VCPU都已經(jīng)等待事件一段時(shí)間(如5秒或10秒)、包括執(zhí)行(IntelCPU) MWAIT指令導(dǎo)致的等待內(nèi)存變化的狀態(tài)。
[0018]在本發(fā)明的一個(gè)擴(kuò)展方案中,在第一虛擬機(jī)上運(yùn)行第一操作系統(tǒng)并且在第二虛擬機(jī)上運(yùn)行第二操作系統(tǒng),并且其中在第一操作系統(tǒng)和第二操作系統(tǒng)上分別運(yùn)行相應(yīng)的工作環(huán)境和/或私人環(huán)境和/或支付環(huán)境。在本申請(qǐng)中,通過(guò)該擴(kuò)展方案,可以方便用戶(hù)使用各種操作系統(tǒng)和各種操作環(huán)境。但是在此應(yīng)當(dāng)注意,第一操作系統(tǒng)和第二操作系統(tǒng)可以相同也可以不同,例如用戶(hù)可以在第一和第二虛擬機(jī)上運(yùn)行相同的操作系統(tǒng),但是在所述操作系統(tǒng)上分別構(gòu)建運(yùn)行不同的操作環(huán)境。
[0019]在本發(fā)明的一個(gè)擴(kuò)展方案中,所述切換由用戶(hù)通過(guò)按下熱按鈕或熱按鍵來(lái)發(fā)起。在發(fā)明中,通過(guò)該擴(kuò)展方案,可以方便用戶(hù)在各個(gè)虛擬機(jī)之間切換,從而提供較好的用戶(hù)體驗(yàn)。所述熱按鈕或熱按鍵可以是物理按鈕或按鍵(例如復(fù)位鍵、音量+/_鍵、HOME鍵等等)、也可以是顯示屏幕上顯示的軟按鈕或按鍵(例如軟鍵盤(pán)或鍵區(qū)上的按鍵)。
[0020]在本發(fā)明的另一擴(kuò)展方案中,所述切換由虛擬機(jī)中的應(yīng)用程序通過(guò)超調(diào)用(hypercall)發(fā)起。在本發(fā)明中,通過(guò)該擴(kuò)展方案,使應(yīng)用程序能夠自主和安全地根據(jù)情況切換虛擬機(jī)、避免打斷或者搶占(Pre-empt1n)客戶(hù)機(jī)的關(guān)鍵進(jìn)程/函數(shù)。進(jìn)而切換到所期望的操作系統(tǒng)或操作環(huán)境,例如以便在該操作系統(tǒng)或環(huán)境下執(zhí)行特定操作、運(yùn)行特定程序等等。
[0021]在本發(fā)明的一個(gè)優(yōu)選方案中,前臺(tái)虛擬機(jī)重用客戶(hù)機(jī)操作系統(tǒng)電源管理機(jī)制。在本發(fā)明中,前臺(tái)虛擬機(jī)擁有幾乎所有的平臺(tái)設(shè)備,通過(guò)該優(yōu)選方案,可以使前臺(tái)虛擬機(jī)能夠直接利用本地電源管理機(jī)制,從而有效地提高電源效率。
[0022]在本發(fā)明的另一優(yōu)選方案中,前臺(tái)虛擬機(jī)在保存平臺(tái)設(shè)備上下文后同時(shí)或立即對(duì)相應(yīng)硬件設(shè)備進(jìn)行復(fù)位。其中所述復(fù)位可以通過(guò)PCI設(shè)備的功能級(jí)復(fù)位(Funct1n LevelReset,F(xiàn)LR)實(shí)現(xiàn);或者通過(guò)對(duì)PCI總線(xiàn)復(fù)位進(jìn)而對(duì)該P(yáng)CI總線(xiàn)下的設(shè)備自動(dòng)復(fù)位實(shí)現(xiàn);或者通過(guò)設(shè)備自帶的復(fù)位接口實(shí)現(xiàn)(如特定寄存器寫(xiě)入);或者是其它總線(xiàn)特定的復(fù)位方式、復(fù)位總線(xiàn)和總線(xiàn)上的設(shè)備實(shí)現(xiàn)。在本發(fā)明中,通過(guò)該優(yōu)選方案,可以使硬件的內(nèi)容在每次保存后都被復(fù)位,使得在新的前臺(tái)虛擬機(jī)執(zhí)行的時(shí)候,保證不能看到前一個(gè)運(yùn)行虛擬機(jī)的敏感的設(shè)備內(nèi)容,從而提高了系統(tǒng)安全性。
[0023]在本發(fā)明的第二方面,提供了一種用于在計(jì)算設(shè)備上運(yùn)行多個(gè)虛擬機(jī)的系統(tǒng),該系統(tǒng)包括:
用于由運(yùn)行在物理機(jī)器上的超級(jí)系統(tǒng)管理器生成第一虛擬機(jī)和第二虛擬機(jī)的裝置;用于作為前臺(tái)虛擬機(jī)(FVM)運(yùn)行第一虛擬機(jī)的裝置,其中前臺(tái)虛擬機(jī)擁有幾乎所有的原生平臺(tái)設(shè)備;
用于作為后臺(tái)虛擬機(jī)(BVM)運(yùn)行第二虛擬機(jī)的裝置;
用于由第一虛擬機(jī)保存第一平臺(tái)設(shè)備上下文的裝置;
用于由超級(jí)系統(tǒng)管理器掛起第一虛擬機(jī)的裝置;
用于將第二虛擬機(jī)從后臺(tái)虛擬機(jī)切換為前臺(tái)虛擬機(jī),而第一虛擬機(jī)從前臺(tái)虛擬機(jī)切換為后臺(tái)虛擬機(jī)的裝置;
用于將第一虛擬機(jī)從后臺(tái)虛擬機(jī)切換為前臺(tái)虛擬機(jī),而第二虛擬機(jī)從前臺(tái)虛擬機(jī)切換為后臺(tái)虛擬機(jī)的裝置;以及
用于恢復(fù)第一平臺(tái)設(shè)備上下文的裝置。
[0024]在本發(fā)明的第三方面,提供了一種計(jì)算設(shè)備,該計(jì)算設(shè)備包括:
存儲(chǔ)器,其上存儲(chǔ)有可執(zhí)行指令;
處理器,其被配置為執(zhí)行可執(zhí)行指令以執(zhí)行以下步驟:
由運(yùn)行在物理機(jī)器上的超級(jí)系統(tǒng)管理器生成第一虛擬機(jī)和第二虛擬機(jī);
作為前臺(tái)虛擬機(jī)(FVM)運(yùn)行第一虛擬機(jī),其中前臺(tái)虛擬機(jī)擁有幾乎所有的原生平臺(tái)設(shè)備; 作為后臺(tái)虛擬機(jī)(BVM)運(yùn)行第二虛擬機(jī);
由第一虛擬機(jī)第一平臺(tái)設(shè)備上下文;
由超級(jí)系統(tǒng)管理器掛起第一虛擬機(jī);
將第二虛擬機(jī)從后臺(tái)虛擬機(jī)切換為前臺(tái)虛擬機(jī),而第一虛擬機(jī)從前臺(tái)虛擬機(jī)切換為后臺(tái)虛擬機(jī);
將第一虛擬機(jī)從后臺(tái)虛擬機(jī)切換為前臺(tái)虛擬機(jī),而第二虛擬機(jī)從前臺(tái)虛擬機(jī)切換為后臺(tái)虛擬機(jī);以及
恢復(fù)第一平臺(tái)設(shè)備上下文。
【附圖說(shuō)明】
[0025]下面參考附圖根據(jù)多個(gè)實(shí)施例來(lái)進(jìn)一步闡述本發(fā)明。附圖:
圖1A和IB示出了使用根據(jù)本發(fā)明的方法的移動(dòng)設(shè)備在執(zhí)行虛擬機(jī)切換以前和以后的示意圖;
圖2示出了根據(jù)本發(fā)明的系統(tǒng)架構(gòu);
圖3示出了根據(jù)本發(fā)明的支持部分激活的系統(tǒng)架構(gòu);以及圖4示出了根據(jù)本發(fā)明的用于運(yùn)行多個(gè)虛擬機(jī)的方法的流程圖。
【具體實(shí)施方式】
[0026]盡管在下面參考附圖對(duì)本發(fā)明的實(shí)施例的描述中,以運(yùn)行基于虛擬機(jī)的Linux和基于虛擬機(jī)的Windows操作系統(tǒng)的平板計(jì)算機(jī)為例闡述了本發(fā)明的原理,但是應(yīng)當(dāng)理解,本發(fā)明并不限于此,而是本發(fā)明還可以應(yīng)用于諸如智能手機(jī)、個(gè)人數(shù)字助理(PDA)、上網(wǎng)本、膝上型計(jì)算機(jī)之類(lèi)的其它便攜式計(jì)算設(shè)備、諸如臺(tái)式機(jī)、服務(wù)器、工作站之類(lèi)的其它計(jì)算設(shè)備、以及諸如安卓、Tizen、10S之類(lèi)的其它操作系統(tǒng)。而且,盡管在下面的實(shí)施例中,在同一設(shè)備上運(yùn)行包含兩個(gè)異構(gòu)操作系統(tǒng)的虛擬機(jī),但是本發(fā)明不限于此,而是本發(fā)明還可以在同一設(shè)備上運(yùn)行多個(gè)包含同構(gòu)(例如相同)操作系統(tǒng)的虛擬機(jī),例如在本發(fā)明中,可以在各個(gè)虛擬機(jī)上運(yùn)行相同的操作系統(tǒng)、例如安卓,但是在這些操作系統(tǒng)上分別支持不同的操作環(huán)境。
[0027]此外,盡管本發(fā)明是以運(yùn)行兩個(gè)虛擬機(jī)為例進(jìn)行說(shuō)明的,但是本發(fā)明也可用于運(yùn)行兩個(gè)以上的虛擬機(jī),即一個(gè)前臺(tái)虛擬機(jī)和多個(gè)后臺(tái)虛擬機(jī)。還應(yīng)當(dāng)指出,本文所說(shuō)半虛擬化驅(qū)動(dòng)程序涵蓋傳統(tǒng)半虛擬化驅(qū)動(dòng)程序和軟件仿真的驅(qū)動(dòng)程序。
[0028]圖1A和圖1B分別示出了根據(jù)本發(fā)明的系統(tǒng)架構(gòu)在虛擬機(jī)切換以前的狀態(tài)以及在該切換以后的狀態(tài)。圖1A示出了平板計(jì)算機(jī)100在以運(yùn)行Linux操作系統(tǒng)的虛擬機(jī)為前臺(tái)虛擬機(jī)時(shí)的快照,圖1B示出了該平板計(jì)算機(jī)100在將運(yùn)行Windows操作系統(tǒng)的虛擬機(jī)切換為前臺(tái)虛擬機(jī)以后的快照。
[0029]從圖1A中可以看出,平板計(jì)算機(jī)100正在前臺(tái)運(yùn)行Linux操作系統(tǒng)104,其中該Linux操作系統(tǒng)運(yùn)行第一虛擬機(jī)上。由于第一虛擬機(jī)(或者說(shuō)其上運(yùn)行的操作系統(tǒng)或操作環(huán)境)在前臺(tái)顯示并且具有所有原生平臺(tái)硬件,因此此時(shí)為前臺(tái)虛擬機(jī)。此外,在圖1A中,同時(shí)還在后臺(tái)作為后臺(tái)虛擬機(jī)存在有第二虛擬機(jī)(未示出),在第二虛擬機(jī)上運(yùn)行有Windows操作系統(tǒng)(未示出)。
[0030]在前臺(tái)虛擬機(jī)上的Linux操作系統(tǒng)上,用戶(hù)可以實(shí)現(xiàn)多種工作環(huán)境,例如點(diǎn)擊控制臺(tái)圖標(biāo)106,以顯示命令行提示窗口 107來(lái)實(shí)現(xiàn)編程環(huán)境。用戶(hù)還可以在該Linux系統(tǒng)上實(shí)現(xiàn)其它工作環(huán)境,例如模擬、仿真等Linux系統(tǒng)適于實(shí)現(xiàn)的工作環(huán)境。
[0031]如圖所示,作為前臺(tái)虛擬機(jī)的第一虛擬機(jī)在前臺(tái)顯示并具有幾乎所有原生平臺(tái)硬件,使得其上運(yùn)行的Linux操作系統(tǒng)能夠提供獨(dú)占操作系統(tǒng)的用戶(hù)體驗(yàn)。而且,該Linux能夠以原生(Native)性能訪(fǎng)問(wèn)所有平臺(tái)硬件,使得用戶(hù)可以以高性能實(shí)現(xiàn)Linux上的相應(yīng)環(huán)境。
[0032]在圖1B中示出了平板計(jì)算機(jī)100在將運(yùn)行Windows操作系統(tǒng)的第二虛擬機(jī)切換為前臺(tái)虛擬機(jī)以后的狀態(tài)。從圖1B中可以看出,平板計(jì)算機(jī)100正在前臺(tái)運(yùn)行Windows操作系統(tǒng)105,其中該Windows操作系統(tǒng)運(yùn)行在第二虛擬機(jī)上。由于第二虛擬機(jī)(或者說(shuō)其上運(yùn)行的操作系統(tǒng)或操作環(huán)境)在前臺(tái)顯示并且具有所有原生平臺(tái)硬件,因此此時(shí)為前臺(tái)虛擬機(jī)。此外,在圖1B中,同時(shí)還在后臺(tái)作為后臺(tái)虛擬機(jī)存在有前述第一虛擬機(jī)(未示出)。
[0033]在前臺(tái)虛擬機(jī)上的Windows操作系統(tǒng)上,用戶(hù)可以實(shí)現(xiàn)娛樂(lè)環(huán)境、支付環(huán)境、文本編輯環(huán)境等等。例如,用戶(hù)可以點(diǎn)擊游戲圖標(biāo)109,以進(jìn)入游戲環(huán)境;點(diǎn)擊支付圖標(biāo)107以進(jìn)入支付環(huán)境;或者點(diǎn)擊Office圖標(biāo)108以進(jìn)入文本編輯環(huán)境。
[0034]如圖所示,作為前臺(tái)虛擬機(jī)的第二虛擬機(jī)在前臺(tái)顯示并具有所有原生平臺(tái)硬件,使得其上運(yùn)行的Windows操作系統(tǒng)能夠提供獨(dú)占操作系統(tǒng)的用戶(hù)體驗(yàn)。而且,該Windows能夠以原生(Native)性能訪(fǎng)問(wèn)所有平臺(tái)硬件...