專利名稱:虛擬計(jì)算機(jī)系統(tǒng)、虛擬計(jì)算機(jī)控制方法、虛擬計(jì)算機(jī)控制程序及半導(dǎo)體集成電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及虛擬計(jì)算機(jī)系統(tǒng),尤其涉及從虛擬計(jì)算機(jī)向存儲(chǔ)區(qū)域的訪問的控制技術(shù)。
背景技術(shù):
以往,作為虛擬計(jì)算機(jī)系統(tǒng),已知有對(duì)多個(gè)虛擬計(jì)算機(jī)進(jìn)行執(zhí)行控制的系統(tǒng)。在這樣的虛擬計(jì)算機(jī)系統(tǒng)中,作為提高硬件資源的利用效率的技術(shù),有根據(jù)虛擬計(jì)算機(jī)系統(tǒng)的處理負(fù)荷而動(dòng)態(tài)地控制虛擬計(jì)算機(jī)的生成和結(jié)束的技術(shù)。例如,在專利文獻(xiàn)I中,公開了通過將母虛擬計(jì)算機(jī)分叉(fork)而生成子虛擬計(jì) 算機(jī)的技術(shù),在專利文獻(xiàn)2中,公開了如下技術(shù)基于來自在虛擬計(jì)算機(jī)上執(zhí)行的應(yīng)用程序的請(qǐng)求,將該虛擬計(jì)算機(jī)復(fù)制(clone、克隆)化,從而生成子虛擬計(jì)算機(jī)。在先技術(shù)文獻(xiàn)專利文獻(xiàn)專利文獻(xiàn)I :特開2004-133894號(hào)公報(bào)專利文獻(xiàn)2 :特開2008-165795號(hào)公報(bào)發(fā)明的概要發(fā)明所要解決的課題但是,在虛擬計(jì)算機(jī)系統(tǒng)中,在成為執(zhí)行對(duì)象的應(yīng)用程序中,有時(shí)同時(shí)存在已認(rèn)證不含有惡意軟件(malware)的應(yīng)用程序(以下稱為“已認(rèn)證應(yīng)用程序”)和未認(rèn)證不含有惡意軟件的應(yīng)用程序(以下稱為“未認(rèn)證應(yīng)用程序”)。這種情況下,在未認(rèn)證應(yīng)用程序中含有惡意軟件時(shí),通過執(zhí)行該惡意軟件,已認(rèn)證應(yīng)用程序可能被攻擊。作為已認(rèn)證應(yīng)用程序被攻擊的情況的例子,例如有如下情況已認(rèn)證應(yīng)用程序或數(shù)據(jù)被篡改;或者已認(rèn)證應(yīng)用程序被以不恰當(dāng)?shù)姆椒▓?zhí)行,系統(tǒng)的管理者權(quán)限被剝奪,結(jié)果計(jì)算機(jī)系統(tǒng)被非法地奪取,應(yīng)該對(duì)外部保密的信息、例如系統(tǒng)所保存的收費(fèi)內(nèi)容、個(gè)人信息、密鑰等被讀取。在以往的動(dòng)態(tài)地生成虛擬計(jì)算機(jī)的虛擬計(jì)算機(jī)系統(tǒng)中,在執(zhí)行新的應(yīng)用程序的情況下,在不存在用于執(zhí)行該應(yīng)用程序的虛擬計(jì)算機(jī)時(shí)等,基于母虛擬計(jì)算機(jī)來生成新的子虛擬計(jì)算機(jī),使該子虛擬計(jì)算機(jī)執(zhí)行該應(yīng)用程序。這種情況下,從母虛擬計(jì)算機(jī)生成的子虛擬計(jì)算機(jī)具有與母虛擬計(jì)算機(jī)相同的功能。因此,在成為母虛擬計(jì)算機(jī)的執(zhí)行對(duì)象的應(yīng)用程序中含有已認(rèn)證應(yīng)用程序的情況下,即使是為了執(zhí)行未認(rèn)證應(yīng)用程序而生成的子虛擬計(jì)算機(jī),在成為執(zhí)行對(duì)象的應(yīng)用程序中也含有已認(rèn)證應(yīng)用程序。因此,在以往的虛擬計(jì)算機(jī)系統(tǒng)中,在子虛擬計(jì)算機(jī)執(zhí)行的未認(rèn)證應(yīng)用程序中含有惡意軟件的情況下,已認(rèn)證應(yīng)用程序可能被該惡意軟件攻擊。
發(fā)明內(nèi)容
在此,本發(fā)明是鑒于以上問題而做出的,其目的在于,提供一種虛擬計(jì)算機(jī)系統(tǒng),即使在成為虛擬計(jì)算機(jī)的執(zhí)行對(duì)象的應(yīng)用程序中同時(shí)存在已認(rèn)證應(yīng)用程序和未認(rèn)證應(yīng)用程序,也能夠防止由于執(zhí)行未認(rèn)證應(yīng)用程序所包含的惡意軟件而非法執(zhí)行軟件,該軟件的非法執(zhí)行包括系統(tǒng)的奪取或數(shù)據(jù)的盜用、以及成為篡改的原因的對(duì)已認(rèn)證應(yīng)用程序的攻擊等。解決課題所采用的手段
為了解決上述問題,本發(fā)明的虛擬計(jì)算機(jī)系統(tǒng)的特征在于,具備存儲(chǔ)裝置;處理器,與該存儲(chǔ)裝置連接;以及管理器(hypervisor,管理程序、超級(jí)管理器、虛擬機(jī)管理器),在該處理器上執(zhí)行,使該處理器進(jìn)行多個(gè)虛擬計(jì)算機(jī)的執(zhí)行控制;該虛擬計(jì)算機(jī)系統(tǒng)具備訪問控制部,對(duì)從虛擬計(jì)算機(jī)向所述存儲(chǔ)裝置的存儲(chǔ)區(qū)域的訪問進(jìn)行控制;所述存儲(chǔ)裝置包括容納第I種程序的第I存儲(chǔ)區(qū)域和容納第2種程序的第2存儲(chǔ)區(qū)域;所述管理器包括啟動(dòng)請(qǐng)求受理部,用于從虛擬計(jì)算機(jī)受理第I種程序或第2種程序的啟動(dòng)請(qǐng)求;以及虛擬計(jì)算機(jī)生成部,在由所述處理器執(zhí)行的所述啟動(dòng)請(qǐng)求受理部受理了第I種程序的啟動(dòng)請(qǐng)求時(shí),生成用于執(zhí)行該第I種程序的虛擬計(jì)算機(jī),并將該生成的虛擬計(jì)算機(jī)作為第I種虛擬計(jì)算機(jī)來管理,在受理了第2種程序的啟動(dòng)請(qǐng)求時(shí),生成用于執(zhí)行該第2種程序的虛擬計(jì)算機(jī),并將該生成的虛擬計(jì)算機(jī)作為第2種虛擬計(jì)算機(jī)來管理;所述訪問控制部以如下方式進(jìn)行所述訪問的控制禁止從由所述處理器執(zhí)行的所述虛擬計(jì)算機(jī)生成部作為所述第I種虛擬計(jì)算機(jī)來管理的虛擬計(jì)算機(jī)向所述第2存儲(chǔ)區(qū)域的訪問。發(fā)明效果根據(jù)具備上述構(gòu)成的本發(fā)明的虛擬計(jì)算機(jī)系統(tǒng),將未認(rèn)證應(yīng)用程序作為第I種程序容納在第I存儲(chǔ)區(qū)域中,將已認(rèn)證應(yīng)用程序作為第2種程序容納在第2存儲(chǔ)區(qū)域中,由此,執(zhí)行未認(rèn)證應(yīng)用程序的虛擬計(jì)算機(jī)無法訪問已認(rèn)證應(yīng)用程序。因此,在成為虛擬計(jì)算機(jī)的執(zhí)行對(duì)象的應(yīng)用程序中,即使同時(shí)存在已認(rèn)證應(yīng)用程序和未認(rèn)證應(yīng)用程序,也能夠防止由于執(zhí)行未認(rèn)證應(yīng)用程序所包含的惡意軟件而非法執(zhí)行軟件,該軟件的非法執(zhí)行包括系統(tǒng)的奪取或數(shù)據(jù)的盜用、以及成為篡改的原因的對(duì)已認(rèn)證應(yīng)用程序的攻擊等。
圖I是表示虛擬計(jì)算機(jī)系統(tǒng)100的主要的硬件構(gòu)成的框圖。圖2是表示處理器101所具有的動(dòng)作模式的動(dòng)作模式圖。圖3是表示存儲(chǔ)器保護(hù)表的數(shù)據(jù)構(gòu)造的數(shù)據(jù)構(gòu)造圖。圖4是表示存儲(chǔ)器保護(hù)信息的數(shù)據(jù)構(gòu)造的數(shù)據(jù)構(gòu)造圖。圖5是表示存儲(chǔ)器102的存儲(chǔ)區(qū)域的劃分的存儲(chǔ)區(qū)域圖。圖6是表示在處理器101上成為執(zhí)行對(duì)象的程序模塊的框圖。圖7是應(yīng)用組管理表700的數(shù)據(jù)構(gòu)造圖。圖8是虛擬計(jì)算機(jī)管理表800的數(shù)據(jù)構(gòu)造圖。圖9是虛擬計(jì)算機(jī)狀態(tài)表900的數(shù)據(jù)構(gòu)造圖。
圖10是訪問許可信息1000的數(shù)據(jù)構(gòu)造。圖11是表示存儲(chǔ)器102的存儲(chǔ)區(qū)域的劃分的存儲(chǔ)區(qū)域圖。圖12是虛擬計(jì)算機(jī)切換處理的流程圖。圖13是存儲(chǔ)器訪問處理的流程圖。圖14是應(yīng)用程序執(zhí)行處理的流程圖。圖15是表示虛擬計(jì)算機(jī)系統(tǒng)1500的主要的硬件構(gòu)成的框圖。圖16是表示在處理器101上成為執(zhí)行對(duì)象的程序模塊的框圖。
圖17是表示在處理器101上成為執(zhí)行對(duì)象的程序模塊的框圖。圖18是變形例中的虛擬計(jì)算機(jī)系統(tǒng)1800的概略構(gòu)成圖。
具體實(shí)施例方式<實(shí)施方式1><概要>以下,作為本發(fā)明的虛擬計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施方式,說明如下的虛擬計(jì)算機(jī)系統(tǒng),該虛擬計(jì)算機(jī)系統(tǒng)具備處理器,該處理器具有執(zhí)行應(yīng)用程序的用戶模式和比用戶模式高級(jí)的管理員(supervisor)模式這2個(gè)程序執(zhí)行模式,由以處理器的管理員模式執(zhí)行的管理器對(duì)以處理器的管理員模式執(zhí)行的多個(gè)操作系統(tǒng)進(jìn)行分時(shí)執(zhí)行控制。該虛擬計(jì)算機(jī)系統(tǒng)除了處理器之外,還具備存儲(chǔ)器保護(hù)單元,該存儲(chǔ)器保護(hù)單元進(jìn)行從虛擬計(jì)算機(jī)向存儲(chǔ)器的存儲(chǔ)區(qū)域的訪問控制。并且,由處理器執(zhí)行的管理器和存儲(chǔ)器保護(hù)單元協(xié)同動(dòng)作,由此,對(duì)于各個(gè)虛擬計(jì)算機(jī),將向存儲(chǔ)器的存儲(chǔ)區(qū)域的訪問分別控制為禁止向規(guī)定的區(qū)域的訪問。因此,由該虛擬計(jì)算機(jī)系統(tǒng)執(zhí)行的各個(gè)虛擬計(jì)算機(jī)無法訪問被禁止訪問的區(qū)域所容納的程序、數(shù)據(jù)等。以下,參照
本實(shí)施方式I的虛擬計(jì)算機(jī)系統(tǒng)的構(gòu)成。<硬件構(gòu)成>圖I是表示虛擬計(jì)算機(jī)系統(tǒng)100的主要的硬件構(gòu)成的框圖。如該圖所示,虛擬計(jì)算機(jī)系統(tǒng)100作為硬件是計(jì)算機(jī)裝置,由集成電路110、輸入裝置131、輸出裝置132構(gòu)成。集成電路110是將處理器101、存儲(chǔ)器102、高速緩沖存儲(chǔ)器105、MMU (MemoryManagement Unit :存儲(chǔ)器管理單兀)106、存儲(chǔ)器保護(hù)單兀107、計(jì)時(shí)器108、DMAC (DirectMemory Access Controller :直接存儲(chǔ)器訪問控制器)109、內(nèi)部總線120、第I接口 121、第2接口 122、第3接口 123集成而得到的半導(dǎo)體集成電路,與輸入裝置131、輸出裝置132、外部的集成電路等連接。并且,存儲(chǔ)器102由ROM (Read Only Memory) 103和RAM (RandomAccess Memory) 104 構(gòu)成。處理器101與高速緩沖存儲(chǔ)器105和MMU106連接,通過執(zhí)行存儲(chǔ)在R0M103或RAM104中的程序,對(duì)R0M103、RAM104、高速緩沖存儲(chǔ)器105、MMU106、存儲(chǔ)器保護(hù)單元107、計(jì)時(shí)器108、輸入裝置131、輸出裝置132進(jìn)行控制,實(shí)現(xiàn)各種功能。圖2是表示處理器101所具備的動(dòng)作模式的動(dòng)作模式圖。如該圖所示,處理器101具有執(zhí)行應(yīng)用程序(圖中的任務(wù)A231、任務(wù)K232、任務(wù)L233等)的用戶模式230和執(zhí)行操作系統(tǒng)(圖中的第IOS (Operating System) 221、第20S222、第30S223等)及管理器的特權(quán)模式(以下稱為“管理員模式”)220。以用戶模式230執(zhí)行的應(yīng)用程序被以管理員模式220執(zhí)行的操作系統(tǒng)分時(shí)執(zhí)行控制,以管理員模式220執(zhí)行的操作系統(tǒng)被同樣以管理員模式220執(zhí)行的管理器分時(shí)執(zhí)行控制。再次回到圖1,繼續(xù)說明虛擬計(jì)算機(jī)系統(tǒng)100的構(gòu)成。R0M103與存儲(chǔ)器保護(hù)單元107連接,存儲(chǔ)有規(guī)定處理器101的動(dòng)作的程序和處理器101所利用的數(shù)據(jù)。RAM104與存儲(chǔ)器保護(hù)單元107連接,存儲(chǔ)有規(guī)定處理器101的動(dòng)作的程序和處理器101所利用的數(shù)據(jù)。高速緩沖存儲(chǔ)器105與處理器101、MMU106、內(nèi)部總線120連接,由處理器101利 用。MMU106與處理器101、高速緩沖存儲(chǔ)器105、內(nèi)部總線120連接,具有用于指定存儲(chǔ)器102的物理存儲(chǔ)區(qū)域的地址的物理地址與用于指定處理器101所利用的邏輯存儲(chǔ)區(qū)域的地址的邏輯地址的變換功能。存儲(chǔ)器保護(hù)單元107與存儲(chǔ)器102及內(nèi)部總線120連接,具有在內(nèi)部存儲(chǔ)存儲(chǔ)器保護(hù)表和存儲(chǔ)器保護(hù)信息的功能、以及參照存儲(chǔ)的存儲(chǔ)器保護(hù)表和存儲(chǔ)器保護(hù)信息而對(duì)從內(nèi)部總線120的總線主控器(master)(在此為處理器101、DMAC109)向存儲(chǔ)器102的存儲(chǔ)區(qū)域的訪問進(jìn)行控制的功能。圖3是表示由存儲(chǔ)器保護(hù)單元107存儲(chǔ)的存儲(chǔ)器保護(hù)表300的數(shù)據(jù)構(gòu)造的數(shù)據(jù)構(gòu)造圖。如該圖所示,存儲(chǔ)器保護(hù)表300通過將區(qū)域ID310、開始地址320、尺寸330建立對(duì)應(yīng)而構(gòu)成。區(qū)域ID310是用于識(shí)別存儲(chǔ)器102的存儲(chǔ)區(qū)域中的規(guī)定的存儲(chǔ)區(qū)域的識(shí)別符。開始地址320是通過對(duì)應(yīng)的區(qū)域ID310識(shí)別的規(guī)定的存儲(chǔ)區(qū)域的開始地址。尺寸330以兆字節(jié)為單位來表示通過對(duì)應(yīng)的區(qū)域ID310識(shí)別的規(guī)定的存儲(chǔ)區(qū)域的尺寸。根據(jù)存儲(chǔ)器保護(hù)表300,例如區(qū)域ID310為“I”的規(guī)定的存儲(chǔ)區(qū)域表示開始地址為 “0x8000_0000”、尺寸為 2MB (Mega Byte)的存儲(chǔ)區(qū)域。圖4是表示由存儲(chǔ)器保護(hù)單元107存儲(chǔ)的存儲(chǔ)器保護(hù)信息400的數(shù)據(jù)構(gòu)造的數(shù)據(jù)構(gòu)造圖。如該圖所示,存儲(chǔ)器保護(hù)信息400通過將區(qū)域ID410和訪問信息420建立對(duì)應(yīng)而構(gòu)成。區(qū)域ID410與區(qū)域ID310同樣,是用于識(shí)別存儲(chǔ)器102的存儲(chǔ)區(qū)域中的規(guī)定的存儲(chǔ)區(qū)域的識(shí)別符。訪問信息420是表示對(duì)通過對(duì)應(yīng)的區(qū)域ID410識(shí)別的規(guī)定的存儲(chǔ)區(qū)域進(jìn)行的訪問的限制的信息,是如下4個(gè)信息中的某一個(gè)信息(I)表示既可以讀出也可以寫入的意思的信息(以下稱為“R/W”)、(2)表示可以讀出但不可以寫入的意思的信息(以下稱為“R0”)、
(3)表示不可以讀出但可以寫入的意思的信息(以下稱為“W0”)、(4)表示既不可以讀出也不可以寫入的意思的信息(以下稱為“NA”)。根據(jù)該存儲(chǔ)器保護(hù)信息400,例如區(qū)域ID410為“I”的規(guī)定的區(qū)域表示既不可以讀出也不可以寫入,區(qū)域ID410為“2”的規(guī)定的區(qū)域表示既可以讀出也可以寫入,區(qū)域ID410為“3”的規(guī)定的區(qū)域表示可以讀出但不可以寫入,區(qū)域ID410為“4”的規(guī)定的區(qū)域表示既不可以讀出也不可以寫入。圖5是表示由存儲(chǔ)器保護(hù)單元107劃分為多個(gè)規(guī)定的區(qū)域而進(jìn)行向存儲(chǔ)器102的存儲(chǔ)區(qū)域的訪問的控制的、存儲(chǔ)器102的存儲(chǔ)區(qū)域圖。如該圖所示,通過由存儲(chǔ)器保護(hù)單元107參照存儲(chǔ)器保護(hù)表,存儲(chǔ)器102的存儲(chǔ)區(qū)域被劃分為區(qū)域ID310為“I”的區(qū)域A501、區(qū)域ID310為“2”的區(qū)域B502、區(qū)域ID310為“3”的區(qū)域C503、區(qū)域ID310為“4”的區(qū)域D504等。另外,關(guān)于存儲(chǔ)器保護(hù)單元107所進(jìn)行的向存儲(chǔ)器102的存儲(chǔ)區(qū)域的訪問控制動(dòng) 作的更詳細(xì)內(nèi)容,在后面的<存儲(chǔ)器訪問處理>的項(xiàng)目的部分中使用流程圖進(jìn)行說明。再次回到圖1,繼續(xù)說明虛擬計(jì)算機(jī)系統(tǒng)100的構(gòu)成。計(jì)時(shí)器108與內(nèi)部總線120連接,由處理器101控制。DMAC109與內(nèi)部總線120連接,具有不經(jīng)由處理器101而進(jìn)行與第I接ロ 121連接的輸入裝置131、與第2接ロ 122連接的輸出裝置132及與第3接ロ 123連接的外部集成電路等和存儲(chǔ)器102之間的數(shù)據(jù)轉(zhuǎn)發(fā)的功能。內(nèi)部總線120與MMU106、高速緩沖存儲(chǔ)器105、存儲(chǔ)器保護(hù)單元107、計(jì)時(shí)器108、第I接ロ 121、第2接ロ 122、第3接ロ 123、DMAC109連接,具有傳達(dá)這些連接的電路間的信號(hào)的功能。第I接ロ 121、第2接ロ 122、第3接ロ 123分別與內(nèi)部總線120連接,分別具有中繼內(nèi)部總線120與輸入裝置131之間的信號(hào)的交換的功能、中繼內(nèi)部總線120與輸出裝置132之間的信號(hào)的交換的功能、中繼與外部的集成電路等之間的信號(hào)的交換的功能。輸入裝置131包括鍵盤、鼠標(biāo)、攝像機(jī)、傳感器等,與第I接ロ 121連接,由處理器101控制,具有如下功能通過鍵盤、鼠標(biāo)、攝像機(jī)、傳感器等生成與用戶操作等對(duì)應(yīng)的數(shù)據(jù),井向處理器101發(fā)送表示發(fā)生了用戶操作等的通知以及生成的數(shù)據(jù)。輸出裝置132包括顯示器、揚(yáng)聲器等,與第2接ロ 122連接,由處理器101控制,具有使用顯示器、揚(yáng)聲器等顯示并輸出字符串、圖像、聲音等的功能。上述虛擬計(jì)算機(jī)系統(tǒng)100通過由處理器101執(zhí)行存儲(chǔ)在R0M103、RAM104中的程序,實(shí)現(xiàn)各種功能。<程序模塊構(gòu)成>圖6是表示在某時(shí)刻t0在處理器101上成為執(zhí)行對(duì)象的程序模塊(以下簡(jiǎn)稱為“模塊”)的框圖。在該圖中,模塊群600是在處理器101中成為執(zhí)行對(duì)象的模塊的集合,模塊群600所包含的各模塊的對(duì)應(yīng)的程序容納在存儲(chǔ)器102的存儲(chǔ)區(qū)域中。任務(wù)1A611、任務(wù)2A612、任務(wù)3A613、任務(wù)2B614、任務(wù)3C615分別是以處理器101的用戶模式執(zhí)行的任務(wù)。0S1A621、0S1B622、0S1C623分別是在處理器101的管理員模式下執(zhí)行的多任務(wù)對(duì)
應(yīng)操作系統(tǒng)。
管理器630是以處理器101的管理員模式執(zhí)行的管理器。在虛擬計(jì)算機(jī)系統(tǒng)100中,應(yīng)用程序被以管理員模式執(zhí)行的多任務(wù)對(duì)應(yīng)操作系統(tǒng)進(jìn)行執(zhí)行控制,并以用戶模式執(zhí)行。此外,操作系統(tǒng)被管理器進(jìn)行執(zhí)行控制,并以管理員模式執(zhí)行。應(yīng)用程序通過調(diào)用預(yù)先準(zhǔn)備的操作系統(tǒng)調(diào)用例程,能夠?qū)Σ僮飨到y(tǒng)委托規(guī)定的處理。此外,操作系統(tǒng)通過調(diào)用預(yù)先準(zhǔn)備的管理器調(diào)用例程,能夠?qū)芾砥魑幸?guī)定的處理。此外,由管理器對(duì)在虛擬計(jì)算機(jī)系統(tǒng)的執(zhí)行時(shí)產(chǎn)生的例外或從外部裝置產(chǎn)生的中斷進(jìn)行處理,井根據(jù)需要對(duì)虛擬計(jì)算機(jī)上的操作系統(tǒng)重新發(fā)布。0S1A621對(duì)任務(wù)1A611、任務(wù)2A612、任務(wù)3A613進(jìn)行執(zhí)行控制,使由0S1A621、任務(wù)1A611、任務(wù)2A612、任務(wù)3A613構(gòu)成的系統(tǒng)作為第I虛擬計(jì)算機(jī)601發(fā)揮功能。0S1B622對(duì)任務(wù)2B614進(jìn)行執(zhí)行控制,使由0S1B622、任務(wù)2B614構(gòu)成的系統(tǒng)作為 第2虛擬計(jì)算機(jī)602發(fā)揮功能。0S1C623對(duì)任務(wù)3C615進(jìn)行執(zhí)行控制,使由0S1C623、任務(wù)3C615構(gòu)成的系統(tǒng)作為第3虛擬計(jì)算機(jī)603發(fā)揮功能。在此,第2虛擬計(jì)算機(jī)602是以第I虛擬計(jì)算機(jī)601為母虛擬計(jì)算機(jī)、通過分叉方式生成的子虛擬計(jì)算機(jī),第3虛擬計(jì)算機(jī)603是以第I虛擬計(jì)算機(jī)601為母虛擬計(jì)算機(jī)、通過分叉方式生成的子虛擬計(jì)算機(jī)。關(guān)于分叉方式的虛擬計(jì)算機(jī)的生成將在后面說明。管理器630在內(nèi)部包含VM(Virtual Machine :虛擬機(jī)、虛擬計(jì)算機(jī))管理表保持部640、VM執(zhí)行控制部650、VM存儲(chǔ)器管理部660這3個(gè)模塊,VM執(zhí)行控制部650還包含VM啟動(dòng)部651、VM執(zhí)行部652、VM結(jié)束部653、請(qǐng)求受理部654這4個(gè)模塊,VM存儲(chǔ)器管理部還包含保護(hù)設(shè)定信息保持部661、保護(hù)設(shè)定部662、C0W (Copy On Write :寫時(shí)復(fù)制)處理部663這3個(gè)模塊。VM管理表保持部640具有存儲(chǔ)預(yù)先決定的應(yīng)用組管理表、預(yù)先決定的虛擬計(jì)算機(jī)管理表、由VM執(zhí)行部652生成的虛擬計(jì)算機(jī)狀態(tài)表的功能。圖7是表示由VM管理表保持部640存儲(chǔ)的應(yīng)用組管理表700的數(shù)據(jù)構(gòu)造的數(shù)據(jù)構(gòu)造圖。如該圖所示,應(yīng)用組管理表700將應(yīng)用組ID710和應(yīng)用程序名720建立對(duì)應(yīng)而構(gòu)成。應(yīng)用程序名720是應(yīng)用程序的名稱,用于確定應(yīng)用程序。應(yīng)用組ID710是用于識(shí)別由對(duì)應(yīng)的應(yīng)用程序名720確定的應(yīng)用程序所屬的應(yīng)用程序組的識(shí)別符。根據(jù)該應(yīng)用組管理表700,例如記事簿、計(jì)算器、終端設(shè)定等名稱的應(yīng)用程序?qū)儆趹?yīng)用組ID為“I”的應(yīng)用程序組,DTV (Digital Television)應(yīng)用等名稱的應(yīng)用程序?qū)儆趹?yīng)用組ID為“2”的應(yīng)用程序組。圖8是表示由VM管理表保持部640存儲(chǔ)的虛擬計(jì)算機(jī)管理表800的數(shù)據(jù)構(gòu)造的數(shù)據(jù)構(gòu)造圖。如該圖所示,虛擬計(jì)算機(jī)管理表800通過將VMID810和應(yīng)用組ID820建立對(duì)應(yīng)而構(gòu)成。應(yīng)用組ID820是與應(yīng)用組ID710同樣的識(shí)別符。
VMID810是用于識(shí)別用來執(zhí)行屬于通過對(duì)應(yīng)的應(yīng)用組ID820識(shí)別的應(yīng)用程序組的應(yīng)用程序的虛擬計(jì)算機(jī)的識(shí)別符。根據(jù)該虛擬計(jì)算機(jī)管理表800,例如以VMID810“1”識(shí)別的虛擬計(jì)算機(jī)是用于執(zhí)行屬于以應(yīng)用組ID820 “I”確定的應(yīng)用程序組的應(yīng)用程序和屬于以“4”確定的應(yīng)用程序組的應(yīng)用程序的虛擬計(jì)算機(jī)。圖9是表示由VM管理表保持部640存儲(chǔ)的虛擬計(jì)算機(jī)狀態(tài)表900的數(shù)據(jù)構(gòu)造的數(shù)據(jù)構(gòu)造圖。如該圖所示,虛擬計(jì)算機(jī)狀態(tài)表900將VMID910和執(zhí)行狀態(tài)920建立對(duì)應(yīng)而構(gòu)成。VMID910是用于識(shí)別虛擬計(jì)算機(jī)的識(shí)別符。執(zhí)行狀態(tài)920是表示通過對(duì)應(yīng)的VMID910識(shí)別的虛擬計(jì)算機(jī)的執(zhí)行狀態(tài)的信息,是如下3個(gè)信息中的某個(gè)信息(I)表示虛擬計(jì)算機(jī)被啟動(dòng)而成為分時(shí)執(zhí)行處理的對(duì)象、處 于能夠進(jìn)行新的任務(wù)處理的狀態(tài)的意思的信息(以下稱為“執(zhí)行中”)、(2)表示虛擬計(jì)算機(jī)未被啟動(dòng)的狀態(tài)的意思的信息(以下稱為“未啟動(dòng)”)、(3)表示虛擬計(jì)算機(jī)雖然被啟動(dòng)而成為分時(shí)執(zhí)行處理的對(duì)象、但是用于使該虛擬計(jì)算機(jī)結(jié)束的結(jié)束處理為執(zhí)行中、無法進(jìn)行新的任務(wù)處理的狀態(tài)的意思的信息(以下稱為“結(jié)束處理中”)。在此,用于使虛擬計(jì)算機(jī)結(jié)束的結(jié)束處理是指,為了執(zhí)行該虛擬計(jì)算機(jī),將由管理器和虛擬計(jì)算機(jī)自身確保的存儲(chǔ)區(qū)域釋放的處理。再次回到圖6,繼續(xù)說明在處理器101上成為執(zhí)行對(duì)象的模塊。請(qǐng)求受理部654具有從執(zhí)行中的虛擬計(jì)算機(jī)的操作系統(tǒng)受理新的應(yīng)用程序的啟動(dòng)請(qǐng)求、并將受理了啟動(dòng)請(qǐng)求的意思的信號(hào)發(fā)送給VM啟動(dòng)部651的功能。VM啟動(dòng)部651具有以下3個(gè)功能。功能I :為了執(zhí)行新的應(yīng)用程序,基于成為母虛擬機(jī)的虛擬計(jì)算機(jī),通過分叉方式生成新的子虛擬計(jì)算機(jī)。在此,分叉方式的虛擬計(jì)算機(jī)的生成是指,以對(duì)成為母虛擬機(jī)的虛擬計(jì)算機(jī)分配的全部存儲(chǔ)區(qū)域和對(duì)新生成的虛擬計(jì)算機(jī)分配的全部存儲(chǔ)區(qū)域一一對(duì)應(yīng)的方式,將對(duì)成為母虛擬機(jī)的虛擬計(jì)算機(jī)分配的存儲(chǔ)區(qū)域映射到新生成的虛擬計(jì)算機(jī)的存儲(chǔ)區(qū)域,從而生成新的虛擬計(jì)算機(jī)。另外,新生成虛擬計(jì)算機(jī)后,成為母虛擬機(jī)的虛擬計(jì)算機(jī)的存儲(chǔ)區(qū)域和新生成的虛擬計(jì)算機(jī)的存儲(chǔ)區(qū)域,由COW處理部663以寫時(shí)復(fù)制(copy on write)方式進(jìn)行管理。由該COW處理部663進(jìn)行的存儲(chǔ)區(qū)域的基于寫時(shí)復(fù)制方式的管理的詳細(xì)情況在后面說明。功能2 :為了執(zhí)行新的應(yīng)用程序而生成新的子虛擬計(jì)算機(jī)的情況下,參照存儲(chǔ)在VM管理表保持部640中的應(yīng)用組管理表700和虛擬計(jì)算機(jī)管理表800,對(duì)該新的虛擬計(jì)算機(jī)賦予作為用于識(shí)別該新的子虛擬計(jì)算機(jī)的識(shí)別符的VMID,將存儲(chǔ)在VM管理表保持部640中的虛擬計(jì)算機(jī)狀態(tài)表900更新,以使與賦予的VMID建立了對(duì)應(yīng)的執(zhí)行狀態(tài)920成為“執(zhí)行中”。功能3 :通過將處理器101初始化,在VM啟動(dòng)部651被啟動(dòng)的情況下,生成作為其他所有虛擬計(jì)算機(jī)的母虛擬機(jī)的虛擬計(jì)算機(jī),并將用于識(shí)別生成的虛擬計(jì)算機(jī)的VMID設(shè)為 “O,,。VM執(zhí)行部652具有使用計(jì)時(shí)器108對(duì)多個(gè)虛擬計(jì)算機(jī)以分時(shí)執(zhí)行控制方式進(jìn)行執(zhí)行控制的功能。VM結(jié)束部653具有從虛擬計(jì)算機(jī)受理使該虛擬計(jì)算機(jī)結(jié)束的請(qǐng)求、即結(jié)束請(qǐng)求的功能;以及在受理了結(jié)束請(qǐng)求的情況下,對(duì)成為對(duì)象的虛擬計(jì)算機(jī)執(zhí)行前述的結(jié)束處理而使該虛擬計(jì)算機(jī)結(jié)束的功能。保護(hù)設(shè)定信息保持部661具有存儲(chǔ)訪問許可信息的功能。圖10是表示由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000的數(shù)據(jù)構(gòu)造的數(shù)據(jù)構(gòu)造圖。如該圖所示,訪問許可信息1000通過將區(qū)域ID1010、VMID1020、訪問信息(圖中的NA、R/W、RO等)建立對(duì)應(yīng)而構(gòu)成。
該訪問許可信息1000由預(yù)先決定的原始訪問信息的部分(與區(qū)域ID1010為I 6對(duì)應(yīng)的部分)和由COW處理部663對(duì)預(yù)先決定的原始訪問信息追加的部分(與區(qū)域ID1010為I 6以外的區(qū)域ID1010對(duì)應(yīng)的部分)構(gòu)成。區(qū)域ID1010與區(qū)域ID310同樣,是用于識(shí)別存儲(chǔ)器102的存儲(chǔ)區(qū)域中的規(guī)定的存儲(chǔ)區(qū)域的識(shí)別符。VMID1020與VMID910同樣,是用于識(shí)別虛擬計(jì)算機(jī)的識(shí)別符。訪問信息是表示關(guān)于對(duì)應(yīng)的VMID1020識(shí)別的虛擬計(jì)算機(jī)的對(duì)由對(duì)應(yīng)的區(qū)域ID1010識(shí)別的規(guī)定的存儲(chǔ)區(qū)域進(jìn)行的訪問的限制的信息,與訪問信息420同樣,是R/W、R0、W)、NA這4個(gè)信息中的某I個(gè)信息。根據(jù)該訪問許可信息1000,例如對(duì)于以VMID1020為“ I”識(shí)別的虛擬計(jì)算機(jī),區(qū)域ID1010為“I”的規(guī)定的區(qū)域既不可以讀出也不可以寫入,區(qū)域ID1010為“2”的規(guī)定的區(qū)域可以讀出但不可以寫入,區(qū)域ID1010為“3”的規(guī)定的區(qū)域可以讀出但不可以寫入,區(qū)域ID1010為“4”的規(guī)定的區(qū)域既不可以讀出也不可以寫入。保護(hù)設(shè)定部662具有以下2個(gè)功能。功能I :在切換由VM執(zhí)行部652執(zhí)行的虛擬計(jì)算機(jī)的情況下,從由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000中,讀出與成為切換目標(biāo)的虛擬計(jì)算機(jī)的VMID1020有關(guān)的、分別與區(qū)域ID1010建立了對(duì)應(yīng)的訪問信息,生成存儲(chǔ)器保護(hù)信息400 (參照?qǐng)D4),利用生成的存儲(chǔ)器保護(hù)信息400來更新存儲(chǔ)器保護(hù)單元107所存儲(chǔ)的存儲(chǔ)器保護(hù)信息400。功能2 :在COW處理部663更新由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000的情況下,從由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000中,讀出與當(dāng)前執(zhí)行中的虛擬計(jì)算機(jī)的VMID有關(guān)的、分別與區(qū)域ID1010建立了對(duì)應(yīng)的訪問信息,生成存儲(chǔ)器保護(hù)信息400,并利用生成的存儲(chǔ)器保護(hù)信息400來更新存儲(chǔ)器保護(hù)單元107所存儲(chǔ)的存儲(chǔ)器保護(hù)信息400。COff處理部663具有以下2個(gè)功能。功能I :對(duì)從虛擬計(jì)算機(jī)向存儲(chǔ)區(qū)域的訪問進(jìn)行基于寫時(shí)復(fù)制方式的訪問管理。在此,基于寫時(shí)復(fù)制方式的訪問管理是指如下的訪問管理方法對(duì)于母虛擬計(jì)算機(jī)的存儲(chǔ)區(qū)域和子虛擬計(jì)算機(jī)的存儲(chǔ)區(qū)域,不能由任一虛擬計(jì)算機(jī)改寫的頁被雙方的虛擬計(jì)算機(jī)共用,而對(duì)于能夠由某個(gè)虛擬計(jì)算機(jī)改寫的頁,將母虛擬計(jì)算機(jī)利用的頁和子虛擬計(jì)算機(jī)利用的頁分配到相互不同的存儲(chǔ)區(qū)域而利用。功能2 :通過進(jìn)行基于寫時(shí)復(fù)制方式的訪問管理,對(duì)虛擬計(jì)算機(jī)分配新的存儲(chǔ)區(qū)域的情況下,將保護(hù)設(shè)定信息保持部661所保持的訪問許可信息1000更新。這時(shí),以如下方式進(jìn)行訪問許可信息1000的更新對(duì)于與新分配的存儲(chǔ)區(qū)域?qū)?yīng)的區(qū)域ID1010,與用于識(shí)別成為對(duì)象的虛擬計(jì)算機(jī)的VMID1020對(duì)應(yīng)的訪問信息為R/W,與用于識(shí)別成為對(duì)象的虛擬計(jì)算機(jī)以外的所有虛擬計(jì)算機(jī)的VMID1020對(duì)應(yīng)的訪問信息為NA。另外,成為對(duì)象的虛擬計(jì)算機(jī)是執(zhí)行未認(rèn)證應(yīng)用程序的虛擬計(jì)算機(jī)的情況下,為了從執(zhí)行母虛擬計(jì)算機(jī)或認(rèn)證應(yīng)用程序的虛擬計(jì)算機(jī)監(jiān)視該虛擬計(jì)算機(jī)及未認(rèn)證應(yīng)用程序的執(zhí)行,也可以將新分配的存儲(chǔ)器區(qū)域的訪問信息設(shè)為RO或R/W。在此,回到圖6,對(duì)第2虛擬計(jì)算機(jī)602和第3虛擬計(jì)算機(jī)603的說明進(jìn)行補(bǔ)充。第2虛擬計(jì)算機(jī)602是為了執(zhí)行任務(wù)2B614,而由VM啟動(dòng)部651以第I虛擬計(jì)算機(jī)601為母虛擬計(jì)算機(jī)通過分叉方式生成的虛擬計(jì)算機(jī)。 此外,第3虛擬計(jì)算機(jī)603是為了執(zhí)行任務(wù)3C615,而由VM啟動(dòng)部651以第I虛擬計(jì)算機(jī)601為母虛擬計(jì)算機(jī)通過分叉方式生成的虛擬計(jì)算機(jī)。任務(wù)2B614是伴隨著第2虛擬計(jì)算機(jī)602的生成而基于任務(wù)2A612生成的任務(wù),任務(wù)2A612所利用的存儲(chǔ)區(qū)域和任務(wù)2B所利用的存儲(chǔ)區(qū)域由COW處理部663以寫時(shí)復(fù)制
方式進(jìn)行管理。任務(wù)3C615是伴隨著第3虛擬計(jì)算機(jī)603的生成而基于任務(wù)3A613生成的任務(wù),任務(wù)3A613所利用的存儲(chǔ)區(qū)域和任務(wù)3C所利用的存儲(chǔ)區(qū)域由COW處理部663以寫時(shí)復(fù)制
方式進(jìn)行管理。0S1B622和0S1C623是與第I虛擬計(jì)算機(jī)601的0S1A621對(duì)應(yīng)的操作系統(tǒng),0S1B622伴隨著第2虛擬計(jì)算機(jī)602的生成而生成,0S1C623伴隨著第3虛擬計(jì)算機(jī)603的生成而生成,0S1A621所利用的存儲(chǔ)區(qū)域、0S1B622所利用的存儲(chǔ)區(qū)域、0S1C623所利用的存儲(chǔ)區(qū)域由COW處理部663以寫時(shí)復(fù)制方式進(jìn)行管理。以上那樣構(gòu)成的虛擬計(jì)算機(jī)系統(tǒng)100按照以下所示的存儲(chǔ)器102的存儲(chǔ)區(qū)域的利用方法,利用存儲(chǔ)器102的存儲(chǔ)區(qū)域。<存儲(chǔ)器102的存儲(chǔ)區(qū)域的利用方法>在此,使用
虛擬計(jì)算機(jī)系統(tǒng)100中的存儲(chǔ)器102的存儲(chǔ)區(qū)域的利用方法。圖11是表示在時(shí)刻t0對(duì)于存儲(chǔ)器102的存儲(chǔ)區(qū)域中的被劃分為規(guī)定的區(qū)域的各個(gè)存儲(chǔ)區(qū)域的利用方法的、存儲(chǔ)器102的存儲(chǔ)區(qū)域圖。在該圖中,管理器分配區(qū)域1101是區(qū)域ID310 (參照?qǐng)D3)為“I”的規(guī)定的存儲(chǔ)區(qū)域,與圖5中的區(qū)域A501對(duì)應(yīng)。此外,該區(qū)域被預(yù)先設(shè)定為管理器630的代碼被容納的區(qū)域、或由管理器630利用的存儲(chǔ)區(qū)域。此外,根據(jù)由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000中的原始訪問信息的部分,對(duì)所有虛擬計(jì)算機(jī)預(yù)先設(shè)定既不可以讀出也不可以寫入的區(qū)域。操作系統(tǒng)分配區(qū)域1102是區(qū)域ID310為“2”的規(guī)定的存儲(chǔ)區(qū)域,與圖5中的區(qū)域B502對(duì)應(yīng)。而且,該區(qū)域被預(yù)先設(shè)定為成為處理器101的執(zhí)行對(duì)象的操作系統(tǒng)的代碼被容納的區(qū)域、或由成為處理器101的執(zhí)行對(duì)象的操作系統(tǒng)利用的存儲(chǔ)區(qū)域。此外,該區(qū)域被預(yù)先設(shè)定為僅能夠由管理員模式220的處理器101訪問的區(qū)域。此外,根據(jù)由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000中的原始訪問信息的部分,預(yù)先設(shè)定為對(duì)VMID1020為“O”的虛擬計(jì)算機(jī)(S卩,作為所有其他虛擬計(jì)算機(jī)的母虛擬計(jì)算機(jī)的第I虛擬計(jì)算機(jī)601)既可以讀出也可以寫入的區(qū)域,對(duì)該虛擬計(jì)算機(jī)以外的所有虛擬計(jì)算機(jī)可以讀出但不可以寫入的區(qū)域。第I種程序分配區(qū)域1103是區(qū)域ID310為“3”的規(guī)定的存儲(chǔ)區(qū)域,與圖5中的區(qū)域C503對(duì)應(yīng)。而且,該區(qū)域預(yù)先設(shè)定為屬于應(yīng)用組ID為“I”的應(yīng)用程序組的程序(以后稱為“第I種程序”)被容納的區(qū)域、或由第I種程序利用的存儲(chǔ)區(qū)域。此外,根據(jù)由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000中的原始訪問信息的部分,預(yù)先設(shè)定為對(duì)VMID1020為“O”的虛擬計(jì)算機(jī)既可以讀出也可以寫入的區(qū)域,對(duì)VMID1020為“I”的虛擬計(jì)算機(jī)可以讀出但不可以寫入的區(qū)域,對(duì)其以外的所有虛擬計(jì)算機(jī)既不可以讀出也不可以寫入的區(qū)域。第2種程序分配區(qū)域1104是區(qū)域ID310為“4”的規(guī)定的存儲(chǔ)區(qū)域,與圖5中的區(qū)域D504對(duì)應(yīng)。而且,該區(qū)域預(yù)先設(shè)定為屬于應(yīng)用組ID為“2”的應(yīng)用程序組的程序(以后稱為“第2種程序”)被容納的區(qū)域、或由第2種程序利用的存儲(chǔ)區(qū)域。此外,根據(jù)由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000中的原始訪問信息的部分,預(yù)先設(shè)定為對(duì)VMID1020 為“O”的虛擬計(jì)算機(jī)既可以讀出也可以寫入的區(qū)域,對(duì)VMID1020為“2”的虛擬計(jì)算機(jī)可以讀出但不可以寫入的區(qū)域,對(duì)其以外的所有虛擬計(jì)算機(jī)既不可以讀出也不可以寫入的區(qū)域。第3種程序分配區(qū)域1105是區(qū)域ID310為“5”的規(guī)定的存儲(chǔ)區(qū)域,與圖5中的區(qū)域E505對(duì)應(yīng)。而且,該區(qū)域預(yù)先設(shè)定為屬于應(yīng)用組ID為“3”的應(yīng)用程序組的程序(以后稱為“第3種程序”)被容納的區(qū)域、或由第3種程序利用的存儲(chǔ)區(qū)域。此外,根據(jù)由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000中的原始訪問信息的部分,預(yù)先設(shè)定為對(duì)VMID1020為“O”的虛擬計(jì)算機(jī)既可以讀出也可以寫入的區(qū)域,對(duì)VMID1020為“3”的虛擬計(jì)算機(jī)可以讀出但不可以寫入的區(qū)域,對(duì)其以外的所有虛擬計(jì)算機(jī)既不可以讀出也不可以寫入的區(qū)域。IO區(qū)域1106至1108是區(qū)域ID310為“K”、“L”、“M”的規(guī)定的存儲(chǔ)區(qū)域,與圖5中的區(qū)域K506、L507、M508對(duì)應(yīng)。該區(qū)域被預(yù)先設(shè)定為用于實(shí)現(xiàn)I/O仿真的區(qū)域,該I/O仿真是指,對(duì)于作為在虛擬計(jì)算機(jī)間共享器件控制的ー個(gè)方式的、共享的I/O寄存器,在從應(yīng)用程序或操作系統(tǒng)有I/O操作請(qǐng)求時(shí),進(jìn)行產(chǎn)生例外的訪問設(shè)定,由管理器接收產(chǎn)生的例外,由管理器進(jìn)行相應(yīng)的I/O操作的調(diào)解及代理。此外,根據(jù)由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000中的原始訪問信息的部分,對(duì)于VMID1020為“O”的虛擬計(jì)算機(jī),將IO區(qū)域1106至1108預(yù)先設(shè)定為既可以讀出又可以寫入的區(qū)域,對(duì)于該虛擬計(jì)算機(jī)以外的所有虛擬計(jì)算機(jī),為了使IO區(qū)域1106成為用于實(shí)現(xiàn)讀出和寫入共享的區(qū)域,預(yù)先設(shè)定既不可以讀出又不可以寫入的區(qū)域,為了使IO區(qū)域1107成為實(shí)現(xiàn)僅寫入共享的區(qū)域,預(yù)先設(shè)定可以讀出但是不可以寫入的區(qū)域,為了使IO區(qū)域1108成為實(shí)現(xiàn)僅讀出共享的區(qū)域,預(yù)先設(shè)定不可以讀出但可以寫入的區(qū)域。第2種程序的第I虛擬計(jì)算機(jī)用分配區(qū)域1111是區(qū)域ID310為“N”的規(guī)定的存儲(chǔ)區(qū)域,與圖5中的區(qū)域N511對(duì)應(yīng)。該區(qū)域是通過由COW處理部663進(jìn)行第2種程序的基于寫時(shí)復(fù)制方式的訪問管理,而對(duì)第I虛擬計(jì)算機(jī)601新分配的區(qū)域,通過COW處理部663更新由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000來進(jìn)行設(shè)定。
第2種程序的第2虛擬計(jì)算機(jī)用分配區(qū)域1112是區(qū)域ID310為“N + I”的規(guī)定的存儲(chǔ)區(qū)域,與圖5中的區(qū)域N+ I (512)對(duì)應(yīng)。該區(qū)域是通過由COW處理部663進(jìn)行第2種程序的基于寫時(shí)復(fù)制方式的訪問管理,而對(duì)第2虛擬計(jì)算機(jī)602新分配的區(qū)域,通過COW處理部663更新由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000來進(jìn)行設(shè)定。第3種程序的第I虛擬計(jì)算機(jī)用分配區(qū)域1113是區(qū)域ID310為“N + 2”的規(guī)定的存儲(chǔ)區(qū)域,與圖5中的區(qū)域N+2 (513)對(duì)應(yīng)。該區(qū)域是通過由COW處理部663進(jìn)行第3種程序的基于寫時(shí)復(fù)制方式的訪問管理,而對(duì)第I虛擬計(jì)算機(jī)601新分配的區(qū)域,通過COW處理部663更新由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000而進(jìn)行設(shè)定。第3種程序的第3虛擬計(jì)算機(jī)用分配區(qū)域1114是區(qū)域ID310為“N + 3”的規(guī)定的存儲(chǔ)區(qū)域,與圖5中的區(qū)域N + 3 (514)對(duì)應(yīng)。該區(qū)域是通過由COW處理部663進(jìn)行第3種程序的基于寫時(shí)復(fù)制方式的訪問管理,而對(duì)第3虛擬計(jì)算機(jī)603新分配的區(qū)域,通過COW處理部663更新由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000而進(jìn)行設(shè)定。以下,參照
虛擬計(jì)算機(jī)系統(tǒng)100所進(jìn)行的動(dòng)作。 <動(dòng)作>在此,說明虛擬計(jì)算機(jī)系統(tǒng)100所進(jìn)行的動(dòng)作中的、作為特征性動(dòng)作的虛擬計(jì)算機(jī)切換處理、存儲(chǔ)器訪問處理、應(yīng)用程序執(zhí)行處理。<虛擬計(jì)算機(jī)切換處理>虛擬計(jì)算機(jī)切換處理是切換使處理器101執(zhí)行的虛擬計(jì)算機(jī)的處理。圖12是虛擬計(jì)算機(jī)切換處理的流程圖。在進(jìn)行虛擬計(jì)算機(jī)的分時(shí)執(zhí)行處理的VM執(zhí)行部652使用計(jì)時(shí)器108計(jì)測(cè)的時(shí)間經(jīng)過了規(guī)定時(shí)間的情況下,或處理器101從處理器101的外部受理了向當(dāng)前未執(zhí)行的虛擬計(jì)算機(jī)的中斷請(qǐng)求的情況下等,由VM執(zhí)行部652開始虛擬計(jì)算機(jī)切換處理。虛擬計(jì)算機(jī)切換處理開始后,VM執(zhí)行部652確定成為切換目標(biāo)的虛擬計(jì)算機(jī)(步驟 S1200)。步驟S1200的處理結(jié)束后,VM執(zhí)行部652將處理器101的寄存器值保存到與當(dāng)前執(zhí)行中的虛擬計(jì)算機(jī)建立了對(duì)應(yīng)的規(guī)定的存儲(chǔ)區(qū)域中,并使當(dāng)前執(zhí)行中的虛擬計(jì)算機(jī)中斷(步驟S1220)。在此,該規(guī)定的存儲(chǔ)區(qū)域設(shè)置在存儲(chǔ)器102的存儲(chǔ)區(qū)域中的、僅能夠由管理器102訪問的管理器分配區(qū)域1101中。步驟S1220的處理結(jié)束后,VM執(zhí)行部652對(duì)于存儲(chǔ)在高速緩沖存儲(chǔ)器105中的數(shù)據(jù),在回寫(write back)處理之后進(jìn)行閃存(步驟S1230)。另外,為了避免高速緩沖閃存導(dǎo)致的執(zhí)行速度的降低,也可以限制每個(gè)虛擬計(jì)算機(jī)能夠利用的高速緩沖區(qū)域,并省略步驟S1230。步驟S1230的處理結(jié)束后,保護(hù)設(shè)定部662在步驟S1200的處理中,讀出與由VM執(zhí)行部652確定的成為切換目標(biāo)的虛擬計(jì)算機(jī)的VMID1020 (參照?qǐng)D10)有關(guān)的、分別與區(qū)域ID1010建立了對(duì)應(yīng)的訪問信息,生成存儲(chǔ)器保護(hù)信息400 (參照?qǐng)D4),并以生成的存儲(chǔ)器保護(hù)信息400來更新存儲(chǔ)器保護(hù)單元107所存儲(chǔ)的存儲(chǔ)器保護(hù)信息400 (步驟S1240)。步驟S1240的處理結(jié)束后,VM執(zhí)行部652將保存在與成為切換目標(biāo)的虛擬計(jì)算機(jī)建立了對(duì)應(yīng)的規(guī)定的存儲(chǔ)區(qū)域中的、處理器101的寄存器值恢復(fù)到處理器101的寄存器中(步驟S1250),并啟動(dòng)該虛擬計(jì)算機(jī)(步驟S1260)。另外,限制每個(gè)虛擬計(jì)算機(jī)能夠利用的高速緩沖區(qū)域并省略步驟S1230的情況下,在本步驟S1260中切換高速緩沖區(qū)域。VM執(zhí)行部652結(jié)束步驟S1260的處理后,虛擬計(jì)算機(jī)系統(tǒng)100結(jié)束該虛擬計(jì)算機(jī)切換處理。<存儲(chǔ)器訪問處理>存儲(chǔ)器訪問處理是存儲(chǔ)器保護(hù)單元107進(jìn)行的向存儲(chǔ)器102的存儲(chǔ)區(qū)域的訪問控制動(dòng)作。圖13是存儲(chǔ)器訪問處理的流程圖。通過由存儲(chǔ)器保護(hù)單元107經(jīng)由內(nèi)部總線120受理從處理器101向存儲(chǔ)器102的存儲(chǔ)區(qū)域的訪問請(qǐng)求,開始存儲(chǔ)器訪問處理。
存儲(chǔ)器訪問處理開始后,存儲(chǔ)器保護(hù)單元107參照存儲(chǔ)的存儲(chǔ)器保護(hù)表300(參照?qǐng)D3),確定所接受的訪問請(qǐng)求的地址包含在由區(qū)域ID310識(shí)別的規(guī)定的區(qū)域中的哪個(gè)規(guī)定的區(qū)域中(步驟S1300)。步驟S1300的處理結(jié)束后,存儲(chǔ)器保護(hù)單元107參照存儲(chǔ)的存儲(chǔ)器保護(hù)信息400(參照?qǐng)D4),比較所接受的訪問請(qǐng)求的訪問種類(寫入和讀出的哪ー個(gè))和與識(shí)別確定的區(qū)域的區(qū)域ID410建立了對(duì)應(yīng)的訪問信息420 (步驟S1310),調(diào)查所接受的訪問請(qǐng)求的訪問種類是否滿足與識(shí)別確定的區(qū)域的區(qū)域ID410建立了對(duì)應(yīng)的訪問信息420 (步驟S1320)。在步驟S1320的處理中,所接受的訪問請(qǐng)求的訪問種類滿足與識(shí)別確定的區(qū)域的區(qū)域ID410建立了對(duì)應(yīng)的訪問信息420的情況下(步驟S1320 :是),存儲(chǔ)器保護(hù)單元107執(zhí)行所接受的訪問請(qǐng)求(步驟S1330)。在步驟S1320的處理中,所接受的訪問請(qǐng)求的訪問種類不滿足與識(shí)別確定的區(qū)域的區(qū)域ID410建立了對(duì)應(yīng)的訪問信息420的情況下(步驟S1320 :否),存儲(chǔ)器保護(hù)單元107不執(zhí)行所接受的訪問請(qǐng)求,對(duì)處理器101進(jìn)行不能執(zhí)行向存儲(chǔ)器區(qū)域的訪問的意思的例外通知(步驟S1340)。存儲(chǔ)器保護(hù)單元107結(jié)束步驟S1330的處理的情況下,或結(jié)束步驟S1340的處理的情況下,虛擬計(jì)算機(jī)系統(tǒng)100結(jié)束該存儲(chǔ)器訪問處理。<應(yīng)用程序執(zhí)行處理>應(yīng)用程序執(zhí)行處理是如下的處理在請(qǐng)求受理部654從執(zhí)行中的虛擬計(jì)算機(jī)的操作系統(tǒng)受理了新的應(yīng)用程序的啟動(dòng)請(qǐng)求的情況下,VM啟動(dòng)部651確定執(zhí)行該新的應(yīng)用程序的虛擬計(jì)算機(jī),并對(duì)確定的虛擬計(jì)算機(jī)指示該新的應(yīng)用程序的執(zhí)行。作為虛擬計(jì)算機(jī)的操作系統(tǒng)對(duì)請(qǐng)求受理部654進(jìn)行新的應(yīng)用程序的啟動(dòng)請(qǐng)求的情況的例子,例如有如下情況等通過由利用虛擬計(jì)算機(jī)系統(tǒng)100的用戶對(duì)輸入裝置131進(jìn)行操作,被操作系統(tǒng)進(jìn)行執(zhí)行控制的任務(wù)向操作系統(tǒng)委托新的應(yīng)用程序的啟動(dòng)的請(qǐng)求。圖14是應(yīng)用程序執(zhí)行處通的流程圖。通過由請(qǐng)求受理部654從執(zhí)行中的虛擬計(jì)算機(jī)的操作系統(tǒng)受理新的應(yīng)用程序的啟動(dòng)請(qǐng)求,開始應(yīng)用程序執(zhí)行處理。請(qǐng)求受理部654受理新的應(yīng)用程序的啟動(dòng)請(qǐng)求后,將受理了啟動(dòng)請(qǐng)求的意思的信號(hào)發(fā)送給VM啟動(dòng)部651。VM啟動(dòng)部651接受到受理了啟動(dòng)請(qǐng)求的意思的信號(hào)后,參照由VM管理表保持部640存儲(chǔ)的應(yīng)用組管理表700(參照?qǐng)D7),確定該應(yīng)用程序所屬的應(yīng)用程序組(步驟S1400),并且參照由VM管理表保持部640存儲(chǔ)的虛擬計(jì)算機(jī)管理表800 (參照?qǐng)D8),確定用于執(zhí)行屬于確定的應(yīng)用組的應(yīng)用程序的虛擬計(jì)算機(jī)(步驟S1410)。步驟S1410的處理結(jié)束后,VM啟動(dòng)部651參照由VM管理表保持部640存儲(chǔ)的虛擬計(jì)算機(jī)狀態(tài)表900 (參照?qǐng)D9),調(diào)查確定的虛擬計(jì)算機(jī)是否處于執(zhí)行中(步驟S1420)。在步驟S1420的處理中,確定的虛擬計(jì)算機(jī)不是執(zhí)行中的情況下(步驟S1420 否),VM啟動(dòng)部651進(jìn)ー步參照由VM管理表保持部640存儲(chǔ)的虛擬計(jì)算機(jī)狀態(tài)表900,調(diào)查確定的虛擬計(jì)算機(jī)是否處于結(jié)束處理中(步驟S1430)。在步驟S1430的處理中,確定的虛擬計(jì)算機(jī)是結(jié)束處理中的情況下(步驟S1430 是),VM啟動(dòng)部651待機(jī),直到確定的虛擬計(jì)算機(jī)不再處于結(jié)束處理中(步驟S1430 :重復(fù)“是”的處理)。
在步驟S1430的處理中,確定的虛擬計(jì)算機(jī)不是結(jié)束處理中的情況下(步驟S1430 :否),VM啟動(dòng)部651以分叉方式生成確定的虛擬計(jì)算機(jī)(步驟S1440)。在步驟S1420的處理中,在確定的虛擬計(jì)算機(jī)為執(zhí)行中的情況下(步驟S1420 是),或步驟S1440的處理已結(jié)束的情況下,VM啟動(dòng)部651向確定的虛擬計(jì)算機(jī)的操作系統(tǒng)發(fā)送開始執(zhí)行成為對(duì)象的應(yīng)用的意思的信號(hào)(步驟S1450)。VM啟動(dòng)部651結(jié)束步驟S1450的處理后,虛擬計(jì)算機(jī)系統(tǒng)100結(jié)束該應(yīng)用程序執(zhí)行處理。< 考察 >以下,使用具體例考察虛擬計(jì)算機(jī)系統(tǒng)100的動(dòng)作。作為具體例,考察在應(yīng)用程序名720 (參照?qǐng)D7)為“記事薄”的應(yīng)用程序(以下簡(jiǎn)稱為“記事薄”)及由記事簿利用的數(shù)據(jù)容納在區(qū)域ID1010 (參照?qǐng)D10)為“3”的規(guī)定的區(qū)域中、應(yīng)用程序名720為“郵箱”的應(yīng)用程序(以下簡(jiǎn)稱為“郵箱”)及由郵箱利用的數(shù)據(jù)榮楠在區(qū)域ID1010為“5”的規(guī)定的區(qū)域中的情況下,在記事簿中包含有將郵箱啟動(dòng)并將記錄在地址簿中的個(gè)人信息向外部流出的惡意軟件的情況。在虛擬計(jì)算機(jī)系統(tǒng)100中,記事簿屬于應(yīng)用組ID710為“I”的應(yīng)用程序組(參照應(yīng)用組管理表700 (參照?qǐng)D7)),所以被VMID810為“I”的虛擬計(jì)算機(jī)(以下稱為“虛擬計(jì)算機(jī)I”)執(zhí)行(參照虛擬計(jì)算機(jī)管理表800 (參照?qǐng)D8))。在執(zhí)行記事簿的虛擬計(jì)算機(jī)I中,記事簿中包含的惡意軟件被執(zhí)行時(shí),該惡意軟件嘗試使郵箱啟動(dòng)。但是,郵箱及由郵箱利用的數(shù)據(jù)容納在區(qū)域ID1010為“5”的規(guī)定的區(qū)域中,來自虛擬計(jì)算機(jī)I的訪問被存儲(chǔ)器保護(hù)單元107禁止(參照?qǐng)D10的訪問許可信息1000)。因此,惡意軟件無法使郵箱啟動(dòng),或?qū)⑧]箱篡改,或訪問由郵箱利用的數(shù)據(jù)。因此,惡意軟件不會(huì)使記錄在地址簿中的個(gè)人信息向外部流出。這樣,本實(shí)施方式I的虛擬計(jì)算機(jī)系統(tǒng)100,即使在作為虛擬計(jì)算機(jī)的執(zhí)行對(duì)象的應(yīng)用程序中包含惡意軟件,也能夠比以往更低地抑制由該惡意軟件攻擊不想被惡意軟件攻擊的應(yīng)用程序的危險(xiǎn)性。<實(shí)施方式2>< 概要 >以下,作為本發(fā)明的虛擬計(jì)算機(jī)系統(tǒng)的ー個(gè)實(shí)施方式,說明將實(shí)施方式I中的虛擬計(jì)算機(jī)系統(tǒng)100的一部分變形后的虛擬計(jì)算機(jī)系統(tǒng)1500。實(shí)施方式2的虛擬計(jì)算機(jī)系統(tǒng)1500的 硬件構(gòu)成從實(shí)施方式I的虛擬計(jì)算機(jī)系統(tǒng)100部分變形,此外,執(zhí)行的軟件的一部分從實(shí)施方式I的虛擬計(jì)算機(jī)系統(tǒng)100部分變形。實(shí)施方式I的虛擬計(jì)算機(jī)系統(tǒng)100是具備對(duì)向存儲(chǔ)器102的存儲(chǔ)區(qū)域的訪問進(jìn)行控制的存儲(chǔ)器保護(hù)單元107的構(gòu)成的例子,但是實(shí)施方式2是以下情況的例子虛擬計(jì)算機(jī)系統(tǒng)1500不具備作為硬件的存儲(chǔ)器保護(hù)單元,由處理器執(zhí)行的管理器具有對(duì)向存儲(chǔ)器102的存儲(chǔ)區(qū)域的訪問進(jìn)行控制的功能。以下,參照
本實(shí)施方式2的虛擬計(jì)算機(jī)系統(tǒng)1500的構(gòu)成,重點(diǎn)說明與實(shí)施方式I的虛擬計(jì)算機(jī)系統(tǒng)100的構(gòu)成的不同點(diǎn)。<硬件構(gòu)成>圖15是表示虛擬計(jì)算機(jī)系統(tǒng)1500的主要的硬件構(gòu)成的框圖。如該圖所示,虛擬計(jì)算機(jī)系統(tǒng)1500與虛擬計(jì)算機(jī)系統(tǒng)100同樣,作為硬件是計(jì)算機(jī)裝置,從實(shí)施方式I的虛擬計(jì)算機(jī)系統(tǒng)100將集成電路110變形為集成電路1510。<程序模塊構(gòu)成>圖16是表示在某時(shí)刻t0在處理器101上成為執(zhí)行對(duì)象的模塊的框圖。在該圖中,模塊群1600是在處理器101中成為執(zhí)行對(duì)象的模塊的集合,模塊群1600所包含的模塊分別為對(duì)應(yīng)的程序容納在存儲(chǔ)器102的存儲(chǔ)區(qū)域中。虛擬計(jì)算機(jī)系統(tǒng)1500中的模塊群1600從實(shí)施方式I的虛擬計(jì)算機(jī)系統(tǒng)100中的模塊群600將管理器630變更為管理器1630。管理器1630從實(shí)施方式I的管理器630將VM存儲(chǔ)器管理部660變更為VM存儲(chǔ)器管理部1660。VM存儲(chǔ)器管理部1660相對(duì)于實(shí)施方式I的VM存儲(chǔ)器管理部660,變形為追加了虛擬MMU1670和存儲(chǔ)器保護(hù)部1680。虛擬MMU1670與MMU106協(xié)作,具有用于指定存儲(chǔ)器102的物理存儲(chǔ)區(qū)域的地址的物理地址與用于指定處理器101所利用的邏輯存儲(chǔ)區(qū)域的地址的邏輯地址的變換功能。虛擬計(jì)算機(jī)系統(tǒng)1500設(shè)定為,對(duì)每個(gè)虛擬計(jì)算機(jī)単獨(dú)分配邏輯存儲(chǔ)區(qū)域而使虛擬計(jì)算機(jī)執(zhí)行(以下,將對(duì)每個(gè)虛擬計(jì)算機(jī)単獨(dú)分配的邏輯存儲(chǔ)區(qū)域稱為“一次邏輯存儲(chǔ)區(qū)域”,將一次邏輯存儲(chǔ)區(qū)域的地址稱為“一次邏輯地址”),并且設(shè)定為,由MMU106將該一次邏輯地址變換為存儲(chǔ)器102所利用的物理地址。該虛擬MMU1670所具有的功能是指,將各虛擬計(jì)算機(jī)在本虛擬計(jì)算機(jī)內(nèi)利用的邏輯存儲(chǔ)地址(以下將該虛擬計(jì)算機(jī)在本虛擬計(jì)算機(jī)內(nèi)利用的邏輯存儲(chǔ)區(qū)域稱為“二次邏輯存儲(chǔ)區(qū)域”,將二次邏輯存儲(chǔ)區(qū)域的地址稱為“二次邏輯地址”)變換為上述一次邏輯地址。存儲(chǔ)器保護(hù)部1680具有在內(nèi)部存儲(chǔ)存儲(chǔ)器保護(hù)表300 (參照?qǐng)D3)和存儲(chǔ)器保護(hù)信息400 (參照?qǐng)D4)的功能;以及參照存儲(chǔ)的存儲(chǔ)器保護(hù)表300和存儲(chǔ)器保護(hù)信息400,對(duì)虛擬計(jì)算機(jī)使用一次邏輯地址進(jìn)行的向存儲(chǔ)器102的物理存儲(chǔ)區(qū)域的訪問進(jìn)行控制的功倉^:。在此,存儲(chǔ)器保護(hù)部1680的、參照存儲(chǔ)器保護(hù)表300和存儲(chǔ)器保護(hù)信息400進(jìn)行的向存儲(chǔ)器102的存儲(chǔ)區(qū)域的訪問控制,與實(shí)施方式I的存儲(chǔ)器保護(hù)單元107所進(jìn)行的向存儲(chǔ)器102的存儲(chǔ)區(qū)域的訪問的控制(參照實(shí)施方式I中的<存儲(chǔ)器訪問處理>項(xiàng)目)相同,將存儲(chǔ)器保護(hù)單元107置換為存儲(chǔ)器保護(hù)部1680而成。因此,在此省略其說明。上述構(gòu)成的虛擬計(jì)算機(jī)系統(tǒng)1500與實(shí)施方式I的虛擬計(jì)算機(jī)系統(tǒng)100同樣,即使在成為虛擬計(jì)算機(jī)的執(zhí)行對(duì)象的應(yīng)用程序中包含有惡意軟件,與以往相比,能夠更加抑制原本不想執(zhí)行的應(yīng)用程序被執(zhí)行的危險(xiǎn)性。<實(shí)施方式3>< 概要 >以下,作為本發(fā)明的虛擬計(jì)算機(jī)系統(tǒng)的ー個(gè)實(shí)施方式,說明將實(shí)施方式I中的虛擬計(jì)算機(jī)系統(tǒng)100的一部分變形后的變形虛擬計(jì)算機(jī)系統(tǒng)。實(shí)施方式3的變形虛擬計(jì)算機(jī)系統(tǒng)的硬件構(gòu)成與實(shí)施方式I的虛擬計(jì)算機(jī)系統(tǒng)100相同,但是執(zhí)行的軟件的一部分從實(shí)施方式I的虛擬計(jì)算機(jī)系統(tǒng)100部分變形。
該變形虛擬計(jì)算機(jī)系統(tǒng)是如下構(gòu)成的虛擬計(jì)算機(jī)系統(tǒng)的例子在執(zhí)行多個(gè)虛擬計(jì)算機(jī)的情況下,也僅由執(zhí)行的虛擬計(jì)算機(jī)中的I個(gè)虛擬計(jì)算機(jī)(在此為第I虛擬計(jì)算機(jī))直接控制顯示器、鍵盤等器件,其以外的虛擬計(jì)算機(jī)通過向第I虛擬計(jì)算機(jī)委托器件的控制,間接地對(duì)器件進(jìn)行控制。以下,參照
本實(shí)施方式3的變形虛擬計(jì)算機(jī)系統(tǒng)的構(gòu)成,重點(diǎn)說明與實(shí)施方式I的虛擬計(jì)算機(jī)系統(tǒng)100的構(gòu)成的不同點(diǎn)。圖17是表示在某時(shí)刻t0在處理器101上成為執(zhí)行對(duì)象的模塊的框圖。在該圖中,模塊群1700是在處理器101中成為執(zhí)行對(duì)象的模塊的集合,模塊群1700所包含的模塊分別為對(duì)應(yīng)的程序容納在存儲(chǔ)器102的存儲(chǔ)區(qū)域中。變形虛擬計(jì)算機(jī)系統(tǒng)中的模塊群1700從實(shí)施方式I的虛擬計(jì)算機(jī)系統(tǒng)100中的模塊群600將第I虛擬計(jì)算機(jī)601變更為第I虛擬計(jì)算機(jī)1701,將第2虛擬計(jì)算機(jī)602變更為第2虛擬計(jì)算機(jī)1702,將第3虛擬計(jì)算機(jī)603變更為第3虛擬計(jì)算機(jī)1703。第I虛擬計(jì)算機(jī)1701是VMID1020為“O”的、其他所有虛擬計(jì)算機(jī)的母虛擬計(jì)算機(jī),從實(shí)施方式I中的第I虛擬計(jì)算機(jī)601將0S1A621變形為包含器件驅(qū)動(dòng)器1731的0S1A1721。第2虛擬計(jì)算機(jī)1702是為了執(zhí)行任務(wù)2B614,由VM啟動(dòng)部651以第I虛擬計(jì)算機(jī)1701為母虛擬計(jì)算機(jī)通過分叉方式生成的虛擬計(jì)算機(jī),從實(shí)施方式I中的第2虛擬計(jì)算機(jī)602將0S1B622變更為包含器件驅(qū)動(dòng)器1732的0S1B1722。第3虛擬計(jì)算機(jī)1703是為了執(zhí)行任務(wù)3C615,由VM啟動(dòng)部651以第I虛擬計(jì)算機(jī)1701為母虛擬計(jì)算機(jī)通過分叉方式生成的虛擬計(jì)算機(jī),從實(shí)施方式I中的第3虛擬計(jì)算機(jī)603將0S1C623變更為包含器件驅(qū)動(dòng)器1733的0S1C1723。器件驅(qū)動(dòng)器1731由前端部1741、后端部1742、本地(native)部1743構(gòu)成。另外,器件驅(qū)動(dòng)器是指所謂的對(duì)器件進(jìn)行控制的程序,但是在此還包含器件控制處理、文件系統(tǒng)處理、進(jìn)程間通信處理、虛擬計(jì)算機(jī)間通信處理等實(shí)現(xiàn)虛擬計(jì)算機(jī)的輸入輸出功能的程序。本地部1743由用于直接控制成為對(duì)象的器件的命令代碼等構(gòu)成,具有對(duì)器件進(jìn)行控制的功能。容納有該程序的存儲(chǔ)器102的存儲(chǔ)區(qū)域通過由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000(參照?qǐng)D10),而設(shè)定為僅對(duì)第I虛擬計(jì)算機(jī)1701來說訪問信息為R/W,對(duì)其他虛擬計(jì)算機(jī)來說訪問信息為NA。由此,本地部1743不會(huì)被第I虛擬計(jì)算機(jī)1701以外的虛擬計(jì)算機(jī)執(zhí)行。后端部1742具有在包含自身的虛擬計(jì)算機(jī)所包含的前端部及包含自身的虛擬計(jì)算機(jī)以外的虛擬計(jì)算機(jī)所包含的前端部與服務(wù)器客戶端模型(server client model)之間進(jìn)行通信的功能;從通信的前端部受理本地部1743的操作指令,并將受理的本地部1743的操作指令輸出至本地部1743的功能;以及受理從本地部1743輸出的數(shù)據(jù),井向通信的前端部輸出受理的數(shù)據(jù)的功能。容納有該程序的存儲(chǔ)器102的存儲(chǔ)區(qū)域通過由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000,而設(shè)定為僅對(duì)第I虛擬計(jì)算機(jī)1701來說訪問信息為R/W,對(duì)其他虛擬計(jì)算機(jī)來說訪問信息為NA。由此,后端部1742不會(huì)被第I虛擬計(jì)算機(jī)1701以外的虛擬計(jì)算機(jī)執(zhí)行。前端部1741具有在后端部1742和服務(wù)器客戶端模型之間進(jìn)行通信的功能;向通信的后端部1742發(fā)送本地部1743的操作指令的功能;受理從通信的后端部輸出的數(shù)據(jù)的功能。 容納有該程序的存儲(chǔ)器102的存儲(chǔ)區(qū)域通過由保護(hù)設(shè)定信息保持部661存儲(chǔ)的訪問許可信息1000,設(shè)定為僅對(duì)第I虛擬計(jì)算機(jī)1701來說訪問信息為R/W,對(duì)其他虛擬計(jì)算機(jī)來說訪問信息為R0。由此,前端部能夠被所有虛擬計(jì)算機(jī)執(zhí)行(與圖17中的前端部1741、前端部1744、前端部1745對(duì)應(yīng))。此外,前端部被多個(gè)虛擬計(jì)算機(jī)執(zhí)行的情況下,容納有前端部的存儲(chǔ)器102的存儲(chǔ)區(qū)域由COW處理部663以寫時(shí)復(fù)制方式管理。器件驅(qū)動(dòng)器1732是伴隨著第2虛擬計(jì)算機(jī)1702的生成而基于器件驅(qū)動(dòng)器1731生成的,包含基于前端部1741生成的前端部1744。器件驅(qū)動(dòng)器1732不包含本地部和后端部,這是因?yàn)?,容納有本地部1743的存儲(chǔ)器102的存儲(chǔ)區(qū)域和容納有后端部1742的存儲(chǔ)器102的存儲(chǔ)區(qū)域既不能從第2虛擬計(jì)算機(jī)1702讀出也不能寫入,所以器件驅(qū)動(dòng)器1732無法執(zhí)行本地部和后端部。器件驅(qū)動(dòng)器1733是伴隨著第3虛擬計(jì)算機(jī)1703的生成而基于器件驅(qū)動(dòng)器1731生成的,包含基于前端部1741生成的前端部1745。器件驅(qū)動(dòng)器1733不包含本地部和后端部,這是因?yàn)椋菁{有本地部1743的存儲(chǔ)器102的存儲(chǔ)區(qū)域和容納有后端部1742的存儲(chǔ)器102的存儲(chǔ)區(qū)域既不能從第3虛擬計(jì)算機(jī)1703讀出也不能寫入,所以器件驅(qū)動(dòng)器1733無法執(zhí)行本地部和后端部。<器件控制例>在此,說明不包含本地部1743的虛擬計(jì)算機(jī)、例如第2虛擬計(jì)算機(jī)1702間接地對(duì)器件進(jìn)行控制的情況。第2虛擬計(jì)算機(jī)1702間接地對(duì)器件進(jìn)行控制的情況下,首先向前端部1744輸出本地部1743的操作指令。前端部1744接受到本地部1743的操作指令后,通過服務(wù)器客戶端模型與后端部1742進(jìn)行通信,并將本地部1743的操作指令發(fā)送給后端部1742。后端部1742接受到本地部1743的操作指令后,向本地部1743輸出本地部1743的操作指令。由此,第2虛擬計(jì)算機(jī)對(duì)器件進(jìn)行操作。這樣,根據(jù)本實(shí)施方式3的變形虛擬計(jì)算機(jī)系統(tǒng),即使在多個(gè)虛擬計(jì)算機(jī)成為執(zhí)行對(duì)象的情況下,僅第I虛擬計(jì)算機(jī)1701的本地部1743對(duì)器件進(jìn)行直接控制,能夠排他性地進(jìn)行器件控制。
< 補(bǔ)充 >以上,作為本發(fā)明的虛擬計(jì)算機(jī)系統(tǒng)的ー實(shí)施方式,在實(shí)施方式I、實(shí)施方式2、實(shí)施方式3中說明了 3個(gè)虛擬計(jì)算機(jī)系統(tǒng)的例子,但是也可以如以下那樣變形,本發(fā)明當(dāng)然不限于上述實(shí)施方式所示的虛擬計(jì)算機(jī)系統(tǒng)。(I)在實(shí)施方式I中,說明了虛擬計(jì)算機(jī)系統(tǒng)100具備I個(gè)處理器的情況的例子,但是只要管理器能夠進(jìn)行多個(gè)虛擬計(jì)算機(jī)的執(zhí)行控制,則處理器的數(shù)量并不限于I個(gè),例如也可以是2個(gè)、3個(gè)等多個(gè)。處理器的數(shù)量為多個(gè)的情況下,管理器并不是必須以分時(shí)來執(zhí)行虛擬計(jì)算機(jī),也可以是并行地執(zhí)行多個(gè)虛擬計(jì)算機(jī)的結(jié)構(gòu)。(2)在實(shí)施方式I中,說明了將處理器101、存儲(chǔ)器102、高速緩沖存儲(chǔ)器105、MMU106、存儲(chǔ)器保護(hù)單元107、計(jì)時(shí)器108、DMAC109、內(nèi)部總線120、第I接ロ 121、第2接ロ122、第3接ロ 123集成在I個(gè)集成電路110中的情況的例子,但是這些電路并不是必須集成在I個(gè)集成電路中。例如,也可以將處理器101和高速緩沖存儲(chǔ)器105集成在第I集成電路中,將其他電路集成在第2集成電路中,例如還可以是將各電路集成在相互不同的集 成電路中的結(jié)構(gòu)。(3)在實(shí)施方式I中,以處理器101具備2個(gè)動(dòng)作模式的構(gòu)成的情況為例進(jìn)行了說明,但是只要構(gòu)成為能夠以比執(zhí)行應(yīng)用程序的模式和執(zhí)行操作系統(tǒng)的模式更高的特權(quán)模式來執(zhí)行管理器,動(dòng)作模式的數(shù)并不限于2個(gè),例如也可以是3個(gè)以上。這種情況下,能夠?qū)?zhí)行管理器的動(dòng)作模式設(shè)為比執(zhí)行操作系統(tǒng)更高的特權(quán)模式,能夠大幅減輕管理器中的虛擬MMU處理、I/O仿真處理的系統(tǒng)開銷。(4)在實(shí)施方式I中,以第I虛擬計(jì)算機(jī)601成為其他所有虛擬計(jì)算機(jī)的母虛擬機(jī)的構(gòu)成的情況為例進(jìn)行了說明,對(duì)于生成的各個(gè)子虛擬計(jì)算機(jī),只要能夠?qū)崿F(xiàn)向存儲(chǔ)器102的存儲(chǔ)區(qū)域的訪問限制,成為母虛擬機(jī)的虛擬計(jì)算機(jī)并不限于第I虛擬計(jì)算機(jī)601,例如成為某虛擬計(jì)算機(jī)的子虛擬計(jì)算機(jī)的虛擬計(jì)算機(jī)也可以成為其他虛擬計(jì)算機(jī)的母虛擬機(jī)。(5)在實(shí)施方式I中,舉出了以分叉方式生成虛擬計(jì)算機(jī)的構(gòu)成的情況來進(jìn)行說明。這是因?yàn)椋ㄟ^以分叉方式來生成虛擬計(jì)算機(jī),能夠有效地利用存儲(chǔ)器102的存儲(chǔ)區(qū)域。但是,如果允許存儲(chǔ)器102的存儲(chǔ)區(qū)域的利用效率的非效率性,則基于成為母虛擬機(jī)的虛擬計(jì)算機(jī)來生成子虛擬計(jì)算機(jī)的情況下,并不限于以分叉形式進(jìn)行。作為一例,可以想到以對(duì)成為母虛擬機(jī)的虛擬計(jì)算機(jī)分配的所有存儲(chǔ)區(qū)域和對(duì)新
生成的虛擬計(jì)算機(jī)分配的所有存儲(chǔ)區(qū)域--對(duì)應(yīng)的方式,將對(duì)成為母虛擬機(jī)的虛擬計(jì)算機(jī)
分配的存儲(chǔ)區(qū)域拷貝到新生成的虛擬計(jì)算機(jī)的存儲(chǔ)區(qū)域,從而生產(chǎn)新的虛擬計(jì)算機(jī)的形式
坐寸ο此外,這樣,在子虛擬計(jì)算機(jī)的存儲(chǔ)區(qū)域是從母虛擬計(jì)算機(jī)的存儲(chǔ)區(qū)域拷貝而來的情況下等,這些存儲(chǔ)區(qū)域并不需要以寫時(shí)復(fù)制方式來管理。(6)在實(shí)施方式2中,以具有進(jìn)行二次邏輯地址與一次邏輯地址的變換的功能的虛擬MMU1670包含在管理器1630的內(nèi)部的情況為例進(jìn)行了說明,但是只要能夠?qū)崿F(xiàn)二次邏輯地址與一次邏輯地址的變換的功能,虛擬MMU1670并不一定要包含在管理器1630的內(nèi)部,例如也可以構(gòu)成為在集成電路1510內(nèi)具備具有進(jìn)行二次邏輯地址與一次邏輯地址的變換的功能的硬件。
(7)以下,進(jìn)ー步說明本發(fā)明的ー實(shí)施方式的虛擬計(jì)算機(jī)系統(tǒng)的構(gòu)成及其變形例和各效果。(a)本發(fā)明的ー實(shí)施方式的虛擬計(jì)算機(jī)系統(tǒng)的特征在于具備存儲(chǔ)裝置;處理器,與該存儲(chǔ)裝置連接;以及管理器(hypervisor ),在該處理器上執(zhí)行,使該處理器進(jìn)行多個(gè)虛擬計(jì)算機(jī)的執(zhí)行控制;該虛擬計(jì)算機(jī)系統(tǒng)具備訪問控制部,對(duì)從虛擬計(jì)算機(jī)向所述存儲(chǔ)裝置的存儲(chǔ)區(qū)域的訪問進(jìn)行控制;所述存儲(chǔ)裝置包括容納第I種程序的第I存儲(chǔ)區(qū)域和容納第2種程序的第2存儲(chǔ)區(qū)域;所述管理器包括啟動(dòng)請(qǐng)求受理部,用于從虛擬計(jì)算機(jī)受理第I種程序或第2種程序的啟動(dòng)請(qǐng)求;以及虛擬計(jì)算機(jī)生成部,在由所述處理器執(zhí)行的所述啟動(dòng)請(qǐng)求受理部受理了第I種程序的啟動(dòng)請(qǐng)求時(shí),生成用于執(zhí)行該第I種程序的虛擬計(jì)算機(jī),并將該生成的虛擬計(jì)算機(jī)作為第I種虛擬計(jì)算機(jī)來管理,在受理了第2種程序的啟動(dòng)請(qǐng)求吋,生成用于執(zhí)行該第2種程序的虛擬計(jì)算機(jī),并將該生成的虛擬計(jì)算機(jī)作為第2種虛擬計(jì)算機(jī)來管理;所述訪問控制部以如下方式進(jìn)行所述訪問的控制禁止從由所述處理器執(zhí)行的所述虛擬計(jì)算機(jī)生成部作為所述第I種虛擬計(jì)算機(jī)來管理的虛擬計(jì)算機(jī)向所述第2存儲(chǔ)區(qū)域的訪問。根據(jù)具備上述構(gòu)成的本實(shí)施方式的虛擬計(jì)算機(jī)系統(tǒng),將未認(rèn)證應(yīng)用程序作為第I 種程序容納在第I存儲(chǔ)區(qū)域中,將已認(rèn)證應(yīng)用程序作為第2種程序容納在第2存儲(chǔ)區(qū)域中,從而執(zhí)行未認(rèn)證應(yīng)用程序的虛擬計(jì)算機(jī)無法訪問已認(rèn)證應(yīng)用程序。因此,在成為虛擬計(jì)算機(jī)的執(zhí)行對(duì)象的應(yīng)用程序中,即使同時(shí)存在已認(rèn)證應(yīng)用程序和未認(rèn)證應(yīng)用程序,與以往相比,也能夠抑制由于未認(rèn)證應(yīng)用程序所包含的惡意軟件被執(zhí)行而已認(rèn)證應(yīng)用程序被攻擊的危險(xiǎn)性。圖18是上述變形例中的虛擬計(jì)算機(jī)系統(tǒng)1800的概略構(gòu)成圖。如該圖所示,虛擬計(jì)算機(jī)系統(tǒng)1800由處理器1801、訪問控制部1802、存儲(chǔ)裝置1803構(gòu)成。并且,存儲(chǔ)裝置1803包含第I存儲(chǔ)區(qū)域1811、第2存儲(chǔ)區(qū)域1812,加載有管理器1813。此外,管理器1813包含啟動(dòng)請(qǐng)求受理部1822和虛擬計(jì)算機(jī)生成部1822。處理器1801是經(jīng)由訪問控制部1802與存儲(chǔ)裝置1803連接的處理器。作為一例,作為實(shí)施方式I中的處理器101 (參照?qǐng)DI)實(shí)現(xiàn)。存儲(chǔ)裝置1803包含第I存儲(chǔ)區(qū)域1811和第2存儲(chǔ)區(qū)域1812。作為一例,作為實(shí)施方式I中的存儲(chǔ)器102 (參照?qǐng)DI)實(shí)現(xiàn)。第I存儲(chǔ)區(qū)域1811是容納第I種程序的存儲(chǔ)區(qū)域。該第I存儲(chǔ)區(qū)域1811作為ー例,作為實(shí)施方式I中的區(qū)域C503 (參照?qǐng)D5)實(shí)現(xiàn)。此外,第I種程序作為一例,作為實(shí)施方式I中的記事簿(參照?qǐng)D7)實(shí)現(xiàn)。第2存儲(chǔ)區(qū)域1812是容納第2種程序的存儲(chǔ)區(qū)域。該第2存儲(chǔ)區(qū)域1812作為ー例,作為實(shí)施方式I中的區(qū)域E505 (參照?qǐng)D5)實(shí)現(xiàn)。此外,第2種程序作為一例,作為實(shí)施方式I中的郵箱(參照?qǐng)D7)實(shí)現(xiàn)。管理器1813在處理器1801上執(zhí)行,是使處理器1801進(jìn)行多個(gè)虛擬計(jì)算機(jī)的執(zhí)行控制的管理器,包含啟動(dòng)請(qǐng)求受理部1822和虛擬計(jì)算機(jī)生成部1822。該管理器1813作為一例,作為實(shí)施方式I中的管理器630 (參照?qǐng)D6)實(shí)現(xiàn)。啟動(dòng)請(qǐng)求受理部1822是從虛擬計(jì)算機(jī)受理第I種程序或第2種程序的啟動(dòng)請(qǐng)求的代碼群。作為一例,作為實(shí)施方式I中的請(qǐng)求受理部654實(shí)現(xiàn)。
虛擬計(jì)算機(jī)生成部1823是用于進(jìn)行以下處理的代碼群在由1801處理器執(zhí)行的啟動(dòng)請(qǐng)求受理部1822受理了第I種程序的啟動(dòng)請(qǐng)求的情況下,生成用于執(zhí)行該第I種程序的虛擬計(jì)算機(jī),并將該生成的虛擬計(jì)算機(jī)作為第I種虛擬計(jì)算機(jī)來管理,在受理了第2種程序的啟動(dòng)請(qǐng)求的情況下,生成用于執(zhí)行該第2種程序的虛擬計(jì)算機(jī),將該生成的虛擬計(jì)算機(jī)作為第2種虛擬計(jì)算機(jī)來管理。作為一例,作為實(shí)施方式I中的VM啟動(dòng)部651和VM執(zhí)行部652來實(shí)現(xiàn)。訪問控制部1802具有如下功能將從虛擬計(jì)算機(jī)向存儲(chǔ)裝置1803的存儲(chǔ)區(qū)域的訪問控制為,禁止從由處理器1801執(zhí)行的虛擬計(jì)算機(jī)生成部1823作為所述第I種虛擬計(jì)算機(jī)管理的虛擬計(jì)算機(jī)向所述第2存儲(chǔ)區(qū)域的訪問。作為一例,作為實(shí)施方式I中的存儲(chǔ)器保護(hù)單元107 (參照?qǐng)DI)實(shí)現(xiàn)。(b)此外,也可以是,所述訪問控制部具有第2區(qū) 域確定信息存儲(chǔ)部,用于存儲(chǔ)確定所述第2存儲(chǔ)區(qū)域的地址的第2區(qū)域確定信息,所述訪問控制部參照存儲(chǔ)在所述第2區(qū)域確定信息存儲(chǔ)部中的所述第2區(qū)域確定信息,進(jìn)行所述訪問的控制。 通過采用這樣的構(gòu)成,訪問控制部不用參照訪問控制部的外部,就能夠確定第2存儲(chǔ)區(qū)域的地址。(C)此外,也可以是,所述存儲(chǔ)裝置包含程序?qū)?yīng)信息存儲(chǔ)區(qū)域,該程序?qū)?yīng)信息存儲(chǔ)區(qū)域用于存儲(chǔ)程序?qū)?yīng)信息,該程序?qū)?yīng)信息將確定程序的信息和確定程序的種類的信息建立對(duì)應(yīng),所述虛擬計(jì)算機(jī)生成部包含程序種類確定部,該程序種類確定部在由所述處理器執(zhí)行的所述啟動(dòng)請(qǐng)求受理部從虛擬計(jì)算機(jī)受理了程序的啟動(dòng)請(qǐng)求的情況下,基于存儲(chǔ)在所述程序?qū)?yīng)信息存儲(chǔ)區(qū)域中的程序?qū)?yīng)信息,確定該程序是哪個(gè)種類的程序,該虛擬計(jì)算機(jī)生成部基于由所述程序種類確定部確定的程序的種類,在由所述處理器執(zhí)行的所述啟動(dòng)請(qǐng)求受理部受理了第I種程序的啟動(dòng)請(qǐng)求的情況下,對(duì)所述生成的虛擬計(jì)算機(jī)進(jìn)行作為第I種虛擬計(jì)算機(jī)的管理,在由所述處理器執(zhí)行的所述啟動(dòng)請(qǐng)求受理部受理了第2種程序的啟動(dòng)請(qǐng)求的情況下,對(duì)所述生成的虛擬計(jì)算機(jī)進(jìn)行作為第2種虛擬計(jì)算機(jī)的管理。通過采用這樣的構(gòu)成,虛擬計(jì)算機(jī)生成部能夠基于存儲(chǔ)在程序?qū)?yīng)信息存儲(chǔ)區(qū)域中的程序?qū)?yīng)信息,進(jìn)行虛擬計(jì)算機(jī)的種類管理。(d)此外,也可以是,所述虛擬計(jì)算機(jī)生成部在由所述處理器執(zhí)行的所述啟動(dòng)請(qǐng)求受理部從虛擬計(jì)算機(jī)受理了第I種程序或第2種程序的啟動(dòng)請(qǐng)求的情況下,在生成虛擬計(jì)算機(jī)時(shí),以基于對(duì)所述啟動(dòng)請(qǐng)求的請(qǐng)求源虛擬計(jì)算機(jī)分配的所述存儲(chǔ)裝置中的存儲(chǔ)區(qū)域的分叉方式,對(duì)該生成的虛擬計(jì)算機(jī)進(jìn)行所述存儲(chǔ)裝置中的存儲(chǔ)區(qū)域的分配。通過采用這樣的構(gòu)成,以分叉方式進(jìn)行新的虛擬計(jì)算機(jī)的生成,所以能夠提高存儲(chǔ)裝置的存儲(chǔ)區(qū)域的利用效率。(e)此外,也可以是,在所述管理器包含寫時(shí)復(fù)制執(zhí)行控制部,該寫時(shí)復(fù)制執(zhí)行控制部在由所述處理器執(zhí)行的所述虛擬計(jì)算機(jī)生成部以基于對(duì)第2虛擬計(jì)算機(jī)分配的所述存儲(chǔ)裝置中的存儲(chǔ)區(qū)域的分叉方式對(duì)第I虛擬計(jì)算機(jī)進(jìn)行存儲(chǔ)區(qū)域的分配的情況下,以通過寫時(shí)復(fù)制方式進(jìn)行由所述第I虛擬計(jì)算機(jī)和所述第2虛擬計(jì)算機(jī)進(jìn)行的向所述存儲(chǔ)裝置中的存儲(chǔ)區(qū)域的訪問的方式,控制從虛擬計(jì)算機(jī)向所述存儲(chǔ)裝置中的存儲(chǔ)區(qū)域的訪問。通過采用這樣的構(gòu)成,以寫時(shí)復(fù)制方式進(jìn)行母虛擬計(jì)算機(jī)向存儲(chǔ)區(qū)域的訪問和基于母虛擬計(jì)算機(jī)以分叉方式生成的子虛擬計(jì)算機(jī)向存儲(chǔ)區(qū)域的管理,所以能夠提高存儲(chǔ)裝置的存儲(chǔ)區(qū)域的利用效率。(f)此外,也可以是,所述第I存儲(chǔ)區(qū)域還包含存儲(chǔ)由虛擬計(jì)算機(jī)執(zhí)行所述第I種程序而利用的數(shù)據(jù)的存儲(chǔ)區(qū)域,所述第2存儲(chǔ)區(qū)域還包含由虛擬計(jì)算機(jī)執(zhí)行所述第2種程序而利用的數(shù)據(jù)的存儲(chǔ)區(qū)域。通過采用這樣的構(gòu)成,能夠使執(zhí)行第I種程序的虛擬計(jì)算機(jī)無法利用執(zhí)行第2種程序的虛擬計(jì)算機(jī)所利用的數(shù)據(jù)。(g)此外,也可以是,所述存儲(chǔ)裝置還包含器件驅(qū)動(dòng)器存儲(chǔ)區(qū)域,存儲(chǔ)器件驅(qū)動(dòng)器;以及器件控制程序存儲(chǔ)區(qū)域,存儲(chǔ)器件控制程序,通過由執(zhí)行存儲(chǔ)在所述器件驅(qū)動(dòng)器存儲(chǔ)區(qū)域中的所述器件驅(qū)動(dòng)器的虛擬計(jì)算機(jī)以外的虛擬計(jì)算機(jī)執(zhí)行該器件控制程序,與執(zhí)行所述器件驅(qū)動(dòng)器的虛擬計(jì)算機(jī)進(jìn)行通信,使執(zhí)行所述器件驅(qū)動(dòng)器的虛擬計(jì)算機(jī)進(jìn)行器件的控制;所述訪問控制部以如下方式進(jìn)行所述訪問的控制僅限作為執(zhí)行控制對(duì)象的虛擬計(jì)算機(jī)中的I個(gè)虛擬計(jì)算機(jī),許可向所述器件驅(qū)動(dòng)器存儲(chǔ)區(qū)域的訪問。 通過采用這樣的構(gòu)成,能夠排他性地進(jìn)行由多個(gè)虛擬計(jì)算機(jī)進(jìn)行的器件控制。エ業(yè)實(shí)用性本發(fā)明能夠廣泛應(yīng)用于虛擬計(jì)算機(jī)系統(tǒng)。標(biāo)記說明100虛擬計(jì)算機(jī)系統(tǒng)110集成電路101處理器102存儲(chǔ)器103R0M104RAM105高速緩沖存儲(chǔ)器106MMU107存儲(chǔ)器保護(hù)單元108計(jì)時(shí)器109DMAC120內(nèi)部總線600模塊群601第I虛擬計(jì)算機(jī)602第2虛擬計(jì)算機(jī)603第3虛擬計(jì)算機(jī)630管理器640VM管理表保持部650VM執(zhí)行控制部65IVM 啟動(dòng)部652VM 執(zhí)行部653VM 結(jié)束部654請(qǐng)求受理部
660VM存儲(chǔ)器管理部661保護(hù)設(shè)定信息保持部662保護(hù)設(shè)定部 663C0W 處理部。
權(quán)利要求
1.一種虛擬計(jì)算機(jī)系統(tǒng),其特征在于,具備 存儲(chǔ)裝置; 處理器,與該存儲(chǔ)裝置連接;以及 管理器,在該處理器上執(zhí)行,使該處理器進(jìn)行多個(gè)虛擬計(jì)算機(jī)的執(zhí)行控制; 該虛擬計(jì)算機(jī)系統(tǒng)具備訪問控制部,該訪問控制部對(duì)從虛擬計(jì)算機(jī)向所述存儲(chǔ)裝置的存儲(chǔ)區(qū)域的訪問進(jìn)行控制; 所述存儲(chǔ)裝置包括容納第I種程序的第I存儲(chǔ)區(qū)域和容納第2種程序的第2存儲(chǔ)區(qū)域; 所述管理器包括 啟動(dòng)請(qǐng)求受理部,用于從虛擬計(jì)算機(jī)受理第I種程序或第2種程序的啟動(dòng)請(qǐng)求;以及 虛擬計(jì)算機(jī)生成部,在由所述處理器執(zhí)行的所述啟動(dòng)請(qǐng)求受理部受理了第I種程序的啟動(dòng)請(qǐng)求時(shí),生成用于執(zhí)行該第I種程序的虛擬計(jì)算機(jī),并將該生成的虛擬計(jì)算機(jī)作為第I種虛擬計(jì)算機(jī)來管理,在由所述處理器執(zhí)行的所述啟動(dòng)請(qǐng)求受理部受理了第2種程序的啟動(dòng)請(qǐng)求時(shí),生成用于執(zhí)行該第2種程序的虛擬計(jì)算機(jī),并將該生成的虛擬計(jì)算機(jī)作為第2種虛擬計(jì)算機(jī)來管理; 所述訪問控制部以如下方式進(jìn)行所述訪問的控制禁止從由所述處理器執(zhí)行的所述虛擬計(jì)算機(jī)生成部作為所述第I種虛擬計(jì)算機(jī)來管理的虛擬計(jì)算機(jī)向所述第2存儲(chǔ)區(qū)域的訪問。
2.如權(quán)利要求I所述的虛擬計(jì)算機(jī)系統(tǒng),其特征在于, 所述訪問控制部具有第2區(qū)域確定信息存儲(chǔ)部,該第2區(qū)域確定信息存儲(chǔ)部用于存儲(chǔ)第2區(qū)域確定信息,該第2區(qū)域確定信息用于確定所述第2存儲(chǔ)區(qū)域的地址,所述訪問控制部參照存儲(chǔ)在所述第2區(qū)域確定信息存儲(chǔ)部中的所述第2區(qū)域確定信息,進(jìn)行所述訪問的控制。
3.如權(quán)利要求2所述的虛擬計(jì)算機(jī)系統(tǒng),其特征在于, 所述存儲(chǔ)裝置包含程序?qū)?yīng)信息存儲(chǔ)區(qū)域,該程序?qū)?yīng)信息存儲(chǔ)區(qū)域用于存儲(chǔ)程序?qū)?yīng)信息,該程序?qū)?yīng)信息將用于確定程序的信息與用于確定程序的種類的信息建立對(duì)應(yīng), 所述虛擬計(jì)算機(jī)生成部包含程序種類確定部,該程序種類確定部在由所述處理器執(zhí)行的所述啟動(dòng)請(qǐng)求受理部從虛擬計(jì)算機(jī)受理了程序的啟動(dòng)請(qǐng)求的情況下,基于存儲(chǔ)在所述程序?qū)?yīng)信息存儲(chǔ)區(qū)域中的程序?qū)?yīng)信息,確定該程序是哪個(gè)種類的程序, 所述虛擬計(jì)算機(jī)生成部基于由所述程序種類確定部確定的程序的種類,在由所述處理器執(zhí)行的所述啟動(dòng)請(qǐng)求受理部受理了第I種程序的啟動(dòng)請(qǐng)求的情況下將所述生成的虛擬計(jì)算機(jī)作為第I種虛擬計(jì)算機(jī)來管理,在由所述處理器執(zhí)行的所述啟動(dòng)請(qǐng)求受理部受理了第2種程序的啟動(dòng)請(qǐng)求的情況下,將所述生成的虛擬計(jì)算機(jī)作為第2種虛擬計(jì)算機(jī)來管理。
4.如權(quán)利要求3所述的虛擬計(jì)算機(jī)系統(tǒng),其特征在于, 所述虛擬計(jì)算機(jī)生成部在由所述處理器執(zhí)行的所述啟動(dòng)請(qǐng)求受理部從虛擬計(jì)算機(jī)受理了第I種程序或第2種程序的啟動(dòng)請(qǐng)求的情況下,在生成虛擬計(jì)算機(jī)時(shí),以基于對(duì)所述啟動(dòng)請(qǐng)求的請(qǐng)求源虛擬計(jì)算機(jī)分配的所述存儲(chǔ)裝置中的存儲(chǔ)區(qū)域的分叉方式,對(duì)該生成的虛擬計(jì)算機(jī)進(jìn)行所述存儲(chǔ)裝置中的存儲(chǔ)區(qū)域的分配。
5.如權(quán)利要求4所述的虛擬計(jì)算機(jī)系統(tǒng),其特征在于,所述管理器包括寫時(shí)復(fù)制執(zhí)行控制部,該寫時(shí)復(fù)制執(zhí)行控制部在由所述處理器執(zhí)行的所述虛擬計(jì)算機(jī)生成部以基于對(duì)第2虛擬計(jì)算機(jī)分配的所述存儲(chǔ)裝置中的存儲(chǔ)區(qū)域的分叉方式對(duì)第I虛擬計(jì)算機(jī)進(jìn)行存儲(chǔ)區(qū)域的分配的情況下,以通過寫時(shí)復(fù)制方式進(jìn)行由所述第I虛擬計(jì)算機(jī)和所述第2虛擬計(jì)算機(jī)進(jìn)行的向所述存儲(chǔ)裝置中的存儲(chǔ)區(qū)域的訪問的方式,對(duì)從虛擬計(jì)算機(jī)向所述存儲(chǔ)裝置中的存儲(chǔ)區(qū)域的訪問進(jìn)行控制。
6.如權(quán)利要求5所述的虛擬計(jì)算機(jī)系統(tǒng),其特征在于, 所述第I存儲(chǔ)區(qū)域還包含存儲(chǔ)由虛擬計(jì)算機(jī)執(zhí)行所述第I種程序而利用的數(shù)據(jù)的存儲(chǔ)區(qū)域, 所述第2存儲(chǔ)區(qū)域還包含由虛擬計(jì)算機(jī)執(zhí)行所述第2種程序而利用的數(shù)據(jù)的存儲(chǔ)區(qū)域。
7.如權(quán)利要求5所述的虛擬計(jì)算機(jī)系統(tǒng),其特征在于, 所述存儲(chǔ)裝置還包含 器件驅(qū)動(dòng)器存儲(chǔ)區(qū)域,存儲(chǔ)器件驅(qū)動(dòng)器;以及 器件控制程序存儲(chǔ)區(qū)域,存儲(chǔ)器件控制程序,由除了執(zhí)行存儲(chǔ)在所述器件驅(qū)動(dòng)器存儲(chǔ)區(qū)域中的所述器件驅(qū)動(dòng)器的虛擬計(jì)算機(jī)以外的虛擬計(jì)算機(jī)執(zhí)行該器件控制程序,從而與執(zhí)行所述器件驅(qū)動(dòng)器的虛擬計(jì)算機(jī)進(jìn)行通信,使執(zhí)行所述器件驅(qū)動(dòng)器的虛擬計(jì)算機(jī)進(jìn)行器件的控制; 所述訪問控制部以如下方式進(jìn)行所述訪問的控制僅許可作為執(zhí)行控制對(duì)象的虛擬計(jì)算機(jī)中的I個(gè)虛擬計(jì)算機(jī)向所述器件驅(qū)動(dòng)器存儲(chǔ)區(qū)域訪問。
8.—種虛擬計(jì)算機(jī)控制方法,對(duì)虛擬計(jì)算機(jī)系統(tǒng)進(jìn)行控制,其特征在于,該虛擬計(jì)算機(jī)系統(tǒng)具備 存儲(chǔ)裝置; 處理器,與該存儲(chǔ)裝置連接;以及 管理器,在該處理器上執(zhí)行,使該處理器進(jìn)行多個(gè)虛擬計(jì)算機(jī)的執(zhí)行控制; 該虛擬計(jì)算機(jī)系統(tǒng)具備訪問控制部,該訪問控制部對(duì)從虛擬計(jì)算機(jī)向所述存儲(chǔ)裝置的存儲(chǔ)區(qū)域的訪問進(jìn)行控制; 所述存儲(chǔ)裝置包括容納第I種程序的第I存儲(chǔ)區(qū)域和容納第2種程序的第2存儲(chǔ)區(qū)域; 所述虛擬計(jì)算機(jī)控制方法包括 啟動(dòng)請(qǐng)求受理步驟,所述管理器受理第I種程序或第2種程序的啟動(dòng)請(qǐng)求; 虛擬計(jì)算機(jī)生成步驟,在所述管理器在所述啟動(dòng)請(qǐng)求受理步驟中受理了第I種程序的啟動(dòng)請(qǐng)求時(shí),生成用于執(zhí)行該第I種程序的虛擬計(jì)算機(jī),并將該生成的虛擬計(jì)算機(jī)作為第I種虛擬計(jì)算機(jī)來管理,在所述管理器在所述啟動(dòng)請(qǐng)求受理步驟中受理了第2種程序的啟動(dòng)請(qǐng)求時(shí),生成用于執(zhí)行該第2種程序的虛擬計(jì)算機(jī),并將該生成的虛擬計(jì)算機(jī)作為第2種虛擬計(jì)算機(jī)來管理;以及 訪問控制步驟,所述訪問控制部以如下方式進(jìn)行所述訪問的控制禁止從由所述處理器執(zhí)行的所述虛擬計(jì)算機(jī)生成部作為所述第I種虛擬計(jì)算機(jī)來管理的虛擬計(jì)算機(jī)向所述第2存儲(chǔ)區(qū)域的訪問。
9.一種虛擬計(jì)算機(jī)控制程序,用于對(duì)虛擬計(jì)算機(jī)系統(tǒng)進(jìn)行控制,其特征在于,該虛擬計(jì)算機(jī)系統(tǒng)具備 存儲(chǔ)裝置; 處理器,與該存儲(chǔ)裝置連接;以及 管理器,在該處理器上執(zhí)行,使該處理器進(jìn)行多個(gè)虛擬計(jì)算機(jī)的執(zhí)行控制; 該虛擬計(jì)算機(jī)系統(tǒng)具備訪問控制部,該訪問控制部對(duì)從虛擬計(jì)算機(jī)向所述存儲(chǔ)裝置的存儲(chǔ)區(qū)域的訪問進(jìn)行控制; 所述存儲(chǔ)裝置包括容納第I種程序的第I存儲(chǔ)區(qū)域和容納第2種程序的第2存儲(chǔ)區(qū)域; 所述虛擬計(jì)算機(jī)控制程序包括 啟動(dòng)請(qǐng)求受理步驟,所述管理器受理第I種程序或第2種程序的啟動(dòng)請(qǐng)求;以及虛擬計(jì)算機(jī)生成步驟,在所述管理器在所述啟動(dòng)請(qǐng)求受理步驟中受理了第I種程序的啟動(dòng)請(qǐng)求時(shí),生成用于執(zhí)行該第I種程序的虛擬計(jì)算機(jī),并將該生成的虛擬計(jì)算機(jī)作為第I種虛擬計(jì)算機(jī)來管理,在所述管理器在所述啟動(dòng)請(qǐng)求受理步驟中受理了第2種程序的啟動(dòng)請(qǐng)求時(shí),生成用于執(zhí)行該第2種程序的虛擬計(jì)算機(jī),并將該生成的虛擬計(jì)算機(jī)作為第2種虛擬計(jì)算機(jī)來管理;以及 訪問控制步驟,所述訪問控制部以如下方式進(jìn)行所述訪問的控制禁止從由所述處理器執(zhí)行的所述虛擬計(jì)算機(jī)生成部作為所述第I種虛擬計(jì)算機(jī)來管理的虛擬計(jì)算機(jī)向所述第2存儲(chǔ)區(qū)域的訪問。
10.一種半導(dǎo)體集成電路,其特征在于,具備 存儲(chǔ)裝置; 處理器,與該存儲(chǔ)裝置連接;以及 管理器,在該處理器上執(zhí)行,使該處理器進(jìn)行多個(gè)虛擬計(jì)算機(jī)的執(zhí)行控制; 該半導(dǎo)體集成電路具備訪問控制部,該訪問控制部對(duì)從虛擬計(jì)算機(jī)向所述存儲(chǔ)裝置的存儲(chǔ)區(qū)域的訪問進(jìn)行控制; 所述存儲(chǔ)裝置包括容納第I種程序的第I存儲(chǔ)區(qū)域和容納第2種程序的第2存儲(chǔ)區(qū)域; 所述管理器包括 啟動(dòng)請(qǐng)求受理部,用于從虛擬計(jì)算機(jī)受理第I種程序或第2種程序的啟動(dòng)請(qǐng)求;以及虛擬計(jì)算機(jī)生成部,在由所述處理器執(zhí)行的所述啟動(dòng)請(qǐng)求受理部受理了第I種程序的啟動(dòng)請(qǐng)求時(shí),生成用于執(zhí)行該第I種程序的虛擬計(jì)算機(jī),并將該生成的虛擬計(jì)算機(jī)作為第I種虛擬計(jì)算機(jī)來管理,在由所述處理器執(zhí)行的所述啟動(dòng)請(qǐng)求受理部受理了第2種程序的啟動(dòng)請(qǐng)求時(shí),生成用于執(zhí)行該第2種程序的虛擬計(jì)算機(jī),并將該生成的虛擬計(jì)算機(jī)作為第2種虛擬計(jì)算機(jī)來管理; 所述訪問控制部以如下方式進(jìn)行所述訪問的控制禁止從由所述處理器執(zhí)行的所述虛擬計(jì)算機(jī)生成部作為所述第I種虛擬計(jì)算機(jī)來管理的虛擬計(jì)算機(jī)向所述第2存儲(chǔ)區(qū)域的訪問。
全文摘要
具備存儲(chǔ)器保護(hù)單元,該存儲(chǔ)器保護(hù)單元進(jìn)行從虛擬計(jì)算機(jī)向存儲(chǔ)器區(qū)域的訪問控制,通過由處理器執(zhí)行的管理器和存儲(chǔ)器保護(hù)單元協(xié)同動(dòng)作,對(duì)于各個(gè)虛擬計(jì)算機(jī),將向存儲(chǔ)器的存儲(chǔ)區(qū)域的訪問控制為,分別禁止向規(guī)定的區(qū)域的訪問。由此,各個(gè)虛擬計(jì)算機(jī)無法訪問容納在被禁止訪問的區(qū)域中的程序、數(shù)據(jù)等。
文檔編號(hào)G06F12/14GK102859502SQ20118002049
公開日2013年1月2日 申請(qǐng)日期2011年9月12日 優(yōu)先權(quán)日2011年3月2日
發(fā)明者谷川忠雄 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社