虚拟计算机系统、区域管理方法及程序的制作方法

文档序号:6351087阅读:183来源:国知局
专利名称:虚拟计算机系统、区域管理方法及程序的制作方法
技术领域
本发明涉及具有多个虚拟计算机的虚拟计算机系统,尤其涉及各虚拟计算机的动作所需要的存储器区域的管理。
背景技术
以往,公知有为了提高系统的可靠性而对硬件资源进行复用的系统(例如专利文献1入但是,在这种方法中,需要花费对硬件资源进行复用所用的成本,因而使用多个虚拟计算机来提高系统的可靠性(例如专利文献2 4)。专利文献2公开了以下技术预先取得分配给虚拟计算机的存储器区域的备份, 在发生了硬件故障、软件问题这样的异常时,恢复所取得的备份而再次开始处理。另外,专利文献3公开了以下技木在分別并行执行的两个虚拟计算机中的ー个虚拟计算机发生了异常的情况下,使另ー个虚拟计算机继续进行处理。另外,专利文献4公开了以下技术将分配给当前使用虚拟计算机的存储器区域的内容预先复制到分配给待机虚拟计算机的存储器区域,在当前使用虚拟计算机发生了异常吋,切換为待机虚拟计算机继续进行处理。另外,为了使多个虚拟计算机切換地进行动作,通常利用被称为Hypervisor的软件来管理对各虚拟计算机的处理器及存储器等的分配。该Hypervisor的通常作用在以往已被公知(例如专利文献5),因而此处省略详细说明。现有技术文献
专利文献
专利文献1日本特开平10—240556号公报
专利文献2日本特开2009—245216号公报
专利文献3美国专利5345590号公报
专利文献4日本特开2007—219757号公报
专利文献5日本特开2000一 242512号公报
发明概要发明要解决的问题然而,由于通常对构成复用系统的多个虚拟计算机分配分別不同的存储器区域, 因而在使各虚拟计算机动作吋,存在作为复用系统整体的存储器使用量增多的问题。

发明内容
本发明正是鉴于这种问题而提出的,其目的在干,提供一种能够抑制各虚拟计算机的动作所需要的存储器使用量的总量的虚拟计算机系统。用于解决问题的手段
为了解决上述问题,本发明的虚拟计算机系统,具有通过由处理器执行存储器上的程序而构成的多个虚拟计算机,其特征在干,具有区域分配単元,在所述多个虚拟计算机都被分配了基本区域的情况下,当一个虚拟计算机要对该基本区域进行写入吋,将该ー 个虚拟计算机的分配从所述基本区域变更为复制该基本区域的内容并设为该写入后的状态而得到的复制区域,并维持针对该一个虚拟计算机以外的其它虚拟计算机而言的所述基本区域的分配,所述基本区域是所述存储器上的ー个区域;以及区域释放单元,在满足规定所述基本区域及所述复制区域之间的内容対照的契机的规定条件的情况下,进行该对照, 当所述基本区域及至少ー个所述复制区域的内容一致时,将被分配了内容一致的各区域中的ー个区域以外的其它区域的虚拟计算机的分配,从该其它区域变更为该ー个区域,并将该其它区域释放。发明效果根据具有上述结构的本发明的虚拟计算机系统,能够抑制各虚拟计算机的动作所需要的存储器使用量的总量。


图1是实施方式1的虚拟计算机系统1000的系统结构图。图2是表示页面表5的数据结构及内容例的图。图3是表示发生了禁止写入违反时的Hypervisor 100的例外处理的流程图。图4是表示各虚拟计算机开始特定处理的时刻的、页面表5的内容例以及向各虚拟计算机分配的存储器4上的区域的例子的图。图5是表示关于基本区域b的基于禁止写入违反的例外处理结束的时刻的、页面表5的内容例以及向各虚拟计算机分配的存储器4上的区域的例子的图。图6是表示关于非共用基本区域b’的基于禁止写入违反的例外处理结束的时刻的、页面表5的内容例以及向各虚拟计算机分配的存储器4上的区域的例子的图。图7是实施方式2的虚拟计算机系统1100的系统结构图。图8是表示进度管理表20和分配管理表30的数据结构及内容例的图。图9是实施方式3的虚拟计算机系统1200的系统结构图。图10是表示发生了禁止写入违反时的Hypervisor 300的例外处理的流程图。图11是表示发生了来自定时器的中断时的Hypervisor 300的例外处理的流程图。图12是实施方式4的虚拟计算机系统1300的系统结构图。图13是表示各虚拟计算机的特定处理的执行到达检查点(check point)时的 Hypervisor 400的处理的流程图。
具体实施例方式下面,參照附图来说明本发明的实施方式。《实施方式1》< 结构 >首先,对实施方式1的虚拟计算机系统1000的结构进行说明。
图1是虚拟计算机系统1000的系统结构图。虚拟计算机系统1000是这样的复用系统由在作为硬件的执行环境(该图所示的硬件资源)上动作的基础软件即Hypervisor 100提供针对第1虚拟计算机IOA和第2虚拟计算机IOB的执行环境,由此能够在物理上将1台计算机作为2台虚拟计算机进行使用。上述硬件资源如该图所示,包括处理器1、高速缓冲存储装置3、存储器4、HDD (Hard Disk Drive) 6、周边模块 7 等。另外,下面假设虚拟计算机系统1000采用基于分页(paging)的虚拟存储方式作为存储器管理方式进行说明。在此,存储器4通常按每个页面(page)而被划分,该页面是作为约几千字节至几兆字节的区域,按每个该区域来进行逻辑地址与物理地址之间的映射。另外,该映射使用在存储器4中存储的页面表5。关于页面表5的内容将在后面进行详细说明(參照图2),按每个页面而登记有表示是否对该页面进行了禁止写入的设定(下面称为“禁止写入设定”)的信息、及表示该页面是否被各虚拟计算机共用的信息等。另外,处理器1在执行程序的过程中,将从页面表5取得的映射中的几个映射暂时 #1 TLB (Translation Look-aside Buffer) 2 中。另外,作为周边模块7的示例,可以举出显示器、打印机、定时器等输入输出设备組。另外,第1虚拟计算机IOA和第2虚拟计算机IOB分别执行通过在(^(Operating System) 13上动作的两个任务All、任务B12而实现的处理(下面称为“特定处理”)。Hypervisor 100具有管理对第1虚拟计算机10A和第2虚拟计算机10B的上述硬件资源分配的功能,具备处理器分配部110、禁止写入设定部120、区域管理部130。在此,处理器分配部110具有将处理器1以时分方式分配给各虚拟计算机(10A、 10B)的功能。另外,禁止写入设定部120具有针对从区域管理部130指示的特定页面、在页面表 5中进行禁止写入设定的功能。在此,当各虚拟计算机要对被实施了禁止写入设定的页面进行写入吋,由于禁止写入违反而发生中断(例外),并从处理器1向Hypervisor 100进行通知。另外,这种处理是通过预先在所谓的中断向量表中登记HypervisorlOO的针对禁止写入违反的处理程序而实现的。另外,区域管理部130具有以下功能当各虚拟计算机(10A、10B)中的ー个虚拟计算机要进行写入而发生禁止写入违反时,变更针对该一个虚拟计算机的存储器区域(页面) 的分配。区域管理部130包括区域分配部131和区域释放部132。下面,将在发生了禁止写入违反的各个时刻、要进行使该禁止写入违反发生的写入的虚拟计算机也称为“对象虚拟计算机”,将不是对象虚拟计算机的另ー个虚拟计算机也称为“非对象虚拟计算机”。例如,在第1虚拟计算机10A要进行写入而发生了禁止写入违反的时刻,第1虚拟计算机10A是对象虚拟计算机,第2虚拟计算机10B是非对象虚拟计算机。并且,在第2虚拟计算机10B要进行写入而发生了禁止写入违反的时刻,第2虚拟计算机10B是对象虚拟计算机,第1虚拟计算机10A是非对象虚拟计算机。
另外,区域管理部130还具有在各虚拟计算机开始特定处理之前分配同一页面 (下面称为“基本区域”)的功能。即,在各虚拟计算机开始特定处理的时刻,基本区域被各虚拟计算机共用。在此,区域分配部131具有以下功能在对象虚拟计算机要进行写入的页面是基本区域的情况下,将对象虚拟计算机的分配从基本区域变更为将该基本区域复制并设为该写入后的状态的区域(下面称为“复制区域”),并更新页面表5以使得示出变更后的状态。 另外,此时,区域分配部131指示禁止写入设定部120以使得对复制区域进行禁止写入设疋。并且,在上述变更吋,区域分配部131更新页面表5以使得示出基本区域未被各虚拟计算机共用这ー情况。这是因为,在本实施方式中,作为一例而假设虚拟计算机系统1000 具有两个虚拟计算机(10A、10B),因此在对象虚拟计算机的分配被变更为复制区域的情况下,基本区域仅被分配给非对象虚拟计算机。另外,以下将仅分配给非对象虚拟计算机的基本区域称为“非共用基本区域”,在单纯地称为基本区域的情况下,是指由各虚拟计算机共用的区域。另外,以下将相对于复制区域及其复制源的非共用基本区域中的某ー个而言的另 ー个区域表述为“对应区域”。即,复制区域的对应区域是指其复制源的非共用基本区域,非共用基本区域的对应区域是指复制目的地的复制区域。另外,区域释放部132具有以下功能在对象虚拟计算机要进行写入的页面是复制区域或非共用基本区域中的某个区域(下面称为“非共用区域”)的情况下,将写入后的非共用区域的内容和对应区域的内容进行对照,在一致时,将非对象虚拟计算机的分配从对应区域变更为非共用区域,将对应区域释放,并更新页面表5以使得示出变更后的状态。< 数据 >下面,使用图2对虚拟计算机系统1000使用的数据进行说明。图2是表示页面表5的数据结构及内容例的图。如该图所示,页面表5是将VMID 51、逻辑地址52、物理地址53、共用标志M以及禁止写入标志55按分配给各虚拟计算机的每个页面进行对应而构成的信息。另外,下面,将由相对应的VMID、逻辑地址、物理地址、共用标志、禁止写入标志构成的信息表述为“表项”。此外,在页面表5中的表项的登记,是在各虚拟计算机开始执行特定处理之前,由区域管理部130和禁止写入设定部120进行的,已登记在页面表5中的表项的更新,是在发生了禁止写入违反时由区域管理部130和禁止写入设定部120进行的。这里,VMID 51是表示被分配了对应的页面的虚拟计算机的识别信息,在此,作为一例,第1虚拟计算机IOA的识别信息使用“ 1”,第2虚拟计算机IOB的识别信息使用“2”。逻辑地址52用于表示对应的页面在虚拟存储器上的地址,物理地址53用于表示对应的页面在存储器4上的地址(实际地址)。另外,在使用4KB页面的情况下,不需要在页面表中存储下位12比持,因而在该图所示的逻辑地址52、物理地址53的示例中仅示出了上位20比特。共用标志M是表示对应的页面是否被各虚拟计算机共用的标志,在此,作为ー 例,将被共用的情况设为“ 1 ”,将不被共用的情况设为“ 0 ”。
另外,由于只有基本区域被各虚拟计算机共用,因此,共用标志为“ 1,,表示该页面是基本区域,共用标志为“0”表示该页面是复制区域或非共用基本区域。禁止写入标志55是表示是否对对应的页面进行了禁止写入设定的标志,在此, 作为一例,将进行了禁止写入设定的情况设为“1”,将没有进行禁止写入设定的情况设为 “0”。例如,根据该图所示的表项56,对VMID为“1”的虚拟计算机(即虚拟计算机10A) 分配的页面的逻辑地址是“0x00011”、物理地址是“0x80001”,该页面的共用标志为“1”(即被共用),该页面的禁止写入标志为“1”(即进行了禁止写入设定)。另外,区域管理部130向页面表5登记的表项,是指如表项56和表项57所示的、 仅VMID不同、尤其是共用标志为“1”的两个表项,按照每个基本区域来进行这样的两个表项的登记。下面,将有关对象虚拟计算机要进行写入的页面在页面表5中的表项称为“对象表项”,将包括与对象表项相同的逻辑地址、但VMID不同的表项称为“对应表项”。另外,关于如何更新已登记在页面表5中的表项,将在下面的虚拟计算机系统 1000的动作的说明中进行详细说明。〈动作〉下面,使用图3来说明虚拟计算机系统1000的动作。图3是表示发生了禁止写入违反时的Hypervisor 100的例外处理的流程图。若发生禁止写入违反,则Hypervisor 100的区域管理部130根据页面表5判定对象虚拟计算机要进行写入的页面是否是基本区域(步骤Si)。更具体地讲,区域管理部130根据页面表5,取得将对象虚拟计算机的VMID、和包含要进行写入的逻辑地址的页面的逻辑地址对应起来的表项(对象表项)的共用标志。在所取得的共用标志为“1”(即共用)的情况下,区域管理部130判定为,对象虚拟计算机要进行写入的页面是基本区域(步骤Sl 是)。另ー方面,若所取得的共用标志为“0”(即非共用), 则区域管理部130判定为,对象虚拟计算机要进行写入的页面不是基本区域(步骤Sl 否)。在判定为对象虚拟计算机要进行写入的页面是基本区域的情况下(步骤Sl 是), 区域管理部130的区域分配部131复制该基本区域(步骤S2),更新页面表5的对象表项以使得示出复制出的区域(步骤S3)。更具体地讲,在页面表5的对象表项中,将物理地址更新为表示复制出的区域的开头的物理地址,将共用标志更新为“0”,将禁止写入标志暂且更新为“0”。将禁止写入标志暂且更新为“0”是为了后述的步骤S5的处理。并且,区域分配部131将上述基本区域变更为非共用基本区域(步骤S4)。更具体地讲,将页面表5的对应表项的共用标志更新为“0”。区域分配部131在通过步骤S2复制出的区域中,进行对象虚拟计算机要在基本区域中进行的写入(步骤S5)。区域分配部131设定程序计数器,以使得在对象虚拟计算机正在执行的程序中指示在引起了禁止写入违反的写入命令之后应执行的命令(步骤S6)。区域分配部131经由禁止写入设定部120,对在步骤S5进行了写入的区域(即复制区域)进行禁止写入设定(步骤S7)。更具体地讲,将在步骤S3中被暂且更新为“0”的对象表项的禁止写入标志再次更新为“ 1 ”。若完成步骤S7的处理,则区域管理部130结束例外处理。以后,对象虚拟计算机从引起了禁止写入违反的写入命令的下ー个命令开始再次使处理开始。另外,由于在步骤S7中将禁止写入标志再次更新为“1”,因此以后在要向该复制区域进行写入时将会发生禁止写入违反。通过步骤S 1 S7的处理,从对对象虚拟计算机和非对象虚拟计算机分配了基本区域的状态,变化为对对象虚拟计算机分配了复制区域、对非对象虚拟计算机分配了非共用基本区域的状态。另ー方面,在步骤Sl中,在判定为对象虚拟计算机要进行写入的页面不是基本区域的情况下,即页面是非共用区域(即复制区域或非共用基本区域)的情况下(步骤Sl 否), 区域释放部132暂且解除对象虚拟计算机要进行写入的非共用区域的禁止写入设定(步骤 S8)。更具体地讲,将页面表5中的对象表项的禁止写入标志更新为“0”。区域释放部132对对象虚拟计算机要进行写入的非共用区域进行该写入(步骤 S9 ),与上述步骤S6的情况同样地设定程序计数器(步骤S10 )。由于各虚拟计算机分别执行基于同一程序的特定处理,因而各虚拟计算机的特定处理的执行进度没有较大差异,若没有发生硬件故障及软件问题等,则在步骤S9中进行了写入的非共用区域的内容与对应区域的内容一致的可能性较高。因此,区域释放部132将在步骤S9进行了写入的非共用区域的内容和对应区域的内容进行对照(步骤S11),判定是否一致(步骤S12),在一致的情况下(步骤S12 是),将对应区域释放,即设为未使用的区域(步骤S13)。并且,区域释放部132将在步骤S9中进行了写入的非共用区域变更为基本区域 (步骤S14)。更具体地讲,在页面表5的对象表项中,将共用标志更新为“1”,并且,在对应表项中,将物理地址更新为与对象表项的物理地址相同的地址,将共用标志更新为“ 1”。通过步骤S12 S14的处理,从对对象虚拟计算机和非对象虚拟计算机分配了物理地址不同的各ー个区域的状态(复制区域和非共用基本区域),变化为对对象虚拟计算机和非对象虚拟计算机分配了基本区域的状态。若步骤S14的处理完成,则区域释放部132针对在步骤S9中进行了写入的区域、 即在步骤S14中从非共用区域变更后的基本区域,进行禁止写入设定(步骤S15)。S卩,将对象表项的禁止写入标志设定为“1”,区域释放部132结束例外处理。另外,在步骤S12中,在步骤S9中进行了写入的非共用区域的内容和对应区域的内容不一致的情况下(步骤S12 否),区域释放部132与上述同样地对在步骤S9中进行了写入的区域即非共用区域进行禁止写入设定(步骤S15),并结束例外处理。<具体例>下面,使用图4 图6所示的具体例,并按照图3所示的流程图来说明发生了禁止写入违反时的Hypervisor 100的例外处理。图4 (a)表示在各虚拟计算机开始特定处理的时刻的页面表5的内容例,图4 (b) 表示该时刻向各虚拟计算机分配的存储器4上的区域的例子。图4 (a)示出的表项56、表项57所示的存储器4上的区域是图4 (b)示出的基本区域a,图4 (a)示出的表项58a、表项59a所示的存储器4上的区域是图4 (b)示出的基本区域b。另外,下面,将在基本区域a中存储的数据整体设为“Data a”、将在基本区域b中存储的数据整体设为“Data b”来进行说明。〈向基本区域b的写入〉首先,以第2虚拟计算机IOB要对基本区域b进行写入而发生了禁止写入违反的情况为例,说明Hypervisor 100的例外处理。若发生了禁止写入违反,则Hypervisor 100的区域管理部130根据页面表5,判定对象虚拟计算机(在该例中指第2虚拟计算机10B)要进行写入的页面是否是基本区域(步骤 Si)。在该例中,由于对象表项59a的共用标志为“1”,因而区域管理部130判定为,对象虚拟计算机要进行写入的页面是基本区域(步骤Sl 是),并复制该基本区域(步骤S2)。在此,假设复制目的地的区域的物理地址是“0x80005000”。然后,区域管理部130将对象表项59a的物理地址更新为复制出的区域的物理地址“0x80005”,将共用标志更新为“0”,将禁止写入标志暂且更新为“0”(步骤S3),将对应表项58a的共用标志更新为“0”(步骤S4)。区域分配部131在通过步骤S2复制出的区域中,进行对象虚拟计算机要在基本区域b中进行的写入(步骤S5)。在此,将在该复制出的区域中存储的写入后的数据整体设为 "Data c”来进行说明。区域分配部131设定程序计数器以使得指示接下来应执行的命令(步骤S6),经由禁止写入设定部120,将对象表项59a的禁止写入标志再次更新为“1”,结束例外处理。图5 (a)表示关于基本区域b的基于禁止写入违反的例外处理结束的时刻的页面表5的内容例,图5 (b)表示在该时刻向各虚拟计算机分配的存储器4上的区域的例子。在执行关于基本区域b的基于禁止写入违反的例外处理的前后,图4 (a)的表项 58a被更新为图5 (a)的表项58b的状态,图4 (a)的表项59a被更新为图5 (a)的表项 59b的状态。如图5 (b)所示,图4 (b)的基本区域b被变更为非共用基本区域b’,并生成复制区域C。<向非共用基本区域b’的写入〉下面,以第1虚拟计算机IOA要对非共用基本区域b’进行写入而发生了禁止写入违反的情况为例,说明Hypervisor 100的例外处理。若发生了禁止写入违反,由于对象虚拟计算机(在该例中指第1虚拟计算机10A) 要进行写入的页面(在该例中指非共用基本区域b’)不是基本区域(步骤Sl 否),因而 Hypervisor 100的区域管理部130的区域释放部132将图5 (a)所示的对象表项58b的禁止写入标志更新为“0”(步骤S8),进行该写入(步骤S9)。在此,将在该非共用基本区域b’ 中存储的数据整体设为“Data c”来进行说明。此外,区域释放部132设定程序计数器以使得指示接下来应执行的命令(步骤 S10),将非共用基本区域b’的内容和对应区域(在该例中指复制区域c)的内容进行对照 (步骤S11),在该例中,由于是一致的(步骤S12 是),因而将对应区域(复制区域c)释放(步骤 S13)。
此外,区域释放部132将非共用基本区域b,变更为基本区域b (步骤S14)。艮ロ, 在页面表5的对象表项58b中,将共用标志更新为“ 1,,,并且,在对应表项59b中,将物理地址更新为与对象表项58b的物理地址(0x80002)相同的地址,将共用标志更新为“1”。区域释放部132将对象表项58b的禁止写入标志设定为“ 1 ”(步骤S15),并结束例外处理。图6 (a)表示关于非共用基本区域b’的基于禁止写入违反的例外处理结束的时刻的页面表5的内容例,图6 (b)表示在该时刻向各虚拟计算机分配的存储器4上的区域的示例。在执行关于非共用基本区域b’的基于禁止写入违反的例外处理的前后,图5 (a) 的表项58b被更新为图6 (a)的表项58a的状态,图5 (a)的表项59b被更新为图6 (a) 的表项59a的状态。如图6 (b)所示,图5 (b)的非共用基本区域b’被变更为基本区域b,复制区域c 被释放。这样,在第2虚拟计算机IOB要向基本区域b进行写入吋,暂时确保复制区域c,因而存储器使用量暂时增加。但是,第1虚拟计算机IOA向非共用基本区域b’进行写入,在非共用基本区域b’和复制区域c的内容一致吋,将所确保的复制区域c释放,因而即使在各虚拟计算机分別正在执行特定处理吋,也能够抑制存储器使用量的总量。《实施方式2》在近年来的通常的系统LSI (Large Scale htegration)中,具有两个以上处理器核的情况不少。因此,下面,以与实施方式1的不同之处为中心来说明使用了多核处理器的虚拟计算机系统的示例。〈结构〉首先,对实施方式2的虚拟计算机系统1100的结构进行说明。图7是虚拟计算机系统1100的系统结构图。虚拟计算机系统1100如该图所示,除了实施方式1的虚拟计算机系统1000的硬件资源外,还具有处理器8和处理器8用的高速缓冲存储装置9。处理器8具有与处理器1相同的命令组,但时钟频率等与处理器1不同。另外,虽然没有特别图示,处理器8与处理器1同样地具有TLB,在程序的执行过程中,将从页面表5 取得的映射中的几个映射暂时存储在该TLB中。此外,虽然没有特别图示并说明,高速缓冲存储装置3和高速缓冲存储装置9具有相互保证数据的ー贯性的机构(所谓的监测(snoop)高速缓冲功能)。此外,虚拟计算机系统1100具备Hypervisor 200来取代虚拟计算机系统1000具备的 Hypervisor 100。Hypervisor 200与Hypervisor 100同样地具有管理向第1虚拟计算机IOA和第 2虚拟计算机IOB分配上述硬件资源的功能,与Hypervisor 100的不同点在干,以尽量使各虚拟计算机的特定处理的执行进度不产生差异的方式来进行各处理器的分配。在该实施方式中,说明如下例子,即为了尽量使各虚拟计算机的特定处理的执行进度不产生差异,对执行进度较慢的虚拟计算机分配性能好的处理器。关于处理器的性能的评价方法将在后面进行说明。
Hypervisor 200具备处理器分配部220来取代Hypervisor 100具备的处理器分配部110,还具有进度管理部210。进度管理部210具有管理各虚拟计算机(10AU0B)的特定处理的执行进度的功能,反复确定各虚拟计算机中特定处理的执行进度慢的虚拟计算机,每当确定出的虚拟计算机发生变化,则通知处理器分配部220。处理器分配部220与实施方式1的处理器分配部110同样地具有对各虚拟计算机分配处理器(1、8)的功能,但与处理器分配部110的不同点在干,根据来自进度管理部210 的通知,对特定处理的执行进度慢的虚拟计算机分配各处理器(1、8)中的性能更好的处理器。
〈数据〉下面,利用图8来说明虚拟计算机系统1100使用的数据。图8 (a)是表示进度管理表20的数据结构及内容例的图,图8 (b)是表示分配管理表30的数据结构及内容例的图。首先,对进度管理表20进行说明。进度管理表20是被存储在存储器4中、并由进度管理部210进行更新的表,如图 8 (a)所示,是按每个虚拟计算机、将VMID 21和执行进度22对应起来而构成的信息。这里,VMID 21是表示对应的虚拟计算机的识别信息,在此与在实施方式1中说明的页面表5的VMID 51同样地,作为一例,第1虚拟计算机IOA的识别信息使用“ 1 ”,第2虚拟计算机IOB的识别信息使用“2”。另外,执行进度22是表示对应的虚拟计算机的特定处理的执行进度的信息。例如,在该图中,VMID为“1”的虚拟计算机(即第1虚拟计算机10A)的特定处理的执行进度为“20%”。这里,在本实施方式中,预先对用于进行特定处理的程序设定多个检查点,每当各虚拟计算机的特定处理的执行到达检查点,则进度管理部210将进度管理表20更新,以使得示出预先对该检查点设定的执行进度。另外,这是通过在各检查点调用用于更新进度管理表20的程序来实现的,该程序以表示预先对该检查点设定的执行进度的数据为參数。因此,用于进行该特定处理的程序的设计者需要预先对各检查点进行执行进度的设定。例如,该设计者针对特定处理整体,在处理完成的程度为10%、20%、…、90%的各个执行位置设定检查点,对处理完成的程度达到10%的执行位置的检查点设定执行进度 “ 10 % ”,对处理完成的程度达到20 %的执行位置的检查点设定执行进度“20 % ”,如此对各个检查点设定执行进度。另外,在如上述例子那样地、设定的检查点的数量比较少的情况下,存在进度管理表20中的各虚拟计算机的执行进度相同的情況。在这种情况下,进度管理部210将任ー个虚拟计算机(例如第1虚拟计算机10A)确定为特定处理的执行进度慢的虚拟计算机即可。下面,对分配管理表30进行说明。分配管理表30是被存储在存储器4中、并由处理器分配部220进行參照及更新的表,如图8 (b)所示,是按每个处理器、将处理器ID 31、频率32、分配率33、VMID ;34对应起来而构成的信息。
这里,处理器ID 31是表示对应的处理器的识别信息,在此作为一例,处理器1的识别信息使用“ 1 ”,处理器8的识别信息使用“ 2 ”。频率32是表示对应的处理器的时钟频率的信息,分配率33是表示能够实现将对应的处理器分配给特定处理的执行的比例的信息。另外,VMID 34是表示被分配了对应的处理器的虚拟计算机的识别信息,与进度管理表20中的任ー个VMID —致。例如,在该图中,处理器ID为“1”的处理器(即处理器1)的频率是“1GHz”、分配率是“70 % ”,该处理器被分配给VMID为“ 1 ”的虚拟计算机(即第1虚拟计算机10A)。另外,在本实施方式中,将时钟频率与分配率之积的值越大的处理器,设为性能越好的处理器。在该分配管理表30的示例中,表示处理器ID为“2”的处理器8的性能的值 (2GHzX1.0)大于表示处理器ID为“1”的处理器1的性能的值(IGHz X0. 7),因而处理器8 是性能更好的处理器。处理器分配部220对由进度管理部210通知的、特定处理的执行进度慢的虚拟计算机(IOA或10B)分配性能好的处理器(在该例中指处理器8),每当分配的状况产生变化, 则将分配管理表30中的VMID更新以使得示出该状況。这样,处理器分配部220对特定处理的执行进度较慢的虚拟计算机分配性能好的处理器,从而进行控制以使各虚拟计算机的特定处理的执行进度不会产生大的差异,因此, 能够提高各虚拟计算机能够共用存储器4上的区域的可能性,即使在各虚拟计算机分别执行特定处理的过程中,也能够抑制存储器使用量的总量。〈动作〉发生了禁止写入违反时的Hypervisor 200的例外处理,与实施方式1的 Hypervisor 100的处理(參照图3)相同,因而省略说明。《实施方式3》在实施方式1中,说明了这样的例子,即Hypervisor 100对复制区域和非共用基本区域进行禁止写入设定,在发生了对非共用区域(复制区域或非共用基本区域)的禁止写入违反吋,进行该非共用区域和对应区域之间的对照。但是,在该方法中,有可能频繁发生禁止写入违反而使各虚拟计算机的特定处理的执行速度下降。因此,下面,以与实施方式1的不同之处为中心,来说明不在发生了禁止写入违反时进行对照而是定期地进行对照的例子。〈结构〉首先,对实施方式3的虚拟计算机系统1200的结构进行说明。图9是虚拟计算机系统1200的系统结构图。虚拟计算机系统1200如该图所示,具备Hypervisor 300来取代实施方式1的虚拟计算机系统1000具备的Hypervisor 100。Hypervisor 300具备具有区域分配部311和区域释放部312的区域管理部310, 来取代Hypervisor 100具备的区域管理部130。这里,区域分配部311与实施方式1的区域分配部131同样地具有这样的功能 即,在对象虚拟计算机要进行写入的页面是基本区域的情况下,将对象虚拟计算机的分配
14从基本区域变更为复制区域,并更新页面表5以使得示出变更后的状态。区域分配部311 与区域分配部131的不同点在于,不对该复制区域进行禁止写入设定(即不对禁止写入设定部120进行指示),并解除非共用基本区域的禁止写入设定。另外,区域释放部312具有这样的功能S卩,对被分配给ー个虚拟计算机的各个非共用区域(复制区域或非共用基本区域),定期地将该非共用区域的内容和另ー个虚拟计算机的对应区域的内容进行对照。在対照的结果是内容一致的情况下,将另ー个虚拟计算机的分配从对应区域变更为分配给ー个虚拟计算机的非共用区域,将对应区域释放,并更新页面表5以使得示出变更后的状态。另外,区域释放部312为了定期地进行上述对照,在该实施方式中利用来自定时器(包含于周边模块7中)的中断,该定时器用于反复计时一定时间。〈动作〉下面,使用图10和图11来说明虚拟计算机系统1200的动作。首先,说明发生了禁止写入违反时的Hypervisor 300的例外处理。图10是表示发生了禁止写入违反时的Hypervisor 300的例外处理的流程图。这里,该图所示的除步骤S16的处理之外的处理(步骤S2、S3、S5、S6的处理),是与图3所示的实施方式1的Hypervisor 100的例外处理同样的处理,因而以步骤S16的处理为中心进行说明。若发生了禁止写入违反,则在该实施方式中,由于对象虚拟计算机要进行写入的页面一定是基本区域,因而Hypervisor 300的区域管理部310的区域分配部311复制该基本区域(步骤S2),并更新页面表5的对象表项以使得示出复制出的区域(步骤S3)。另外, 此时,如在实施方式1中说明的那样,将对象表项的禁止写入标志更新为“ 0”。此外,区域分配部311将上述基本区域变更为非共用基本区域,并且解除禁止写入设定(步骤S16)。更具体地讲,将页面表5中的对应表项的共用标志更新为“0”,并且将禁止写入标志更新为“ 0”。此外,区域分配部311在通过步骤S2复制出的区域中,进行对象虚拟计算机要在基本区域中进行的写入(步骤S5),并设定程序计数器,以使得在对象虚拟计算机正在执行的程序中指示在引起了禁止写入违反的写入命令之后应执行的命令(步骤S6),结束例外处理。下面,说明发生了来自定时器的中断时的Hypervisor 300的中断处理。图11是表示发生了来自定时器的中断时的Hypervisor 300的中断处理的流程图。这里,该图所示的除步骤S21、S22和S23的处理之外的处理(步骤Sll S14的处理),是与图3所示的实施方式1的Hypervisor 100的例外处理相同的处理,因而以步骤 S2US22和S23的处理为中心进行说明。若发生来自定时器的中断,则Hypervisor 300的区域管理部130的区域释放部 312判定对ー个虚拟计算机(例如虚拟计算机10A)分配的非共用区域(复制区域或非共用基本区域)中、是否存在未进行以下说明的步骤S22以后的处理的区域(步骤S21)。在存在未处理的非共用区域的情况下(步骤S21 是),区域释放部312选择ー个未处理的非共用区域(步骤S22),将所选择的非共用区域的内容与对应区域的内容进行对照(步骤S11),判定是否一致(步骤S12)。在所选择的非共用区域的内容与对应区域的内容不一致的情况下(步骤S12 否), 区域释放部312再次从步骤S21开始进行处理,在一致的情况下(步骤S12 是),区域释放部312将对应区域释放,即设为未使用的区域(步骤S13)。此外,区域释放部312将在步骤S22中选择的非共用区域变更为基本区域(步骤 S14),对该基本区域进行禁止写入设定(步骤S23),并再次从步骤S21开始进行处理。在步骤S21中,在没有未处理的区域的情况下(步骤S21 否),区域释放部312结束中断处理。《实施方式4》在实施方式3中,说明了这样的示例,即=Hypervisor 300的区域管理部310的区域释放部312,针对分配给ー个虚拟计算机(在上述例子中指虚拟计算机10A)的各个非共用区域,定期地将其复制区域的内容与对应区域的内容进行对照。在通常的复用系统中,为了早期地检测硬件故障及软件问题,使用检查点来对照中间結果。因此,下面,以与实施方式3的不同之处为中心来说明以下例子,即预先对用于使各虚拟计算机进行特定处理的程序设定ー个以上的检查点,针对各个检查点,等待各虚拟计算机的特定处理的执行到达该检查点,并进行对照。〈结构〉首先,对实施方式4的虚拟计算机系统1300的结构进行说明。图12是虚拟计算机系统1300的系统结构图。虚拟计算机系统1300如该图所示,具备Hypervisor 400来取代实施方式3的虚拟计算机系统1200具备的Hypervisor 300。Hypervisor 400具备区域管理部410的区域释放部411来取代Hypervisor 300 的区域管理部310的区域释放部312。这里,区域释放部411与实施方式3的区域释放部312同样地具有以下功能,即 针对被分配给ー个虚拟计算机的各个非共用区域(复制区域或非共用基本区域),将该非共用区域的内容和另ー个虚拟计算机的对应区域的内容进行对照。区域释放部411与区域释放部312的不同点在干,在全部的虚拟计算机的特定处理的执行到达同一检查点时进行该对照。另外,在各个检查点,与在实施方式2中说明的同样,调用下面说明的图13所示的处理程序,该程序以表示预先对该检查点设定的执行进度的数据为參数。区域管理部410 能够根据该參数而得知某个虚拟计算机的特定处理的执行是否已到达某个检查点。〈动作〉下面,使用图13来说明虚拟计算机系统1300的动作。图13是表示各虚拟计算机的特定处理的执行到达检查点时的Hypervisor 400的处理的流程图。这里,该图所示的除步骤S31的处理之外的处理(步骤S21、S22、S11 S14、S23的处理),是与图11所示的实施方式3的Hypervisor 300的中断处理同样的处理,因而以步骤S31的处理为中心进行说明。
若一个虚拟计算机的特定处理的执行到达检查点,则Hypervisor 400的区域管理部410判定另ー个虚拟计算机的特定处理的执行是否到达了该检查点(步骤S31)。在另ー个虚拟计算机的特定处理的执行没有到达该检查点的情况下(步骤S31 否),区域管理部410使特定处理的执行到达检查点时的处理结束。另外,直到另ー个虚拟计算机到达该检查点(步骤S31 是)、并且以下说明的步骤S21、S22、S11 S14、S23的处理结束为止,一个虚拟计算机的特定处理的执行在该检查点的位置停止(中止)。在另ー个虚拟计算机的特定处理的执行到达了该检查点的情况下(步骤S31 是), 区域管理部410的区域释放部411反复进行步骤S21 S23的处理,在步骤S21中,若未处理的非共用区域消失(步骤S21 否),则使特定处理的执行到达检查点时的处理结束。以后,各虚拟计算机从特定处理中的紧挨在检查点后面的命令开始执行。《补充》以上根据各个实施方式对本发明的虚拟计算机系统进行了说明,然而也能够进行以下所示的变形,本发明当然不局限于上述各实施方式所示出的虚拟计算机系统。(1)在实施方式1中,如在图3的步骤S7中说明的那样,说明了对复制区域进行禁止写入设定的情况,但也可以不进行该步骤S7的处理。在实施方式1中,说明了虚拟计算机系统1000具有两个虚拟计算机(10A、10B)、各虚拟计算机进行相同的特定处理的情況,因此,对特定处理的执行进度进展顺利的虚拟计算机分配复制区域,对特定处理的执行进度慢的虚拟计算机分配非共用的基本区域(非共用基本区域)。在此,由于对非共用基本区域进行了禁止写入设定,因此,即使不进行上述步骤S7 的处理,在特定处理的执行进度慢的虚拟计算机要向非共用基本区域进行写入的情况下也发生禁止写入违反,并在图3的步骤Sll中进行对照。这样,在变形成为对复制区域不进行禁止写入设定的情况下,禁止写入违反的发生频度降低,因此能够在某种程度上維持各虚拟计算机的特定处理的执行速度,并且抑制各虚拟计算机的动作所需要的存储器使用量的总量。(2)在各个实施方式中虽未特别说明,但在实现虚拟计算机系统1000、1100、1200、 1300的计算机上执行的、除了各虚拟计算机的特定处理之外的处理,也有可能发生禁止写入违反。在这种情况下,各个实施方式的Hypervisor例如根据VMID,判定进行了引起该禁止写入违反的写入的虚拟计算机是否是第1虚拟计算机IOA或第2虚拟计算机10B,仅在是第1虚拟计算机IOA或第2虚拟计算机IOB的情况下,进行发生了禁止写入违反时的例外处理(參照图3、图10)即可。另外,在进行了引起该禁止写入违反的写入的虚拟计算机不是第1虚拟计算机IOA和第2虚拟计算机IOB中的任ー个的情况下,进行对应于使该例外发生的其它虚拟计算机等而预先定义的处理。(3)在实施方式1的例子中,说明了以下情况,即虚拟计算机系统1000具有两个虚拟计算机(10A、10B),因此在ー个虚拟计算机(对象虚拟计算机)要向基本区域进行写入吋,如图3的步骤S4所示,将基本区域变更为非共用基本区域。然而,在具有3个以上虚拟计算机的情况下,需要依次将对象虚拟计算机的分配从基本区域变更为复制区域,从而仅在被分配了基本区域的虚拟计算机的数量为1的情况下进行图3的步骤S4的处理。因此,可以按照每个基本区域来管理被分配的虚拟计算机的数量,在图3的步骤 S3的处理刚刚结束之后,进行使对步骤Sl的对象的基本区域分配的虚拟计算机的数量减少的处理,仅在该处理后的虚拟计算机的数量为1个的情况下进行图3的步骤S4的处理。另外,作为其它方法,也可以是,在图3的步骤S3的处理刚刚结束之后,判定在页面表5中的具有与步骤S3的对象表项相同的逻辑地址的各个对应表项中、是否存在具有相同的物理地址的表项,仅在具有相同的物理地址的表项的情况下进行图3的步骤S4的处理。(4)在实施方式1中,如图3的步骤S13所示,说明了将成为对照对象的非共用区域和对应区域中的对应区域释放的情況,但释放的区域也可以相反。即,也可以是,将对象虚拟计算机的分配从非共用区域变更为对应区域,将非共用区域释放。(5)在各个实施方式中,说明了由禁止写入设定部120进行禁止写入设定的情況, 但也可以由区域分配部和区域释放部直接进行禁止写入设定。此外,在各个实施方式中,说明了由区域分配部和区域释放部直接进行禁止写入设定的解除的情况,但也可以由禁止写入设定部120进行。即,也可以是,禁止写入设定部 120、区域分配部及区域释放部中的任ー个具有进行禁止写入设定及其解除的功能。(6)在实施方式2中,如图8 (b)所示,以频率及分配率双方在处理器1和处理器 8中不同的情况为例进行了说明,但也可以是,频率及分配率中的一方或双方在处理器1和处理器8中相同。此外,在实施方式2中,说明了使用两个处理器(处理器核)的例子,但也可以使用 3个以上的处理器,此时,各个处理器的时钟频率以及能够实现对特定处理的执行的分配的比例可以相同也可以不同。此外,在实施方式2中,说明了使用两个处理器来执行2个虚拟计算机的例子,但也可以执行数量超过处理器个数的虚拟计算机,还可以如下所述地对此时的各虚拟计算机进行处理器的分配。即,例如,在使用2个处理器执行3个虚拟计算机的情况下,可以变形为,对特定处理的执行进度最慢的虚拟计算机,以独占的方式分配1个处理器(处理器核),对其它2个虚拟计算机,以时分方式分配剰余的1个处理器(处理器核)。另外,在对其它2个虚拟计算机分配该剩余的1个处理器吋,也可以变形为,根据这2个虚拟计算机的特定处理的执行进度,改变该处理器的分配时间。另外,在此作为一例,对处理器的数量为2、虚拟计算机的数量为3的情况进行了说明,但若虚拟计算机的数量多于处理器的数量(2以上),则处理器的数量和虚拟计算机的数量也能够不限于该例而适用该变形。此外,例如,在使用1个处理器执行2个以上的虚拟计算机的情况下,也可以根据各虚拟计算机的特定处理的执行进度,改变该处理器的分配时间。即,也可以优先对特定处理的执行进度慢的虚拟计算机分配处理器。(7)在实施方式2中,说明了根据图8 (b)所示的频率与分配率之积来评价处理器的性能的示例,但也可以使用其它指标来评价处理器的性能,还可以由虚拟计算机系统的设计者预先定义处理器的性能的优劣。
(8)在图2所示的页面表5及图8 (a)所示的进度管理表20的例子中,使用“1” 和“2,,对各虚拟计算机的VMID进行了说明,但这只是一例,只要是能够识别各虚拟计算机的信息,则VMID可以是任何形式,例如也可以是与该图所示的值不同的值,还可以是字符
和字符串等。另外,在图2所示的页面表5中,分別使用“0”和“ 1,,对共用标志和禁止写入标志进行了说明,关于这一点也与上述VMID同样,只要是能够识别两种状态的信息,则可以是任何形式。另外,在该页面表5的例子中,以1个页面的大小为4KB的情况为例进行了说明, 但1个页面的大小不限于此,可以小于该大小,也可以大于该大小。另外,在图8 (b)所示的分配管理表30的例子中,使用“ 1”和“2”对各个处理器的处理器ID进行了说明,但这只是一例,与上述VMID同样,只要是能够识别各个处理器的信息,则可以是任何形式。另外,关于该分配管理表30,说明了将处理器ID 31、频率32、分配率33、VMID 34 按每个处理器对应起来而构成的情况,但分配管理表30所必须的数据项目是处理器ID 31 和VMID 34,关于频率32和分配率33,也可以与处理器ID对应起来由其它表进行管理。(9)关于各虚拟计算机(10AU0B)执行的特定处理,说明了通过两个任务(任务 All、B12)来实现的处理,但该任务的数量可以少于两个也可以多于两个。(10)在实施方式3中,说明了进行图10的步骤S5、S6的处理的情况,但也可以不进行这些处理而在发生了禁止写入违反时结束HypervisorfOO的例外处理。在这种情况下,执行了引起上述例外的写入命令的虚拟计算机再次执行相同的写入命令,而由于没有对在步骤S2中复制出的区域进行禁止写入设定,因而能够完成写入而不会引起禁止写入违反。(11)关于各个实施方式中的Hypervisor的处理,也可以使除第1虚拟计算机10A、 第2虚拟计算机IOB之外的虚拟计算机进行动作来实现该处理,还可以将OS 13改进来实现为OS的处理。(12)也可以利用一个芯片或多个芯片的集成电路来实现在各个实施方式中说明的各个构成要素中的全部或者一部分,还可以利用计算机的程序来实现,还可以利用其它任何方式实现。另外,在各个实施方式中说明的各个构成要素,通过与虚拟计算机系统具有的处理器协同动作来实现其功能。(13)也可以将用于使处理器执行在各个实施方式中说明的Hypervisor的处理 (參照图3、图10、图11、图13)的程序记录在记录介质中或者经由各种通信路径等进行流通及分发。这种记录介质有IC卡、光盘、软盘、ROM、闪存等。将被流通及分发的程序存储在设备中的能由处理器读取的存储器等中来加以利用,通过由该处理器执行该程序,实现各个实施方式所示的Hypervisor的各个功能。(14)也可以将上述(1) (13)中的一部分或者全部的变形组合起来应用于各个实施方式的虚拟计算机系统。(15)下面,对本发明的一个实施方式的虚拟计算机系统的结构及其变形例和各种效果进行说明。
(a)本发明的实施方式的虚拟计算机系统,具有通过由处理器执行存储器上的程序而构成的多个虚拟计算机,具有区域分配単元,在所述多个虚拟计算机都被分配了基本区域的情况下,当一个虚拟计算机要对该基本区域进行写入吋,将该ー个虚拟计算机的分配从所述基本区域变更为复制该基本区域的内容并设为该写入后的状态而得到的复制区域,并维持针对该一个虚拟计算机以外的其它虚拟计算机而言的所述基本区域的分配,所述基本区域是所述存储器上的ー个区域;以及区域释放单元,在满足规定所述基本区域及所述复制区域之间的内容対照的契机的规定条件的情况下,进行该对照,当所述基本区域及至少ー个所述复制区域的内容一致时,将被分配了内容一致的各区域中的ー个区域以外的其它区域的虚拟计算机的分配,从该其它区域变更为该ー个区域,并将该其它区域释放。根据该虚拟计算机系统,将被分配了内容一致的各区域中的ー个区域以外的其它区域的虚拟计算机的分配从其它区域变更为ー个区域,并将其它区域释放,因而能够抑制各虚拟计算机的动作所需要的存储器使用量的总量。(b)另外,也可以是,所述基本区域和各复制区域分别是指,在被存储在所述存储器上的页面表中进行管理的、由不同的物理地址所表示的页面,各虚拟计算机执行基于同一程序的特定处理。根据该虚拟计算机系统,各虚拟计算机都执行基于同一程序的特定处理,因而在各虚拟计算机的特定处理的执行进度为相同程度的情况下,基本区域的内容与至少ー个复制区域的内容一致的可能性提高,通过将内容一致的各区域中的ー个区域以外的其它区域释放,能够抑制各虚拟计算机的动作所需要的存储器使用量的总量。(C)另外,也可以是,所述规定条件是指被分配了ー个区域的虚拟计算机执行了针对该ー个区域的写入命令,该ー个区域是指被分配的虚拟计算机的数量为1个的所述基本区域及各复制区域中的某ー个区域。根据该虚拟计算机系统,执行针对ー个区域的写入命令,結果,ー个区域的内容发生变化,因而能够在基本区域的内容与至少ー个复制区域的内容有可能一致的定时、实现高效的对照。(d)另外,也可以是,所述区域分配単元,当将所述一个虚拟计算机的分配变更为所述复制区域吋,在所述页面表中进行禁止向该复制区域的写入的设定,所述区域释放单元,将被分配了所述复制区域的虚拟计算机要对该复制区域进行写入并发生了禁止写入违反作为所述规定条件,在对该复制区域进行该写入后进行所述对照。根据该虚拟计算机系统,利用基于禁止写入违反的中断(例外)这种过去就有的机理,检测虚拟计算机要向复制区域进行写入这ー情況,能够在进行写入而使其内容发生了变化的复制区域的内容与基本区域的内容有可能一致的定时进行对照。(e)另外,也可以是,所述虚拟计算机系统还具有禁止写入设定单元,该禁止写入设定单元在所述页面表中进行禁止向所述基本区域的写入的设定,所述区域释放单元,将针对被分配的虚拟计算机的数量为1个的所述基本区域而言、该虚拟计算机要进行写入并发生了禁止写入违反作为所述规定条件,在对该基本区域进行该写入后进行所述对照。根据该虚拟计算机系统,能够利用基于禁止写入违反的中断(例外)这种过去就有的机理,进行因写入而使其内容发生了变化的、所分配的虚拟计算机的数量为1个的、基本区域的内容与复制区域的内容之间的对照。
(f)另外,也可以是,在所述页面表中,对多个虚拟计算机都分配的所述基本区域被设定为共用状态,该共用状态表示被分配给2个以上虚拟计算机,所述区域分配単元,在将所述1个虚拟计算机的分配变更为所述复制区域吋,在所述页面表中,将该复制区域设定为非共用状态,在所述1个虚拟计算机以外的其它虚拟计算机的数量成为1个的情况下, 在所述页面表中将所述基本区域设定为非共用状态,所述区域释放单元,将某个虚拟计算机要对在所述页面表中被设定为非共用状态的区域进行写入作为所述规定条件,在对该区域进行该写入后进行所述对照,当将被分配了所述内容一致的各区域中的ー个区域以外的其它区域的虚拟计算机的分配变更为该ー个区域吋,在所述页面表中将该ー个区域设定为共用状态。根据该虚拟计算机系统,当向被设定为非共用状态的区域即复制区域、或者被设定为非共用状态的基本区域进行写入而使其内容发生了变化时进行对照,因而能够在基本区域的内容与至少ー个复制区域的内容有可能一致的定时,实现高效的对照。(g)另外,也可以是,所述虚拟计算机系统还具有禁止写入设定单元,该禁止写入设定单元在所述页面表中进行禁止向所述基本区域的写入的设定,在所述页面表中,对多个虚拟计算机都分配的所述基本区域被设定为共用状态,该共用状态表示被分配给2个以上虚拟计算机,所述区域分配単元,在将所述1个虚拟计算机的分配变更为所述复制区域吋,在所述页面表中将该复制区域设定为非共用状态,在所述1个虚拟计算机以外的其它虚拟计算机的数量成为1个的情况下,在所述页面表中将所述基本区域设定为非共用状态,所述区域释放单元,将被分配了在所述页面表中被设定为非共用状态的所述基本区域的虚拟计算机要对该基本区域进行写入并发生了禁止写入违反作为所述规定条件,在对被设定为非共用状态的所述基本区域进行该写入后进行所述对照,在将被分配了所述内容一致的各区域中的ー个区域以外的其它区域的虚拟计算机的分配变更为该ー个区域吋,在所述页面表中将该ー个区域设定为共用状态。根据该虚拟计算机系统,利用基于禁止写入违反的中断(例外)这种过去就有的原理,检测虚拟计算机要向该被设定为非共用状态的基本区域进行写入,能够在因进行写入而使其内容发生了变化的被设定为非共用状态的基本区域的内容、与至少ー个复制区域的内容有可能一致的定时,进行对照。(h)另外,也可以是,所述规定条件是指在上次进行所述对照后经过了规定时间。根据该虚拟计算机系统,按照每个规定时间进行对照,能够将内容一致的各区域中的ー个区域以外的其它区域释放,因而通过适当设定该规定时间,能够抑制由于对照而使得特定处理的执行速度下降,并能够抑制各虚拟计算机的动作所需要的存储器使用量的
;Ci 里 ο(i)另外,也可以是,在所述特定处理内的规定的执行位置设定有检查点,该检查点用于确认中间結果,所述规定条件是指,各虚拟计算机的所述特定处理的执行位置分別到达了所述检查点。这里,各虚拟计算机都执行基于同一程序的特定处理,因而只要不发生硬件故障及软件问题的异常,在各虚拟计算机的特定处理的执行位置到达检查点吋,各复制区域的内容与基本区域的内容一致。因此,根据该虚拟计算机系统,由于在各复制区域及基本区域的内容应该一致的定时进行对照,因而能够抑制由于对照而使得特定处理的执行速度下降,并能够抑制各虚拟计算机的动作所需要的存储器使用量的总量。(j)另外,也可以是,在所述复制区域有多个的情况下,所述区域释放单元仅在所述基本区域及全部复制区域的内容一致的情况下变更为所述ー个区域,并将所述其它区域释放。这里,由于各虚拟计算机都执行基于同一程序的特定处理,因而在基本区域及全部复制区域的内容不一致的情况下,认为此后再次对这些区域进行写入的可能性较高。艮ロ, 认为当在基本区域及一部分复制区域的内容一致的定时进行了区域的释放的情况下,再次产生对复制区域的分配变更的可能性较高。根据该虚拟计算机系统,由于在基本区域及全部复制区域的内容一致的定时进行区域的释放,因而能够抑制由于分配变更和区域释放的发生而使得特定处理的执行速度下降,并能够抑制各虚拟计算机的动作所需要的存储器使用量的总量。(k)另外,也可以是,所述虚拟计算机系统具有进度管理単元,从各虚拟计算机中,确定所述特定处理的执行进度最慢的虚拟计算机;以及处理器分配単元,对各虚拟计算机中的由所述进度管理単元确定出的虚拟计算机优先分配所述处理器。根据该虚拟计算机系统,优先对特定处理的执行进度最慢的虚拟计算机分配处理器,因而能够使各虚拟计算机的特定处理的执行进度一致,提高基本区域及复制区域的内容一致的可能性,并能够抑制各虚拟计算机的动作所需要的存储器使用量的总量。(1)另外,也可以是,所述处理器具有多个处理器核,所述多个虚拟计算机的数量是3个以上,所述处理器分配単元对各虚拟计算机中的由所述进度管理単元确定出的虚拟计算机以独占的方式分配一个处理器核。根据该虚拟计算机系统,特定处理的执行进度最慢的虚拟计算机独占一个处理器核而进行动作,因而能够使各虚拟计算机的特定处理的执行进度一致,提高基本区域及复制区域的内容一致的可能性,并能够抑制各虚拟计算机的动作所需要的存储器使用量的总里。(16)本发明的虚拟计算机系统的存储器及处理器相当于各实施方式的虚拟计算机系统的存储器4和处理器1、8,本发明的虚拟计算机系统的多个虚拟计算机相当于各实施方式的虚拟计算机系统的第1虚拟计算机IOA和第2虚拟计算机10B,本发明的虚拟计算机系统的区域分配単元、区域释放单元、禁止写入设定单元、进度管理単元及处理器分配单元相当于各实施方式的虚拟计算机系统的Hypervisor。エ业实用性本发明的虚拟计算机系统能够在实现利用多个虚拟计算机的复用系统时加以应
器符号说明1、8处理器3、9高速缓冲存储装置4存储器5 页面表7周边模块
10AU0B 虚拟计算机100、200、300、400 Hypervisor110、220 处理器分配部120禁止写入设定部130,310,410 区域管理部131,311 区域分配部132、312、411 区域释放部210进度管理部1000、1100、1200、1300 虚拟计算机系统
2权利要求
1.一种虚拟计算机系统,具有通过由处理器执行存储器上的程序而构成的多个虚拟计算机,其特征在干,具有区域分配単元,在所述多个虚拟计算机都被分配了基本区域的情况下,当ー个虚拟计算机要对该基本区域进行写入吋,将该ー个虚拟计算机的分配从所述基本区域变更为复制该基本区域的内容并设为该写入后的状态而得到的复制区域,并维持针对该ー个虚拟计算机以外的其它虚拟计算机而言的所述基本区域的分配,所述基本区域是所述存储器上的一个区域;以及区域释放单元,在满足规定所述基本区域及所述复制区域之间的内容対照的契机的规定条件的情况下,进行该对照,当所述基本区域及至少ー个所述复制区域的内容一致时,将被分配了内容一致的各区域中的ー个区域以外的其它区域的虚拟计算机的分配,从该其它区域变更为该ー个区域,并将该其它区域释放。
2.根据权利要求1所述的虚拟计算机系统,其特征在干,所述基本区域和各复制区域分别是指,在被存储在所述存储器上的页面表中进行管理的、由不同的物理地址所表示的页面,各虚拟计算机执行基于同一程序的特定处理。
3.根据权利要求2所述的虚拟计算机系统,其特征在干,所述规定条件是指被分配了ー个区域的虚拟计算机执行了针对该ー个区域的写入命令,该ー个区域是指被分配的虚拟计算机的数量为1个的所述基本区域及各复制区域中的某ー个区域。
4.根据权利要求3所述的虚拟计算机系统,其特征在干,所述区域分配単元,当将所述一个虚拟计算机的分配变更为所述复制区域吋,在所述页面表中进行禁止向该复制区域的写入的设定,所述区域释放单元,将被分配了所述复制区域的虚拟计算机要对该复制区域进行写入并发生了禁止写入违反作为所述规定条件,在对该复制区域进行该写入后进行所述对照。
5.根据权利要求3所述的虚拟计算机系统,其特征在干,所述虚拟计算机系统还具有禁止写入设定单元,该禁止写入设定单元在所述页面表中进行禁止向所述基本区域的写入的设定,所述区域释放单元,将针对被分配的虚拟计算机的数量为1个的所述基本区域而言、 该虚拟计算机要进行写入并发生了禁止写入违反作为所述规定条件,在对该基本区域进行该写入后进行所述对照。
6.根据权利要求2所述的虚拟计算机系统,其特征在干,在所述页面表中,对多个虚拟计算机都分配的所述基本区域被设定为共用状态,该共用状态表示被分配给2个以上虚拟计算机,所述区域分配単元,在将所述1个虚拟计算机的分配变更为所述复制区域吋,在所述页面表中,将该复制区域设定为非共用状态,在所述1个虚拟计算机以外的其它虚拟计算机的数量成为1个的情况下,在所述页面表中将所述基本区域设定为非共用状态,所述区域释放单元,将某个虚拟计算机要对在所述页面表中被设定为非共用状态的区域进行写入作为所述规定条件,在对该区域进行该写入后进行所述对照,当将被分配了所述内容一致的各区域中的ー个区域以外的其它区域的虚拟计算机的分配变更为该ー个区域吋,在所述页面表中将该ー个区域设定为共用状态。
7.根据权利要求2所述的虚拟计算机系统,其特征在干,所述虚拟计算机系统还具有禁止写入设定单元,该禁止写入设定单元在所述页面表中进行禁止向所述基本区域的写入的设定,在所述页面表中,对多个虚拟计算机都分配的所述基本区域被设定为共用状态,该共用状态表示被分配给2个以上虚拟计算机,所述区域分配単元,在将所述1个虚拟计算机的分配变更为所述复制区域吋,在所述页面表中将该复制区域设定为非共用状态,在所述1个虚拟计算机以外的其它虚拟计算机的数量成为1个的情况下,在所述页面表中将所述基本区域设定为非共用状态,所述区域释放单元,将被分配了在所述页面表中被设定为非共用状态的所述基本区域的虚拟计算机要对该基本区域进行写入并发生了禁止写入违反作为所述规定条件,在对被设定为非共用状态的所述基本区域进行该写入后进行所述对照,在将被分配了所述内容一致的各区域中的ー个区域以外的其它区域的虚拟计算机的分配变更为该ー个区域吋,在所述页面表中将该ー个区域设定为共用状态。
8.根据权利要求2所述的虚拟计算机系统,其特征在干, 所述规定条件是指在上次进行所述对照后经过了规定时间。
9.根据权利要求2所述的虚拟计算机系统,其特征在干,在所述特定处理内的规定的执行位置设定有检查点,该检查点用于确认中间結果, 所述规定条件是指,各虚拟计算机的所述特定处理的执行位置分别到达了所述检查好、ο
10.根据权利要求2所述的虚拟计算机系统,其特征在干,在所述复制区域有多个的情况下,所述区域释放单元仅在所述基本区域及全部复制区域的内容一致的情况下变更为所述ー个区域,并将所述其它区域释放。
11.根据权利要求2所述的虚拟计算机系统,其特征在干, 所述虚拟计算机系统具有进度管理単元,从各虚拟计算机中,确定所述特定处理的执行进度最慢的虚拟计算机;以及处理器分配単元,对各虚拟计算机中的由所述进度管理単元确定出的虚拟计算机优先分配所述处理器。
12.根据权利要求11所述的虚拟计算机系统,其特征在干, 所述处理器具有多个处理器核,所述多个虚拟计算机的数量是3个以上,所述处理器分配単元对各虚拟计算机中的由所述进度管理単元确定出的虚拟计算机以独占的方式分配一个处理器核。
13.—种虚拟计算机系统中的存储器上的区域管理方法,该虚拟计算机系统具有通过由处理器执行所述存储器上的程序而构成的多个虚拟计算机,其特征在干,该区域管理方法包括以下步骤区域分配步骤,在所述多个虚拟计算机都被分配了基本区域的情况下,当ー个虚拟计算机要对该基本区域进行写入吋,将该ー个虚拟计算机的分配从所述基本区域变更为复制该基本区域的内容并设为该写入后的状态而得到的复制区域,并维持针对该ー个虚拟计算机以外的其它虚拟计算机而言的所述基本区域的分配,所述基本区域是所述存储器上的一个区域;以及区域释放步骤,在满足规定所述基本区域及所述复制区域之间的内容対照的契机的规定条件的情况下,进行该对照,当所述基本区域及至少ー个所述复制区域的内容一致时,将被分配了内容一致的各区域中的ー个区域以外的其它区域的虚拟计算机的分配,从该其它区域变更为该ー个区域,并将该其它区域释放。
14. ー种程序,在虚拟计算机系统中使处理器执行存储器上的区域管理处理,该虚拟计算机系统具有通过由所述处理器执行所述存储器上的程序而构成的多个虚拟计算机,其特征在干,所述区域管理处理包括以下步骤区域分配步骤,在所述多个虚拟计算机都被分配了基本区域的情况下,当ー个虚拟计算机要对该基本区域进行写入吋,将该ー个虚拟计算机的分配从所述基本区域变更为复制该基本区域的内容并设为该写入后的状态而得到的复制区域,并维持针对该ー个虚拟计算机以外的其它虚拟计算机而言的所述基本区域的分配,所述基本区域是所述存储器上的一个区域;以及区域释放步骤,在满足规定所述基本区域及所述复制区域之间的内容対照的契机的规定条件的情况下,进行该对照,当所述基本区域及至少ー个所述复制区域的内容一致时,将被分配了内容一致的各区域中的ー个区域以外的其它区域的虚拟计算机的分配,从该其它区域变更为该ー个区域,并将该其它区域释放。
全文摘要
一种虚拟计算机系统,具有通过由处理器执行存储器上的程序而构成的多个虚拟计算机,在所述多个虚拟计算机都被分配了所述存储器上的基本区域的情况下,在一个虚拟计算机要对该基本区域进行写入时,将该一个虚拟计算机的分配从所述基本区域变更为复制该基本区域的内容并设为该写入后的状态而得到的复制区域,进行所述基本区域及所述复制区域的内容对照,在所述基本区域与至少一个所述复制区域的内容一致时,将被分配了内容一致的各区域中的一个区域以外的其它区域的虚拟计算机的分配,从该其它区域变更为该一个区域,并将该其它区域释放。
文档编号G06F11/20GK102597972SQ201080050869
公开日2012年7月18日 申请日期2010年12月13日 优先权日2010年5月24日
发明者齐藤雅彦 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1