虚拟计算机系统的制作方法

文档序号:6540202阅读:213来源:国知局
虚拟计算机系统的制作方法
【专利摘要】本发明的准虚拟化方式的虚拟计算机系统即使在途中变更准虚拟化OS内的时间的行进方法,仍维持即将变更之前的时刻和刚刚变更之后的时刻的连续性。在管理程序(110)变更准虚拟化OS(131)的逻辑时间的行进速度时,准虚拟化OS(131)与变更后的行进速度对应地更新在时刻计算中使用的基准时刻和作为此时的计数器(103)的值的基准计数器值,指定新的基准时刻和新的基准计数器值,以后,准虚拟化OS(131)使用新的基准时刻和新的基准计数器值来计算当前的时刻。因此,即使在途中变更了准虚拟化OS内的时间上的行进速度,仍能够维持即将变更之前的时刻和刚刚变更之后的时刻的连续性。
【专利说明】虚拟计算机系统

【技术领域】
[0001]本发明涉及对时间的行进速度与实际时间不同的逻辑时间中的时间的行进进行管理的技术。

【背景技术】
[0002]提出了通过使计算机中的时间行进比实际时间中的行进更快,例如在几天期间内实现在实际时间中与I个月量的时间经过相当的试验的方法。
[0003]在以往的时间行进控制方式中,使用加速系数来缩短从定时器向OS (OperatingSystem,操作系统)的定时器中断的间隔,进而通过与加速系数对应的时刻校正,进行了时间行进的加速(例如,专利文献1、专利文献2)。
[0004]另外,还提出了在I台计算机上使多个软件平台动作,在各个软件平台上进行时间行进的加速的方法(例如,专利文献3 )。
[0005]另外,作为具备用于执行虚拟计算机的支援功能的CPU (Central ProcessingUnit,中央处理单元),例如有Intel (注册商标)公司产的IA-32CPU,有向各物理CPU的定时器中断功能(非专利文献I)、自由运行(free-running)计数器功能(非专利文献2)、虚拟化支援功能(非专利文献3)。
[0006]在根据定时器中断间隔计算OS内的时间的情况下,时间的间隔尺寸不比定时器周期的间隔更细。
[0007]例如,在根据10毫秒周期的定时器中断次数计算时间的情况下,无法计算比10毫秒更短的毫秒单位的时间。
[0008]因此,还例如如CPU的核心时钟的周期那样,根据以比定时器中断更细的周期计数的自由运行计数器的计数周期,计算时间。
[0009]即使在该情况下,通过根据自由运行计数器的计数周期变更用于计算时间的参数,能够使时间加速。
[0010]在对计算机硬件忠实地进行模拟的虚拟化(完全虚拟化)的情况下,管理程序(或者还称为虚拟机监视器)能够通过相对在定时器的仿真处理中设定的定时器中断时间依照时间的加速比例缩短而对虚拟计算机发出中断、或者返回使自由运行计数器的值依照加速比例增加了的值来应对。
[0011]【专利文献I】日本特开平1-309136号公报
[0012]【专利文献2】日本特开2004-38350号公报
[0013]【专利文献3】日本特开平9-171458号公报
[0014]【非专利文献I】 “Intel (注册商标)7Series/C216Chipset Family PlatformController Hub (PCH) Datasheet”、Intel (注册商标)Corporat1n、Order Number:326776-003、June2012、“5.78254Timers”
[0015]【非专利文献2】“Intel (注册商标)64and IA_32Architectures SoftwareDeveloper’s Manual,,、“Volume3 (3A,3B&3C):System Programming Guide”、Intel (注册商标)Corporat1n、Order Number:325384_044US、August2012、“ 17.13HME-STAMPCOUNTER”、Order Number:325384-044US
[0016]【非专利文献3】“Intel (注册商标)64and IA_32Architectures SoftwareDeveloper’s Manual,,、“Volume3 (3A, 3B&3C):System Programming Guide”、Intel (注册商标)Corporat1n、Order Number:325384-044US、August2012、“CHAPTER24VIRTUAL-MACHINECONTROL STRUCTURES”、Order Number:325384-044US


【发明内容】

[0017]在计算机虚拟化中,有对H/W (硬件)的动作忠实地进行仿真的完全虚拟化、和对客户OS进行适合于虚拟化的改造来削减仿真开销的准虚拟化的方式。
[0018]在与时间关联的虚拟H/W处理中,自由运行计数器以及定时器的准虚拟化与其关联。
[0019]关于定时器的准虚拟化,并非对定时器的硬件进行仿真,在针对管理程序以在设定时间之后回调客户OS的函数的方式进行设定,在回调函数内执行在定时器中断发生时进行的处理。
[0020]另外,关于自由定时器,根据从物理自由运行计数器读出的数据、和从管理程序送来的数据,客户OS计算时间。
[0021]从管理程序送来的数据具有:用于将物理自由运行计数器的值换算为时间的参数、以及在根据自由运行计数器求出时刻时成为基准的自由运行计数器值和此时的时刻的参数。
[0022]在对以这样的自由运行计数器值为基础的时间的计算进行了准虚拟化的情况下,在管理程序中为了进行客户OS的时间加速,需要变更用于将自由运行计数器的值换算为时间的参数。
[0023]但是,仅通过单纯地重写该参数,则产生如下课题:在途中变更了时间的加速比例的情况下,在即将变更之前的时刻和刚刚变更之后的时刻,客户OS上的时间不连续。
[0024]本发明以解决这样的课题为主要的目的,其主要目的在于即使在途中变更了准虚拟化OS内的时间的行进速度,仍维持即将变更之前的时刻和刚刚变更之后的时刻的连续性。
[0025]本发明的准虚拟化方式的虚拟计算机系统,
[0026]具备被准虚拟化的准虚拟化OS即操作系统和管理程序,
[0027]作为硬件资源,具备:
[0028]CPU即中央处理单元,执行所述准虚拟化OS和所述管理程序;
[0029]存储装置;以及
[0030]自由运行计数器,根据所述CPU的动作时钟周期,更新计数器值,
[0031]其特征在于,
[0032]所述管理程序由所述CPU执行,
[0033]将在根据计数器值计算时间的行进速度与实际时间不同的逻辑时间中的时刻时使用的逻辑时间中的基准的时刻指定为基准时刻,
[0034]确定作为指定了所述基准时刻的时间点的计数器值的基准计数器值,
[0035]指定用于根据计数器值计算所述逻辑时间中的时刻的系数值,
[0036]所述存储装置存储所述基准时刻、所述基准计数器值以及所述系数值,
[0037]所述准虚拟化OS由所述CPU执行,
[0038]从所述存储装置读出所述基准时刻、所述基准计数器值以及所述系数值,
[0039]从所述计数器读出当前的计数器值,
[0040]使用所述基准时刻、所述基准计数器值、所述系数值以及当前的计数器值,计算所述逻辑时间中的当前的时刻,
[0041]所述管理程序
[0042]在要求所述系数值的变更的变更要求被输入到所述虚拟计算机系统的情况下,
[0043]从所述存储装置读出所述基准时刻、所述基准计数器值以及所述系数值,
[0044]从所述自由运行计数器读出当前的计数器值,
[0045]从当前的计数器值减去所述基准计数器值,对减法值乘以变更前的系数值,将乘法值加到所述基准时刻,将加法值指定为新的基准时刻,
[0046]将当前的计数器值指定为新的基准计数器值,
[0047]将变更后的系数值指定为新的系数值,
[0048]所述存储装置存储所述新的基准时刻、所述新的基准计数器值以及所述新的系数值,
[0049]所述准虚拟化OS
[0050]在所述系数值的变更要求被输入到所述虚拟计算机系统之后,
[0051]从所述存储装置读出所述新的基准时刻、所述新的基准计数器值以及所述新的系数值,
[0052]从所述自由运行计数器读出当前的计数器值,
[0053]使用所述新的基准时刻、所述新的基准计数器值、所述新的系数值以及当前的计数器值,计算所述逻辑时间中的当前的时刻。
[0054]根据本发明,在管理程序变更准虚拟化OS的逻辑时间的行进速度时,准虚拟化OS与变更后的行进速度对应地更新在时刻计算中使用的基准时刻和作为此时的自由运行计数器的值的基准计数器值,指定新的基准时刻和新的基准计数器值,以后,准虚拟化OS使用新的基准时刻和新的基准计数器值来计算当前的时刻。
[0055]因此,即使在途中变更了准虚拟化OS内的时间的行进速度,仍能够维持即将变更之前的时刻和刚刚变更之后的时刻的连续性。

【专利附图】

【附图说明】
[0056]图1是示出实施方式I的物理计算机的结构例的图。
[0057]图2是示出实施方式I的虚拟计算机管理数据的例子的图。
[0058]图3是示出实施方式I的定时器数据的例子的图。
[0059]图4是示出实施方式I的虚拟计算机启动时的时刻虚拟化处理的流程图。
[0060]图5是示出实施方式I的时刻计算处理的流程图。
[0061]图6是示出实施方式I的定时器设定处理的流程图。
[0062]图7是示出实施方式I的时间加速比例设定处理的流程图。
[0063]符号说明
[0064]100:物理计算机;101 =CPU ;102:定时器;103:计数器;104:控制器;105:存储装置;110:管理程序;111:时间加速设定处理部;112:时刻虚拟化处理部;113:定时器虚拟化处理部;120:管理用虚拟计算机;121:时间加速比例设定指令;122:管理用OS ;123:时间加速比例设定驱动器;130:虚拟计算机;131:准虚拟化OS ;132:时刻计算处理部;133:定时器处理部;140:虚拟计算机管理数据;150:时间加速比例;160:定时器数据。

【具体实施方式】
[0065]实施方式1.
[0066]在本实施方式中,说明如下结构:使用根据作为比定时器中断更细的周期的CPU的核心时钟周期(动作时钟周期)计数的自由运行计数器,根据自由运行计数器的计数周期计算逻辑时间中的当前时刻。
[0067]另外,在本实施方式中,通过根据自由运行计数器的计数周期变更用于计算逻辑时间上的时刻的参数,能够使逻辑时间上的时间加速。
[0068]在对计算机进行了虚拟化的情况下,管理程序(或者还称为虚拟机监视器)能够相对在定时器的仿真处理中设定的定时器中断时间按照时间的加速比例缩短而对虚拟计算机发出中断、或者返回使自由运行计数器的值依照加速比例增加了的值来应对。
[0069]在计算机虚拟化中,有对硬件(还记载为H/W)的动作忠实地进行仿真的完全虚拟化、和对客户OS进行适合于虚拟化的改造来削减仿真开销的准虚拟化的方式。
[0070]在与时间关联的虚拟H/W处理中,自由运行计数器以及定时器的准虚拟化与其关联。
[0071]关于定时器的准虚拟化,并非对定时器的硬件进行仿真,而是针对管理程序以在设定时间之后回调客户OS的函数的方式进行设定,执行在回调函数内在定时器中断发生时进行的处理。
[0072]另外,关于自由运行计数器,根据从物理自由运行计数器读出的数据、和从管理程序送来的数据,客户OS计算逻辑时间中的时刻。
[0073]从管理程序送来的数据具有:用于将物理自由运行计数器的计数器值换算为逻辑时间上的时刻的参数、以及在根据物理自由运行计数器的计数器值求出逻辑时间上的时刻时成为基准的自由运行计数器值和此时的时刻的参数。
[0074]在对以这样的自由运行计数器值为基础的时间的计算进行了准虚拟化的情况下,为了在管理程序中进行客户OS的时间加速,需要变更用于将自由运行计数器的值换算为时间的参数。
[0075]但是,仅通过单纯地重写该参数,则发生如下情形:在逻辑时间行进的途中变更了时间的加速比例的情况下,在即将变更之前的时刻和刚刚变更之后的时刻,客户OS上的时间不连续。
[0076]在本实施方式中,说明在准虚拟化方式的虚拟计算机系统中,(I)使用自由运行计数器的计数器值而以微细的间隔尺寸管理逻辑时间中的时间的行进的方式、(2)即使在逻辑时间行进的途中使逻辑时间的行进加速,逻辑时间上的时间的行进也不会变得不连续的方式。
[0077]图1是本实施方式的时间行进控制方式的框图。
[0078]在图1中,在物理计算机100中,作为硬件资源,具备CPUlOl、定时器102、自由运行计数器103 (以下还简称为计数器103)、盘或网络的控制器104等。
[0079]而且,物理计算机100使用这些硬件资源,来执行管理程序110、管理用虚拟计算机120、虚拟计算机130。
[0080]另外,图1所示的物理计算机100相当于虚拟计算机系统的例子。
[0081]定时器102是在经过所设定的时间之后发生中断的H/W,记载于例如非专利文献I中。
[0082]自由运行计数器103是无论软件的动作如何都不断地以一定速度进行计数的计数器,记载于例如非专利文献2中。
[0083]如上所述,自由运行计数器103根据CPU的动作时钟周期更新计数器值。
[0084]“根据CPU的动作时钟周期更新计数器值”包括与CPU的动作时钟周期同步地更新计数器值的情况、以CPU的动作时钟周期的2倍、10倍等长度的间隔更新计数器值的情况。
[0085]控制器104是用于在与LAN (Local Area Network,局域网)等网络、硬盘装置之间交换数据的控制器。
[0086]虚拟计算机130是在物理计算机100上通过管理程序110 (或者还称为VM监视器)控制的一个以上的虚拟的计算机。
[0087]准虚拟化0S131是在虚拟计算机130上执行的OS,是进行用于作为虚拟计算机动作的改造(称为准虚拟化)而成的OS。
[0088]在准虚拟化中,通过进行针对管理程序110的调出(管理程序调用),实现虚拟化处理。
[0089]时刻计算处理部132在准虚拟化0S131内求出逻辑时间中的时刻。
[0090]定时器处理部133在准虚拟化0S131内设定定时器。
[0091]更具体而言,定时器处理部133针对管理程序110以在经过通过管理程序调用指定的时间之后回调准虚拟化0S131内的函数的方式进行设定。
[0092]管理用虚拟计算机120对管理程序110发行管理程序调用,对虚拟计算机130的制作、删除等进行管理、以及控制控制器104,进行向物理盘、物理网络的访问。
[0093]时间加速比例设定指令121是为了利用者设定虚拟计算机130的时间加速比例而使用的指令。
[0094]管理用OS 122是在管理用虚拟计算机上执行的OS。
[0095]时间加速比例设定驱动器123是用于将从时间加速比例设定指令121送来的时间加速比例通过管理程序调用而送到管理程序110的驱动器。
[0096]管理程序110管理虚拟计算机130,进行CPU、存储器等物理资源的分配、管理程序调用的受理。
[0097]时间加速设定处理部111根据从时间加速比例设定驱动器123送来的时间加速比例,进行与虚拟计算机管理数据140的时间关联的数据的更新、定时器数据160的更新、时间加速比例150的设定。
[0098]时刻虚拟化处理部112在管理程序110内,进行用于对时刻进行准虚拟化的处理。
[0099]更具体而言,时刻虚拟化处理部112在管理程序110启动了虚拟计算机130的情况等下被调出,进行虚拟计算机管理数据140的时间关联的数据设定。
[0100]定时器虚拟化处理部113从虚拟计算机130通过管理程序调用设定定时器。
[0101]更具体而言,定时器虚拟化处理部113进行定时器数据160的数据的设定和定时器102的设定。
[0102]存储装置105是存储数据、程序的硬件,在图1中示出了在存储装置105中储存的时间关联数据的一个例子。
[0103]虚拟计算机管理数据140保持用于管理程序110管理虚拟计算机130的数据,保持例如与虚拟计算机130使用的CPU、存储器关联的信息。
[0104]此处,还包括用于在虚拟计算机130上管理时间的信息。
[0105]时间加速比例150是保持将虚拟计算机130中的逻辑时间的行进设为实际的时间(实际时间)的行进的几倍的数据。
[0106]在未进行时间加速的情况下,预先设定了 I。
[0107]定时器数据160是为了定时器虚拟化处理部113对准虚拟化0S131进行定时器通知而管理的数据。
[0108]在本实施方式中,将作为RAM (Random Access Memory,随机访问存储器)的主存储装置以及磁盘装置、闪存存储器等二次存储装置总称为存储装置105。
[0109]关于管理程序110、管理用虚拟计算机120以及虚拟计算机130的程序代码,例如被存储到二次存储装置中,在执行时被载入到主存储装置中,由CPUlOl从主存储装置读入并执行。
[0110]另外,将通过管理程序110、管理用虚拟计算机120以及虚拟计算机130的执行得到的参数、信息、数据、数值等存储到存储装置105、CPUlOl内的寄存器中。
[0111]另外,也可以在物理计算机100中,装备包括输入输出装置、通信装置的各种设备。
[0112]以下,进行管理程序110、管理用虚拟计算机120、虚拟计算机130以及它们的要素“执行?”这样的说明,但这些说明是与“CPU101执行?”相同的意义。
[0113]S卩,在本说明书中,即使将软件记述为动作主体,该记述表示通过由CPUlOl执行程序来进行处理。
[0114]图2示出实施方式I中的虚拟计算机管理数据140的具体例。
[0115]虚拟计算机管理数据140保持与时间管理关联的数据。
[0116]在图2中,时间换算乘数141是将计数器103的增量值换算为逻辑时间的情况的乘数。
[0117]例如,在计数器103以2GHz的速度进行计数的情况下,如果时间换算乘数141是1/2,则换算为纳秒单位的时间。
[0118]在基准时间中的计数器值143中,储存某定时下的计数器103的值。
[0119]更具体而言,基准时间中的计数器值143是指定了后述基准时间142的时间点下的计数器103的计数器值,相当于基准计数器值的例子。
[0120]基准时间142储存表示在基准时间中的计数器值143中设定了值时的虚拟计算机130内的逻辑时间中的时刻的数据。
[0121]例如,以纳秒单位设定从启动虚拟计算机130起的时间。
[0122]基准时间142是在根据计数器103的计数器值计算逻辑时间中的时刻时使用的、逻辑时间中的基准的时刻,相当于基准时刻的例子。
[0123]也可以在任意的定时设定基准时间142以及基准时间中的计数器值143。
[0124]图3是示出实施方式I中的定时器数据160的内容的图。
[0125]定时器通知时刻161储存与从准虚拟化0S131内的定时器处理部133要求了定时器通知的时刻对应的实际时间中的时刻。
[0126]回调函数162是作为定时器通知由管理程序110调出的准虚拟化0S131内的函数。
[0127]接下来,说明动作。
[0128]图4是示出启动了虚拟计算机130时的时刻虚拟化处理部112的动作的流程图。
[0129]在管理程序110启动虚拟计算机130时,执行该处理。
[0130]在S401中,时刻虚拟化处理部112针对与启动的虚拟计算机130对应的虚拟计算机管理数据140,进行S402以后所示的设定处理。
[0131]在S402中,时刻虚拟化处理部112设定时间换算乘数141。
[0132]关于该值,设定对不进行预先求出的时间加速的情况的时间换算乘数的值乘以时间加速比例150的值而得到的结果。
[0133]其中,在管理用虚拟计算机120的情况下,将时间加速比例始终计算为I。
[0134]另外,时间换算乘数141是用于根据计数器值计算逻辑时间中的时刻的值,相当于系数值的例子。
[0135]在S403中,时刻虚拟化处理部112在基准时间142中设定成为虚拟计算机的时间计算的基准的时刻(逻辑时间中的时刻)。
[0136]该基准时间是指,将启动了例如虚拟计算机时设为O、或者将特定的日期时间设为O并例如以纳秒单位表示从此到当前为止的时间的值等。
[0137]在S404中,时刻虚拟化处理部112将设定了基准时间142时的计数器103的计数器值设定为基准时间中的计数器值143。
[0138]图5是示出在准虚拟化0S131中时刻计算处理部132计算时刻的情况的动作的流程图。
[0139]在S501中,通过从应用程序发行求出当前时刻的系统调用等,调出时刻计算处理部 132。
[0140]在S502中,时刻计算处理部132读出当前的计数器103的值、本虚拟计算机的管理数据140中的时间换算乘数141、基准时间142、基准时间中的计数器值143。
[0141]在S503中,时刻计算处理部132从在S502中读出的当前的计数器103的值减去基准时间中的计数器值143,对减法值乘以时间换算乘数141,将所得到的值加到基准时间142,将所得到的结果作为逻辑时间中的当前时刻返回调出源。
[0142]图6是示出在准虚拟化0S131中定时器处理部133进行定时器的设定的情况的动作的流程图。
[0143]在S601中,通过应用程序使用系统调用来设定定时器、或者利用准虚拟化0S131内的处理设定定时器,定时器处理部133被调出。
[0144]在S602中,定时器处理部133针对管理程序110进行管理程序调用,指定回调函数的调出定时。
[0145]S卩,定时器处理部133以在所指定的经过时间之后回调所指定的函数的方式进行设定。
[0146]另外,定时器处理部133按照逻辑时间上的时间,指定回调函数的调出定时。
[0147]在S603中,通过管理程序调用,调出定时器虚拟化处理部113,定时器虚拟化处理部113计算通过定时器处理部133指定的经过时间之后的实际时间上的时刻,在定时器数据160中将该时刻设定为定时器通知时刻161,并且,在回调函数162中设定通过定时器处理部133指定的回调函数。
[0148]在计算定时器通知时刻时,预先将在S602中送来的经过时间除以时间加速比例150。
[0149]但是,在管理用虚拟计算机120的情况下,将时间加速比例始终计算为I。
[0150]在S604中,定时器虚拟化处理部113从定时器通知时刻161中选择在最近的将来到来通知时刻的时刻,对定时器102进行设定以如果到达该时刻则使中断发生。
[0151]在S605中,如果到达在S604中设定的时刻而从定时器102输入了中断,则定时器虚拟化处理部113从定时器数据160中选出当前时刻以前的定时器通知时刻161的数据,调出与其相应的回调函数162。
[0152]在S606中,定时器虚拟化处理部113删除在S605中处理的定时器通知时刻161和回调函数162的条目。
[0153]图7是示出变更时间加速比例的情况的动作的流程图。
[0154]在S701中,利用者使用时间加速比例设定指令121,作为时间加速比例的变更要求,设定变更后的时间加速比例。
[0155]在S702中,时间加速比例设定指令121对管理用0S122发行系统调用,向管理用0S122中的时间加速比例设定驱动器123传送变更后的时间加速比例。
[0156]在S703中,时间加速比例设定驱动器123对管理程序110发行管理程序调用,向时间加速设定处理部111传送变更后的时间加速比例。
[0157]在S704中,时间加速设定处理部111针对各虚拟计算机管理数据140,从计数器103的当前的值减去基准时间中的计数器值143的值,对减法值乘以时间换算乘数141的值,将乘法值加到基准时间142,将该值设定为新的基准时间142。
[0158]然后,将计数器103的当前的值新设定为基准时间中的计数器值143。
[0159]在S705中,时间加速设定处理部111针对各虚拟计算机管理数据140,将对不进行时间加速的情况的时间换算乘数的值乘以在S703中送来的时间加速比例150而得到的值设定为新的时间换算乘数141的值。
[0160]其中,在管理用虚拟计算机120的情况下,将时间加速比例始终计算为I。
[0161]在S706中,时间加速设定处理部111从各定时器通知时刻161减去实际时间中的当前时刻,对所得到的值乘以变更前的时间加速比例150 (返回逻辑时间上的剩余时间),将其除以在S703中送来的时间加速比例(变换为实际时间),将对除法值加上当前时刻(实际时间)而得到的值设定为新的定时器通知时刻161。
[0162]但是,在管理用虚拟计算机120的情况下,将时间加速比例始终计算为I。
[0163]在S707中,时间加速设定处理部111针对各虚拟计算机管理数据140,将时间加速比例150的值设定为在S703中送来的值。
[0164]在存储装置105中存储在S704中设定的基准时间142、基准时间中的计数器值143、在S705中设定的时间换算乘数141、在S707中设定的时间加速比例150的值,在进行图5的处理的情况下,使用在S704中设定的基准时间142、在基准时间中的计数器值143、在S705中设定的时间换算乘数141。
[0165]如以上那样,在变更时间加速比例时,更新作为在准虚拟化OS使用的时间计算中使用的参数的基准时间和此时的计数器的值,与时间加速比例符合地更新时间换算乘数,与时间加速比例符合地更新定时器数据的定时器通知时刻,所以即使在虚拟计算机的启动之后在途中变更时间加速比例,在准虚拟化OS内的时间的行进中也无障碍。
[0166]另外,无需变更虚拟计算机上的OS便能够实现。
[0167]进而,能够对在物理计算机上动作的多个虚拟计算机同时进行时间加速。
[0168]另外,能够使管理用虚拟计算机成为时间加速的对象外,所以能够关于针对物理I/0的超时控制,排除时间加速所致的影响。
[0169]以上,在本实施方式中,说明了具备以下单元的准虚拟化方式的虚拟计算机系统。
[0170](a)从管理用虚拟计算机,设定被准虚拟化的OS的时间行进的加速比例的单元
[0171](b)在管理程序内,使被准虚拟化的OS的时间的行进加速的单元
[0172](c)在管理程序内,使被准虚拟化的OS的定时器处理加速的单元
[0173]另外,说明了在上述(b)使管理程序内的被准虚拟化的OS的时间行进加速的单元中,在管理程序内的时间加速设定处理中,在时间加速比例设定变更时,根据时间加速比例,更新向被准虚拟化的OS发送的时间计算中使用的参数。
[0174]另外,说明了在上述时间计算中使用的参数的更新中,针对管理用虚拟计算机不反映时间加速比例。
[0175]另外,说明了在上述(C)使被准虚拟化的OS的定时器处理加速的单元中,在管理程序内的时间加速设定处理中,根据时间加速比例更新管理程序管理的定时器的数据。
[0176]另外,说明了在上述定时器的数据的更新中,针对管理用虚拟计算机不反映时间加速比例。
[0177]另外,说明了在上述(a)设定时间行进的加速比例的单元中,管理用计算机内的指令对管理用OS内的驱动器指定加速比例,管理用OS内的驱动器发行管理程序调用而对管理程序内的时间加速设定处理指定加速比例。
[0178]以上,说明了本发明的实施方式,但也可以部分性地实施在本实施方式中说明的功能、处理。
[0179]另外,本发明不限于这些实施方式,而能够根据需要实现各种变更。
【权利要求】
1.一种准虚拟化方式的虚拟计算机系统, 具备被准虚拟化的准虚拟化OS即操作系统和管理程序, 作为硬件资源,具备: CPU即中央处理单元,执行所述准虚拟化OS和所述管理程序; 存储装置;以及 自由运行计数器,根据所述CPU的动作时钟周期,更新计数器值, 其特征在于, 所述管理程序由所述CPU执行, 将在根据计数器值计算时间的行进速度与实际时间不同的逻辑时间中的时刻时使用的逻辑时间中的基准的时刻指定为基准时刻, 确定作为指定了所述基准时刻的时间点的计数器值的基准计数器值, 指定用于根据计 数器值计算所述逻辑时间中的时刻的系数值, 所述存储装置存储所述基准时刻、所述基准计数器值以及所述系数值, 所述准虚拟化OS由所述CPU执行, 从所述存储装置读出所述基准时刻、所述基准计数器值以及所述系数值, 从所述计数器读出当前的计数器值, 使用所述基准时刻、所述基准计数器值、所述系数值以及当前的计数器值,计算所述逻辑时间中的当前的时刻, 所述管理程序 在要求所述系数值的变更的变更要求被输入到所述虚拟计算机系统的情况下, 从所述存储装置读出所述基准时刻、所述基准计数器值以及所述系数值, 从所述自由运行计数器读出当前的计数器值, 从当前的计数器值减去所述基准计数器值,对减法值乘以变更前的系数值,将乘法值加到所述基准时刻,将加法值指定为新的基准时刻, 将当前的计数器值指定为新的基准计数器值, 将变更后的系数值指定为新的系数值, 所述存储装置存储所述新的基准时刻、所述新的基准计数器值以及所述新的系数值, 所述准虚拟化OS 在所述系数值的变更要求被输入到所述虚拟计算机系统之后, 从所述存储装置读出所述新的基准时刻、所述新的基准计数器值以及所述新的系数值, 从所述自由运行计数器读出当前的计数器值, 使用所述新的基准时刻、所述新的基准计数器值、所述新的系数值以及当前的计数器值,计算所述逻辑时间中的当前的时刻。
2.根据权利要求1所述的虚拟计算机系统,其特征在于, 所述虚拟计算机系统作为硬件资源具备定时器, 所述准虚拟化OS针对所述管理程序,将通过所述管理程序调出的所述准虚拟化OS内的函数指定为回调函数,并且将回调函数的调出定时指定为所述逻辑时间, 所述管理程序使用所述系数值,将与通过所述准虚拟化OS指定的所述调出定时对应的实际时间中的时刻计算为定时器通知时刻, 以在所述定时器通知时刻到来时从所述定时器通知的方式,对所述定时器设定所述定时器通知时刻, 在有来自所述定时器的通知时,调出通过所述准虚拟化OS指定的回调函数。
3.根据权利要求2所述的虚拟计算机系统,其特征在于, 所述管理程序将所述逻辑时间中的直至所述调出定时为止的时间除以所述系数值,将除法值加到实际时间中的当前时刻,将加法值作为所述定时器通知时刻。
4.根据权利要求3所述的虚拟计算机系统,其特征在于, 所述管理程序 在对所述定时器设定了所述定时器通知时刻之后且有来自所述定时器的通知之前,要求所述系数值的变更的变更要求被输入到所述虚拟计算机系统的情况下, 从所述存储装置读出所述系数值, 从所述定时器 通知时刻减去实际时间中的当前时刻,对减法值乘以变更前的系数值,将乘法值除以变更后的系数值,将除法值加到实际时间中的当前时刻,将加法值作为新的定时器通知时刻, 以在所述新的定时器通知时刻到来时从所述定时器被通知的方式,对所述定时器设定所述新的定时器通知时刻, 在有来自所述定时器的通知时,调出通过所述准虚拟化OS指定的回调函数。
5.根据权利要求1所述的虚拟计算机系统,其特征在于, 所述虚拟计算机系统具备由所述CPU执行而管理所述准虚拟化OS的管理用OS, 所述管理程序在所述变更要求被输入到所述虚拟计算机系统的情况下,不将所述新的系数值反映到所述管理用OS。
6.根据权利要求4所述的虚拟计算机系统,其特征在于, 所述虚拟计算机系统具备由所述CPU执行而管理所述准虚拟化OS的管理用OS, 所述管理程序在对所述定时器设定了用于调出所述管理用OS内的函数的定时器通知时刻的情况下,即使所述变更要求被输入到所述虚拟计算机系统,也不会针对所述管理用OS内的函数进行新的定时器通知时刻的计算以及设定。
7.根据权利要求5所述的虚拟计算机系统,其特征在于, 所述管理用OS发行管理程序调用,对所述管理程序通知所述系数值的变更要求。
【文档编号】G06F9/455GK104050011SQ201410089765
【公开日】2014年9月17日 申请日期:2014年3月12日 优先权日:2013年3月12日
【发明者】伊藤孝之 申请人:三菱电机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1