CN102959555A - 虚拟计算机系统、虚拟计算机控制方法、虚拟计算机控制程序及半导体集成电路 - Google Patents

虚拟计算机系统、虚拟计算机控制方法、虚拟计算机控制程序及半导体集成电路 Download PDF

Info

Publication number
CN102959555A
CN102959555A CN2012800018146A CN201280001814A CN102959555A CN 102959555 A CN102959555 A CN 102959555A CN 2012800018146 A CN2012800018146 A CN 2012800018146A CN 201280001814 A CN201280001814 A CN 201280001814A CN 102959555 A CN102959555 A CN 102959555A
Authority
CN
China
Prior art keywords
mentioned
virtual machine
processor
application program
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012800018146A
Other languages
English (en)
Other versions
CN102959555B (zh
Inventor
天野克重
斋藤雅彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Patent Trust Inc
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN102959555A publication Critical patent/CN102959555A/zh
Application granted granted Critical
Publication of CN102959555B publication Critical patent/CN102959555B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

在执行中的虚拟计算机中,在预先设定的指定的应用程序成为执行对象的情况下,以该执行中的虚拟计算机为母虚拟计算机,以分叉方式生成用于执行该指定的应用程序的子虚拟计算机。并且,生成的子虚拟计算机设定为不执行该指定的应用程序以外的应用程序。另一方面,母虚拟计算机代替该指定的应用程序而执行伪应用程序。

Description

虚拟计算机系统、虚拟计算机控制方法、虚拟计算机控制程序及半导体集成电路
技术领域
本发明涉及虚拟计算机系统,特别涉及用于保护指定的应用程序免受恶意软件的攻击的技术。
背景技术
以往,已知有如下虚拟计算机系统:通过复制作为母机的虚拟计算机,生成作为子机的虚拟计算机,将所生成的虚拟计算机动态地执行控制。
例如,在专利文献1中,记载有考虑在各个虚拟计算机上执行的任务的重要性而将动作的虚拟计算机切换来执行的虚拟计算机系统,例如,在专利文献2中,记载有将执行的虚拟计算机切换来执行、以执行以优先级最高的任务为执行对象的虚拟计算机的虚拟计算机系统。
现有技术文献
专利文献
专利文献1:特开2000-242512号公报
专利文献2:WO2009/133669号公报
发明概要
发明要解决的问题
在虚拟计算机系统中,在作为执行对象的应用程序群中有时混合存在被认证为不包含恶意软件的应用程序(以下,称作“已认证应用程序”)、以及有可能包含恶意软件的应用程序(以下,称作“未认证应用程序”)。
在这样的情况下,当在未认证应用程序中包含有恶意软件时,通过执行该恶意软件,已认证应用程序可能被攻击。
作为已认证应用程序被攻击的情况的例子,例如有如下情况:已认证应用程序被以不适当的方法执行,应该对外部保密的信息、例如系统所保存的收费内容、个人信息、密钥等被读取。
在以往的动态地生成虚拟计算机的虚拟计算机系统中,即使为了执行新的已认证应用程序而生成新的子虚拟计算机,也由于该子虚拟计算机是母虚拟计算机的复制,所以在作为母虚拟计算机的执行对象的应用程序群中包含有未认证应用程序的情况下,在子虚拟计算机中在作为执行对象的应用程序群中也包含未认证应用程序。
因而,在以往的虚拟计算机系统中,在作为母虚拟计算机的执行对象的未认证应用程序中包含有恶意软件的情况下,在为了执行已认证应用程序而生成的子虚拟计算机中,已认证应用程序也会被该恶意软件攻击。
发明内容
所以,本发明是鉴于这样的问题而做出的,目的是提供一种虚拟计算机系统,在虚拟计算机当作执行对象的应用程序群中混合存在已认证应用程序和未认证应用程序的情况下,也能够将通过执行包含在未认证应用程序中的恶意软件而已认证应用程序被攻击的危险性抑制得比以往低。
用于解决问题的手段
为了解决上述问题,有关本发明的虚拟计算机系统,是具备处理器和在该处理器上执行、用于使该处理器进行多个虚拟计算机的执行控制的管理器的虚拟计算机系统,其特征在于,上述管理器具有:执行检测部,用于检测在虚拟计算机中要新执行规定的应用程序;以及虚拟计算机生成部,用于在由上述处理器执行的上述执行检测部检测到在第1虚拟计算机中要新执行上述规定的应用程序的情况下,基于该第1虚拟计算机,生成用于执行上述规定的应用程序的新的第2虚拟计算机;由上述处理器执行控制的多个虚拟计算机分别具有执行控制部,该执行控制部用于在上述第2虚拟计算机中使上述处理器仅执行包括上述规定的应用程序的指定程序群,在上述第1虚拟计算机中使上述处理器代替上述规定的应用程序而执行规定的伪程序。
发明效果
根据具备上述结构的有关本发明的虚拟计算机系统,在将已认证应用程序作为规定的应用程序、在指定程序群中不包含未认证应用程序的情况下,在执行已认证应用程序的子虚拟计算机中,未认证应用程序不会被执行,进而,在未认证应用程序有可能被执行的母虚拟计算机中,已认证应用程序不会被执行。
因而,即使在虚拟计算机当作执行对象的应用程序中混合存在已认证应用程序和未认证应用程序的情况下,也能将通过执行包含在未认证应用程序中的恶意软件而导致已认证应用程序被攻击的危险性抑制得比以往低。
附图说明
图1是表示虚拟计算机系统100的主要的硬件结构的框图。
图2是表示处理器101具有的动作模式的动作模式图。
图3是表示在处理器101上成为执行对象的程序模块的框图。
图4是保护任务对应表400的数据构造图。
图5是子虚拟计算机生成处理的流程图。
图6是子虚拟计算机清除处理的流程图。
图7是保护任务执行处理的流程图。
图8是表示在虚拟计算机系统100中执行的任务的示意图。
图9是表示在处理器101上成为执行对象的程序模块的框图。
图10是表示在处理器101上成为执行对象的程序模块的框图。
图11的(a)是伪程序1113的程序结构图,(b)是调度程序1117的程序结构图。
图12是变形子虚拟计算机生成处理的流程图。
图13是变形保护任务执行处理的流程图。
图14是表示在虚拟计算机系统100中执行的任务的示意图。
图15是虚拟计算机系统1500的结构图。
具体实施方式
<实施方式1>
<概要>
以下,作为有关本发明的虚拟计算机系统的一实施方式,对如下的虚拟计算机系统进行说明,该虚拟计算机系统具备处理器,该处理器具有执行应用程序的用户模式和比用户模式高级的管理员(supervisor)模式这2个程序执行模式,由以处理器的管理员模式执行的管理器对以处理器的管理员模式执行的多个操作系统进行分时执行控制。
该虚拟计算机系统在执行中的虚拟计算机中要执行预先设定的、成为从恶意软件的攻击的保护对象的指定的应用程序的情况下,将该执行中的虚拟计算机作为母虚拟计算机,以分叉(fork)方式(后述)生成用于执行该指定的应用程序的子虚拟计算机。并且,将所生成的子虚拟计算机设定为该指定的应用程序以外的应用程序不被执行。另一方面,母虚拟计算机代替该指定的应用程序而执行伪应用程序。由此,即使在作为该虚拟计算机系统的执行对象的应用程序中包含有攻击上述指定的应用程序的恶意软件,该指定的应用程序也不会被恶意软件攻击。
以下,参照附图对有关本实施方式1的虚拟计算机系统的结构进行说明。
<硬件结构>
图1是表示虚拟计算机系统100的主要的硬件结构的框图。
如该图所示,虚拟计算机系统100作为硬件是计算机装置,由集成电路110、输入装置131、输出装置132和硬盘装置133构成。
集成电路110是将处理器101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、定时器104、内部总线120、第1接口121、第2接口122和第3接口123集成而得到的半导体集成电路,与输入装置131、输出装置132和硬盘装置133连接。
处理器101与内部总线120连接,具有通过执行存储在ROM102或RAM103中的程序来控制ROM102、RAM103、定时器104、输入装置131、输出装置132、硬盘装置133的功能。
图2是表示处理器101具备的动作模式的动作模式图。
如该图所示,处理器101具有执行应用程序(图中的任务A231、任务K232、任务L233等)的用户模式230和作为执行操作系统(图中的第1 OS(Operating System)221、第2 OS222、第N OS223等)和管理器(hypervisor)(图中的管理器211)的特权模式的管理员模式220。
在用户模式230下执行的应用程序分别被在管理员模式220下执行的操作系统进行分时执行控制,在管理员模式220下执行的操作系统同样分别被在管理员模式220下执行的管理器进行分时执行控制。
再次回到图1,继续说明虚拟计算机系统100的结构。
ROM102和RAM103分别与内部总线120连接,存储规定处理器101的动作的程序和处理器101所利用的数据。
定时器104与内部总线120连接,由处理器101控制。
内部总线120与处理器101、ROM102、RAM103、定时器104、第1接口121、第2接口122、和第3接口123连接,具有传递将它们连接的电路间的信号的功能。
第1接口121、第2接口122和第3接口123分别与内部总线120来连接,分别具有对内部总线120与输入装置131之间的信号的交换进行中介的功能、对内部总线120与输出装置132之间的信号的交换进行中介的功能、以及对内部总线120与硬盘装置133之间的信号的交换进行中介的功能。
输入装置131包括键盘、鼠标、照相机、传感器等,与第1接口121连接,由处理器101控制,具有生成与通过键盘、鼠标、照相机、传感器等进行的用户操作等对应的数据、将表示发生了用户操作等的通知及所生成的数据向处理器101发送的功能。
输出装置132包括显示器、扬声器等,与第2接口122连接,由处理器101控制,具有使用显示器、扬声器等将字符串、图像、声音等显示、输出的功能。
硬盘装置133内置有对处理器101所利用的数据进行存储的硬盘,与第3接口123连接,由处理器101控制,具有向内置的硬盘写入数据的功能和将数据从内置的硬盘读出的功能。
<程序模块结构>
图3是表示在某时刻t0在处理器101上成为执行对象的程序模块(以下,简称为“模块”)的框图。
在该图中,模块群300是在处理器101中成为执行对象的模块的集合,模块群300所包含的模块分别保存在ROM102或RAM103的存储区域中。
任务A311~任务K312、伪任务313、任务L314~任务P315、保护任务316等分别是在处理器101的用户模式下执行的任务。
第1OS321和第2OS322分别是在处理器101的管理员模式下执行的多任务对应操作系统。
管理器351是在处理器101的管理员模式下执行的管理器。
任务通过调用预先准备的操作系统调用例程(routine),能够对操作系统委托预先设定的处理。此外,操作系统通过调用预先准备的管理器调用例程,能够对管理器委托预先设定的处理。
此外,在虚拟计算机系统的执行时发生的例外、从输入装置等发生的中断由管理器处理,根据需要对虚拟计算机上的操作系统通知。
保护任务316是通过由操作系统(这里是第2OS322)启动预先设定的保护对象应用程序而生成的任务。该保护对象应用程序是成为从恶意软件的攻击的保护对象的应用程序,由后述的保护任务对应表346预先设定为保护对象。
作为保护对象应用程序的一例,例如有处理个人信息的应用程序、处理金钱信息的应用程序、处理成为著作权保护的对象的影像数据的应用程序等。
伪任务313是通过由操作系统(这里是第1OS321)启动预先设定的伪程序而生成的任务。该伪程序例如是由重复NOP(No OPeration)的无限循环构成的程序,是不会产生新的任务的程序。
第1OS321将多个任务(这里是任务A311~任务K312和伪任务313)使用时间分段值分时执行控制。并且,管理器351将由第1OS321、任务A311~任务K312和伪任务313构成的系统作为虚拟计算机301控制。
第2OS322使用时间分段(time slice)值对多个任务(这里是任务L314~任务P315和保护任务316)进行分时执行控制。并且,管理器351将由第2OS322、任务L314~任务P315和保护任务316构成的系统作为子虚拟计算机302控制。
这里,子虚拟计算机302是以虚拟计算机301为母虚拟计算机、以分叉(fork)方式生成的虚拟计算机。关于分叉方式下的虚拟计算机的生成在后面叙述。
第1OS321除了实现作为一般的多任务操作系统的功能的模块群(未图示)以外,还在内部中包括启动请求检测模块331、保护任务生成模块332、任务调度变更模块333、保护任务结束通知模块334和伪任务执行通知模块335这5个模块,启动请求检测模块331在内部中存储有预先设定的保护任务对应表336。
图4是由启动请求检测模块331及启动请求检测模块341存储的保护任务对应表400(在图3中,是保护任务对应表336及保护任务对应表346)的数据构造图。
如该图所示,保护任务对应表400将应用程序ID410与保护对象标志420建立对应而构成。并且,该保护任务对应表400是在系统设计时预先设定的。
应用程序ID是用于识别应用程序的ID。
保护对象标志420是表示由对应的应用程序ID识别的应用程序是否是针对来自恶意软件的攻击成为保护对象的保护对象应用程序的1位的标志。
这里,保护对象标志420在逻辑值“1”的情况下,表示由对应的应用程序ID识别的应用程序是成为针对来自恶意软件的攻击的保护对象的保护对象应用程序,在逻辑值“0”的情况下,表示由对应的应用程序ID识别的应用程序不是成为针对来自恶意软件的攻击的保护对象的保护对象应用程序。
根据该保护对象标志420可知,例如由应用程序ID410“0002”识别的应用程序是保护对象应用程序。
再次回到图3,继续说明在处理器101上成为执行对象的模块群。
启动请求检测模块331在内部中存储预先设定的保护任务对应表336,具有以下的两个功能。
功能1:在从由本操作系统(这里第1OS321)执行控制的任务请求了新的应用程序的启动的情况下,参照存储的保护任务对应表336判断被请求启动的应用程序是否是保护对象应用程序。
功能2:在被请求启动的应用程序是保护对象应用程序的情况下,向本操作系统所包含的保护任务生成模块(这里是保护任务生成模块332)和管理器351所包含的虚拟计算机生成模块361(后述)进行被请求了保护对象应用程序的启动的通知。
保护任务生成模块332具有以下的3个功能。
功能1:在从管理器351所包含的子虚拟计算机通知模块362(后述)接受到本操作系统所属的虚拟计算机(这里是虚拟计算机301)是子虚拟计算机的通知的情况下,将保护对象应用程序启动,在本操作系统所属的虚拟计算机(这里是虚拟计算机301)内生成保护任务。
功能2:在从管理器351所包含的子虚拟计算机通知模块362(后述)没有接受到本操作系统所属的虚拟计算机(这里是虚拟计算机301)是子虚拟计算机的通知的情况下,在从本操作系统所包含的启动请求检测模块(这里是启动请求检测模块331)进行了已请求保护对象应用程序的启动的通知时,代替保护对象应用程序而启动伪程序,在本操作系统所属的虚拟计算机(这里是虚拟计算机301)内生成伪任务。
功能3:在生成伪任务的情况下,作为操作系统在任务切换控制中使用的时间分段值,将向对应的保护任务分配的时间分段值分配给伪任务。
任务调度变更模块333具有如下功能:在从管理器351所包含的子虚拟计算机通知模块362(后述)接受到本操作系统所属的虚拟计算机(这里是虚拟计算机301)是子虚拟计算机的通知的情况下,在由本操作系统所包含的保护任务生成模块(这里是保护任务生成模块332)生成了保护任务时、将由本操作系统(这里是第1OS321)执行的任务限定于保护任务。
为了将由本操作系统执行的任务限定于保护任务,可以通过例如使保护任务的优先级比其他任务的优先级高、例如使其他任务的优先级比保护任务的优先级低、此外例如在本操作系统具有将执行的任务限定于规定的任务的功能的情况下将保护任务设定为该规定的任务等来实现。
保护任务结束通知模块334具有如下功能:检测由本操作系统(这里是第1OS321)执行控制的保护任务的执行结束,对管理器351所包含的虚拟计算机调度模块363(后述)进行保护任务的执行已结束的通知。
伪任务执行通知模块335具有以下的两个功能。
功能1:检测在本操作系统所属的虚拟计算机(这里是虚拟计算机301)中开始了伪任务的执行,对管理器351所包含的虚拟计算机调度模块363(后述)进行伪任务的执行的通知。
功能2:检测在本操作系统所属的虚拟计算机(这里是虚拟计算机301)中伪任务的执行被中断,对管理器351所包含的虚拟计算机调度模块363(后述)进行伪任务的执行被中断的通知。
第2OS322除了实现作为一般的多任务操作系统的功能的模块群(未图示)以外,还在内部中包括启动请求检测模块341、保护任务生成模块342、任务调度变更模块343、保护任务结束通知模块344和伪任务执行通知模块345这5个模块,启动请求检测模块331在内部中存储有预先设定的保护任务对应表346。
这些启动请求检测模块341、保护任务生成模块342、任务调度变更模块343、保护任务结束通知模块344、伪任务执行通知模块345和保护任务对应表346分别具有与包含在第1OS321中的启动请求检测模块331、保护任务生成模块332、任务调度变更模块333、保护任务结束通知模块334、伪任务执行通知模块335和保护任务对应表336同样的功能。由此,这里,省略这些说明。
但是,它们中的保护任务生成模块342和任务调度变更模块343根据是否从子虚拟计算机通知模块362接受到本操作系统所属的虚拟计算机是子虚拟计算机的通知,分别进行与保护任务生成模块332和任务调度变更模块333相互不同的动作。
管理器351在内部中包括虚拟计算机生成模块361、子虚拟计算机通知模块362、虚拟计算机调度模块363和虚拟计算机清除模块364。
虚拟计算机生成模块361具有如下功能:在从虚拟计算机(这里是虚拟计算机301)的启动请求检测模块331进行了被请求保护对象应用程序的启动的通知的情况下,基于虚拟计算机301以分叉方式生成新的子虚拟计算机(这里是子虚拟计算机302)的功能。
这里,分叉方式下的虚拟计算机的生成,是指以分配给作为母机的虚拟计算机的存储区域与分配给新生成的虚拟计算机的存储区域1对1地对应的方式将分配给作为母机的虚拟计算机的存储区域映射到新生成的虚拟计算机的存储区域映射,从而生成新的虚拟计算机。另外,在新生成虚拟计算机后,以写时复制方式管理作为母机的虚拟计算机的存储区域和新生成的虚拟计算机的存储区域。
子虚拟计算机通知模块362具有如下功能:在虚拟计算机生成模块361生成了新的子虚拟计算机(这里是子虚拟计算机302)的情况下,向在子虚拟计算机302上动作的保护任务生成模块342和任务调度变更模块343进行虚拟计算机是子虚拟计算机的通知。
作为向这些模块进行虚拟计算机是子虚拟计算机的通知的方法的一例,例如有:子虚拟计算机通知模块362将是子虚拟计算机之意的信息记录到指定的存储区域中、产生对虚拟计算机的中断、使这些模块参照记录在上述指定的区域中的信息的方法;例如在这些模块被调用而动作时,通过调用预先设定的函数来通知自模块所属的虚拟计算机是子虚拟计算机的方法等。
虚拟计算机调度模块363具有以下的3个功能。
功能1:在母虚拟计算机(这里是虚拟计算机301)为执行对象虚拟计算机的情况下,在从伪任务执行通知模块335进行开始了伪任务313的执行的通知时,将执行对象虚拟计算机从虚拟计算机301切换为该子虚拟计算机(这里是子虚拟计算机302)。
功能2:在子虚拟计算机(这里是子虚拟计算机302)为执行对象虚拟计算机的情况下,在从该母虚拟计算机(这里是虚拟计算机301)的伪任务执行通知模块335进行伪任务313的执行被中断的通知时,将执行对象虚拟计算机从子虚拟计算机302切换为该母虚拟计算机(这里是虚拟计算机301)。
功能3:在子虚拟计算机(这里是子虚拟计算机302)为执行对象虚拟计算机的情况下,在从执行中的子虚拟计算机302的保护任务结束通知模块344进行保护任务316的执行已结束的通知时,将执行对象虚拟计算机从子虚拟计算机302切换为该母虚拟计算机(这里是虚拟计算机301),对虚拟计算机301的操作系统(这里是第1OS321)进行保护任务316的执行已结束的通知。
虚拟计算机清除模块364具有在子虚拟计算机(这里是子虚拟计算机302)为执行对象虚拟计算机的情况下,在从保护任务结束通知模块344向虚拟计算机调度模块363进行保护任务316的执行已结束的通知时,如果虚拟计算机调度模块363将执行对象虚拟计算机从子虚拟计算机302切换为该母虚拟计算机(这里是虚拟计算机301),则使子虚拟计算机302清除。
这里,所谓使虚拟计算机清除,是指将作为对象的虚拟计算机从分时执行处理对象中排除,将分配给该虚拟计算机的存储区域释放。
以下,参照附图,说明上述结构的虚拟计算机系统100进行的动作。
<动作>
这里,说明虚拟计算机系统100进行的动作中的、作为特征性的动作的子虚拟计算机生成处理、子虚拟计算机清除处理和保护任务执行处理。
以下,假设虚拟计算机301没有从子虚拟计算机通知模块362接受到是子虚拟计算机的通知而进行说明。
<子虚拟计算机生成处理>
子虚拟计算机生成处理是虚拟计算机系统100生成用于执行保护任务的新的子虚拟计算机的处理。
图5是子虚拟计算机生成处理的流程图。
子虚拟计算机生成处理通过从在虚拟计算机(这里是虚拟计算机301)中被执行控制的任务对包含在该虚拟计算机中的操作系统(这里是第1OS321)请求保护对象应用程序的启动而开始。
来自被执行控制的任务的保护对象应用程序的启动请求例如通过由利用虚拟计算机系统100的用户操作输入装置131(参照图1)等而发生。
如果子虚拟计算机生成处理开始,则启动请求检测模块331(参照图3)参照存储的保护任务对应表336,检测被启动请求的应用程序是保护对象应用程序(步骤S500)。
于是,启动请求检测模块331向保护任务生成模块332和虚拟计算机生成模块361进行被请求了保护对象应用程序的启动的通知(步骤S510)。
虚拟计算机生成模块361如果从启动请求检测模块331进行被请求保护对象应用程序的启动的通知,则基于虚拟计算机301,以分叉方式生成新的子虚拟计算机302。并且,管理器351将所生成的子虚拟计算机302追加到执行控制对象虚拟计算机(步骤S520)。
然后,子虚拟计算机通知模块362向子虚拟计算机302的保护任务生成模块342和任务调度变更模块343进行本操作系统所属的虚拟计算机是子虚拟计算机的通知(步骤S530)。
另一方面,由于虚拟计算机301的保护任务生成模块332没有从子虚拟计算机通知模块362接受到本操作系统所属的虚拟计算机是子虚拟计算机的通知,所以如果从启动请求检测模块331进行被请求保护对象应用程序的启动的通知,则将伪程序启动,在虚拟计算机301内生成伪任务313(步骤S540)。
相对于此,子虚拟计算机302的保护任务生成模块342如果从子虚拟计算机通知模块362进行本操作系统所属的虚拟计算机是子虚拟计算机的通知,则将保护对象应用程序启动,在子虚拟计算机302内生成保护任务316(步骤S550)。并且,如果保护任务生成模块342生成保护任务316,则任务调度变更模块343将由第2OS322执行的任务限定于保护任务316(步骤S560)。
如果步骤S560的处理结束,则虚拟计算机系统100结束该子虚拟计算机生成处理。
<子虚拟计算机清除处理>
子虚拟计算机清除处理是虚拟计算机系统100将为了执行保护任务而生成的子虚拟计算机清除的处理。
图6是子虚拟计算机清除处理的流程图。
子虚拟计算机清除处理通过由保护任务结束通知模块344检测出在子虚拟计算机(这里是子虚拟计算机302)中执行的保护任务(这里是保护任务316)结束该处理而开始。
如果子虚拟计算机清除处理开始,则保护任务结束通知模块344检测到保护任务316的执行结束(步骤S600),向虚拟计算机调度模块363进行保护任务的执行已结束的通知(步骤S610)。
如果从保护任务结束通知模块344通知保护任务的执行已结束,则虚拟计算机调度模块363将执行对象虚拟计算机从子虚拟计算机302切换为虚拟计算机301,向第1OS321进行保护任务316的执行已结束的通知。并且,管理器351将子虚拟计算机302从作为执行控制对象虚拟计算机管理的虚拟计算机群中删除(步骤S620)。
如果虚拟计算机调度模块363将执行对象虚拟计算机从子虚拟计算机302切换为虚拟计算机301,则虚拟计算机清除模块364通过将分配给子虚拟计算机302的存储区域释放,将子虚拟计算机302清除(步骤S630)。
另一方面,如果从虚拟计算机调度模块363通知保护任务316的执行已结束,则第1OS321将执行的任务从伪任务313切换为其他任务,将伪任务313从执行控制对象任务中删除(步骤S640)。
如果步骤S640的处理结束,则虚拟计算机系统100结束该子虚拟计算机清除处理。
<保护任务执行处理>
保护任务执行处理是虚拟计算机系统100执行保护任务的处理。
图7是保护任务执行处理的流程图。
保护任务执行处理通过在母虚拟计算机(这里是虚拟计算机301)中开始执行伪任务313而开始。
在虚拟计算机301中,如果作为分时执行控制对象的伪任务313被开始执行(步骤S700),则伪任务执行通知模块335检测到伪任务被开始执行,向虚拟计算机调度模块363进行伪任务已开始执行的通知(步骤S710)。
如果从伪任务执行通知模块335进行伪任务已开始的执行的通知,则虚拟计算机调度模块363将执行对象虚拟计算机从虚拟计算机301切换为子虚拟计算机302(步骤S720)。
如果执行对象虚拟计算机切换为子虚拟计算机302,则子虚拟计算机302仅执行保护任务316(步骤S730)。
然后,在虚拟计算机301中,如果伪任务313的执行被中断(步骤S740),则伪任务执行通知模块335检测出伪任务的执行被中断,向虚拟计算机调度模块363进行伪任务的执行被中断的通知(步骤S750)。
这里,在虚拟计算机301中,作为伪任务313的执行被中断的情况的例子,例如有在虚拟计算机301中发生了对伪任务313以外的任务(这里是任务A311~任务K312)的中断的情况,例如在虚拟计算机301中伪任务313的时间分段结束的情况等。时间分段的结束例如通过由定时器104在从伪任务313的执行开始时刻起的经过时间超过了时间分段值的时点对处理器101产生中断来检测。
如果由伪任务执行通知模块335进行伪任务的执行被中断的通知,则虚拟计算机调度模块363将执行对象虚拟计算机从子虚拟计算机302切换为虚拟计算机301(步骤S760)。
另一方面,在虚拟计算机301中,将执行的任务从伪任务313切换为伪任务313以外的任务并执行(步骤S770)。
然后,如果再次在虚拟计算机301中将执行的任务从伪任务313以外的任务切换为伪任务313(步骤S780),则再次回到步骤S700的处理,重复步骤S700以下的处理。
图8是示意地表示在保护任务执行处理中由虚拟计算机系统100执行的任务的示意图。
在虚拟计算机301中,如果在时刻t1所执行的任务从伪任务313以外的任务切换为伪任务313,并伪任务313被开始执行(步骤S700),则伪任务的执行开始被通知到虚拟计算机调度模块363(步骤S710),所执行的虚拟计算机从虚拟计算机301切换为子虚拟计算机302(步骤S720),在子虚拟计算机302中仅执行保护任务316(步骤S730)。
然后,在虚拟计算机301中,如果在时刻t2伪任务313成为执行中断(步骤S740),则伪任务的执行中断被通知到虚拟计算机调度模块(步骤S750),所执行的虚拟计算机从子虚拟计算机302切换为虚拟计算机301(步骤S760),在虚拟计算机301中,所执行的任务从伪任务313切换为伪任务313以外的任务(步骤S770)。
<多个保护对象应用程序被请求启动的情况>
到此为止,以被请求启动的保护对象应用程序是1个的情况为中心进行了说明。但是,在有多个保护对象应用程序的情况下,有时可能有多个保护对象应用程序被请求启动。此时,按被请求启动的每个保护对象应用程序,生成用于执行该保护对象应用程序的子虚拟计算机。
图9是表示在相互不同的多个保护对象应用程序被请求启动的情况下、在某时刻t5在处理器101上成为执行对象的模块的框图。
该图表示与在虚拟计算机901中被请求启动的相互不同的多个保护对象应用程序各自对应地生成用于执行保护对象应用程序的多个子虚拟计算机(这里是子虚拟计算机A902、子虚拟计算机B903等)的状态。
如该图所示,在虚拟计算机901中,与被请求启动的多个保护对象应用程序各自对应的保护任务(这里是保护任务A917、保护任务B920等)被相互独立的子虚拟计算机(这里是子虚拟计算机A902、子虚拟计算机B903等)执行。
<考察>
以下,使用具体例对虚拟计算机系统100的动作进行考察。
作为具体例,考虑在与任务A311(参照图3)对应的应用程序和与任务L314对应的应用程序各自中包含有攻击与保护任务316对应的保护对象应用程序的恶意软件的情况。
在虚拟计算机301中,任务A311能够成为执行对象,但即使从执行中的任务A311请求保护对象应用程序的启动,也由保护任务生成模块332代替保护对象应用程序而启动伪程序。由此,保护对象应用程序不会被启动。
因而,在虚拟计算机301中,保护对象应用程序不会从任务A311受到攻击。
此外,在子虚拟计算机302中,通过保护对象应用程序的启动而生成保护任务316,但保护任务316以外的任务通过任务调度变更模块343不会成为执行对象。即,在子虚拟计算机302中,任务L314不会被执行。
因而,在子虚拟计算机302中,保护对象应用程序不会从任务L314受到攻击。
这样,有关本实施方式1的虚拟计算机系统100即使在虚拟计算机当作执行对象的应用程序中包含有攻击保护对象应用程序的恶意软件的情况下,也能够将由该恶意软件攻击保护对象应用程序的危险性抑制得比以往低。
此外,有关本实施方式1的虚拟计算机系统100由于在作为母机的虚拟计算机中执行保护任务以外的任务、在作为子机的虚拟计算机中仅执行保护任务,所以在作为母机的虚拟计算机中执行的任务与作为子机的虚拟计算机中执行的任务不会重复。
<实施方式2>
<概要>
以下,作为有关本发明的虚拟计算机系统的一例,对将实施方式1的虚拟计算机系统100的一部分变形的变形虚拟计算机系统进行说明。
有关实施方式2的变形虚拟计算机系统其硬件结构为与有关实施方式1的虚拟计算机系统100同样的结构,但执行的软件的一部分被从有关实施方式1的虚拟计算机系统100变形。
有关实施方式1的虚拟计算机系统100是操作系统(例如第1OS321)所包含的伪任务执行通知模块(例如伪任务执行通知模块335)检测伪任务的执行开始、向虚拟计算机调度模块363通知的结构的例子,而有关实施方式2的变形虚拟计算机系统是伪任务自身将自伪任务开始执行的情况经由操作系统向虚拟计算机调度模块通知的结构的例子。
以下,对于有关本实施方式2的变形虚拟计算机系统的结构,以与有关实施方式1的虚拟计算机系统的不同点为中心,参照附图进行说明。
<硬件结构>
变形虚拟计算机系统为与有关实施方式1的虚拟计算机系统100同样的硬件结构。由此,这里省略说明。
此外,以下,有关构成变形虚拟计算机系统的硬件的各构成要素的说明,使用与构成有关实施方式1的虚拟计算机系统100的硬件的各构成要素相同的符号来进行。
<程序模块结构>
图10是表示在某时刻t0在处理器101上成为执行对象的模块的框图。
在该图中,模块群1000是在处理器101中成为执行对象的模块的集合,包含在模块群1000中的模块分别保存在ROM102或RAM103的存储区域中。
模块群1000是从有关实施方式1的模块群300中将伪任务313变更为伪任务1013、追加调度任务1014、将伪任务执行通知模块335和伪任务执行通知模块345删除、将任务调度变更模块333、任务调度变更模块343、保护任务生成模块332、保护任务生成模块342和虚拟计算机调度模块363分别变更为任务调度变更模块1033、任务调度变更模块1043、保护任务生成模块1032、保护任务生成模块1042和虚拟计算机调度模块1063的结构。
此外,随着任务调度变更模块333和保护任务生成模块332分别被变更为任务调度变更模块1033和保护任务生成模块1032,第1OS321被变形为第1OS1021,随着任务调度变更模块343和保护任务生成模块342分别被变更为任务调度变更模块1043和保护任务生成模块1042,第2OS322被变形为第1OS1022。
进而,随着伪任务313被变更为伪任务1013、第1OS321被变更为第1OS1021,虚拟计算机301被变形为虚拟计算机1001,随着追加调度任务1014、第2OS322被变更为第2OS1022,子虚拟计算机302被变形为子虚拟计算机1002。
并且,随着虚拟计算机调度模块363被变更为虚拟计算机调度模块1063,管理器351被变更为管理器1051。
图11(a)是表示与伪任务1013对应的伪程序1113的结构的程序结构图。
有关实施方式1的伪任务313是对应的伪程序例如为由重复NOP的无限循环构成的程序这样的、不会产生新的任务的例如由重复NOP的无限循环构成的程序。相对于此,有关实施方式2的伪任务1013的对应的伪程序1113如图11(a)所示由第1部分1121和第2部分1122构成。
第1部分1121是经由执行控制与自伪程序对应的伪任务(这里是伪任务1013)的操作系统(这里是第1OS1021)向管理器1051所包含的虚拟计算机调度模块1063进行伪任务的执行开始的通知的记述。
第2部分1122是对执行控制自伪任务的操作系统(这里是第1OS1021)请求将分配给自伪任务的时间分段放弃、将执行的任务从自伪任务切换为其他任务的记述。
图11(b)表示与调度任务1014对应的调度程序1117的结构。
调度任务1014的对应的调度程序1117如图11(b)所示由第1部分1131和第2部分1132构成。
第1部分1131对执行控制自调度任务的操作系统(这里是第2OS1022)请求将分配给自调度任务的时间分段放弃、将执行的任务从自调度任务切换为其他任务的记述。
第2部分1132是经由执行控制与自调度程序对应的调度任务(这里是调度任务1014)的操作系统(这里是第2OS1022)对管理器1051所包含的虚拟计算机调度模块1063请求将执行对象虚拟计算机从自任务所属的子虚拟计算机(这里是子虚拟计算机1002)切换为作为母机的虚拟计算机(这里是虚拟计算机1001)的记述。
再次回到图10,继续说明在处理器101上成为执行对象的模块群。
保护任务生成模块1032是从有关实施方式1的保护任务生成模块332将功能1变形为以下的变形功能1的模块。
变形功能1:在从管理器1051所包含的子虚拟计算机通知模块362接受到本操作系统所属的虚拟计算机(这里是虚拟计算机1001)是子虚拟计算机的通知的情况下,将保护对象应用程序和调度程序启动,在本操作系统所属的虚拟计算机(这里是虚拟计算机1001)内分别生成保护任务(这里是保护任务316)和调度任务(这里是调度任务1014)。
任务调度变更模块1033是从有关实施方式1的任务调度变更模块333将具有的功能变形为以下的两个变形功能的模块。
变形功能1:在从管理器1051所包含的子虚拟计算机通知模块362接受到本操作系统所属的虚拟计算机(这里是虚拟计算机1001)是子虚拟计算机的通知的情况下,在由本操作系统所包含的保护任务生成模块(这里是保护任务生成模块1032)生成保护任务和调度任务时,将由本操作系统(这里是第1OS1021)执行的任务限定为保护任务和调度任务的功能。
变形功能2:在保护任务和调度任务为执行控制对象的情况下,将之前执行的任务作为调度任务。
虚拟计算机调度模块1063是从有关实施方式1的虚拟计算机调度模块363将功能2变形为以下的变形功能2的模块。
变形功能2:在子虚拟计算机(这里是子虚拟计算机1002)为执行对象虚拟计算机的情况下,在经由该子虚拟计算机1002的操作系统(这里是第2OS1022)从调度任务(这里是调度任务1014)请求了将执行对象虚拟计算机从子虚拟计算机1002切换为作为母机的虚拟计算机(这里是虚拟计算机1001)时,将执行对象虚拟计算机从子虚拟计算机1002切换为虚拟计算机1001。
<动作>
在上述结构的变形虚拟计算机系统中,将有关实施方式1的虚拟计算机系统100进行的特征性的动作中的子虚拟计算机生成处理和保护任务执行处理变形而进行。以下,对这些动作,以与有关实施方式1的虚拟计算机系统进行的动作的不同点为中心,参照附图进行说明。
这里,以下假设虚拟计算机1001没有从子虚拟计算机通知模块362接受到是子虚拟计算机的通知而进行说明。
<变形子虚拟计算机生成处理>
变形子虚拟计算机生成处理是变形虚拟计算机系统生成用于执行保护任务的新的子虚拟计算机的处理,是将有关实施方式1的子虚拟计算机生成处理的一部分变形的处理。
图12是变形子虚拟计算机生成处理的流程图。
变形子虚拟计算机生成处理与有关实施方式1的子虚拟计算机生成处理同样,通过从在虚拟计算机(这里是虚拟计算机1001)中执行控制的任务对包含在该虚拟计算机中的操作系统(这里是第1OS1021)请求保护对象应用程序的启动而开始。
步骤S1200~步骤S1240的处理是与有关实施方式1的子虚拟计算机生成处理中的步骤S500~步骤S540的处理同样的处理。由此,这里省略这些步骤的说明。
如果从子虚拟计算机通知模块362进行本操作系统所属的虚拟计算机是子虚拟计算机的通知,则子虚拟计算机1002的保护任务生成模块342将保护对象应用程序和调度程序启动,在子虚拟计算机1002内生成保护任务316和调度任务1014(步骤S1250)。并且,如果保护任务生成模块342生成保护任务316和调度任务1014,则任务调度变更模块343将由第2OS1022执行的任务限定于保护任务316和调度任务1014(步骤S1260)。
如果步骤S1260的处理结束,则变形虚拟计算机系统结束该变形子虚拟计算机生成处理。
<变形保护任务执行处理>
变形子虚拟计算机生成处理是变形虚拟计算机系统生成用于执行保护任务的新的子虚拟计算机的处理,是将有关实施方式1的子虚拟计算机生成处理的一部分变形的处理。
图13是变形保护任务执行处理的流程图。
变形保护任务执行处理与有关实施方式1的保护任务执行处理同样,通过在母虚拟计算机(这里是虚拟计算机1001)中伪任务1013被开始执行而开始。
在虚拟计算机1001中,如果作为分时执行控制对象的伪任务1013被开始执行(步骤S1300),则伪任务1013进行与对应的伪程序1113的第1部分1121对应的处理,经由第1OS1021向管理器1051所包含的虚拟计算机调度模块1063进行伪任务的执行已开始的通知(步骤S1305)。
如果经由第1OS1021进行伪任务的执行已开始的通知,则虚拟计算机调度模块1063将虚拟计算机1001的执行暂时中断,将执行对象虚拟计算机从虚拟计算机1001切换为子虚拟计算机1002(步骤S1310)。
如果将执行对象虚拟计算机切换为子虚拟计算机1002,则子虚拟计算机1002首先开始调度任务1014的执行(步骤S1315)。
如果调度任务1014的执行开始,则调度任务1014进行与对应的调度程序1117的第1部分1131对应的处理,对第2OS1022请求将分配给自调度任务的时间分段放弃、将执行的任务从自调度任务切换为其他任务(即,这里是保护任务316)(步骤S1320)。
第2OS1022如果被请求所执行的任务的切换,则将调度任务1014的执行暂时中断,将执行的任务从调度任务1014切换为保护任务316,执行保护任务316(步骤S1325)。
然后,第2OS1022如果经过与分配给调度任务1014的时间分段值对应的时间(步骤S1330),则将执行的任务从保护任务316再次切换为调度任务1014,开始执行被中断的调度任务1014(步骤S1335)。
如果调度任务1014再次被执行,则调度任务1014进行与对应的调度程序1117的第2部分1132对应的处理,经由第2OS1022对管理器1051所包含的虚拟计算机调度模块1063请求将执行对象虚拟计算机从子虚拟计算机1002切换为虚拟计算机1001(步骤S1340)。
虚拟计算机调度模块1063如果经由第2OS1022有将执行对象虚拟计算机从子虚拟计算机1002切换为虚拟计算机1001的请求,则将执行对象虚拟计算机从子虚拟计算机1002切换为虚拟计算机1001(步骤S1345)。
如果执行对象虚拟计算机被切换为虚拟计算机1001,则虚拟计算机1001开始执行被中断的伪任务1013(步骤S1350)。
如果伪任务1013再次被执行,则伪任务1013进行与对应的伪程序1113的第2部分1122对应的处理,对第1OS1021请求将分配给自伪任务的时间分段放弃、将执行的任务从自伪任务切换为其他任务(步骤S1355)。
第2OS1022如果被请求执行的任务的切换,则将执行的任务从伪任务1013切换为伪任务1013以外的任务并执行(步骤S1360)。
然后,如果再次在虚拟计算机1001中所执行的任务从伪任务1013以外的任务切换为伪任务1013(步骤S1365),则再次回到步骤S1300的处理,重复步骤S1300以下的处理。
图14是示意地表示在变形保护任务执行处理中由变形虚拟计算机系统执行的任务的示意图。
在虚拟计算机301中,如果在时刻t1所执行的任务从伪任务1013以外的任务切换为伪任务1013、伪任务1013被开始执行(步骤S1300),则对虚拟计算机调度模块1063进行伪任务的执行已开始的通知(步骤S1305),执行的虚拟计算机从虚拟计算机1001切换为子虚拟计算机1002(步骤S1310),在子虚拟计算机1002中执行调度任务1014(步骤S1315)。
如果调度任务1014被执行,则第2OS1022被请求将执行的任务切换为保护任务316(步骤S1320),开始执行保护任务316(步骤S1325)。
然后,如果在时刻t2经过与分配给保护任务的时间分段值对应的时间(步骤S1330),则第2OS1022将执行的任务切换为调度任务1014并执行(步骤S1335),对虚拟计算机调度模块1063进行请求以将执行对象虚拟计算机切换为虚拟计算机1001(步骤S1340),执行的虚拟计算机从子虚拟计算机1002切换为虚拟计算机1001(步骤S1345),在虚拟计算机1001中执行伪任务1013(步骤S1350)。
如果伪任务1013被执行,则第1OS1021被请求将执行的任务切换为其他任务(步骤S1355),所执行的任务切换为其他任务(步骤S1360)。
<总结>
上述有关实施方式2的变形虚拟计算机系统与有关实施方式1的虚拟计算机系统100同样,即使在虚拟计算机当作执行对象的应用程序中包含有攻击保护对象应用程序的恶意软件的情况下,也能够将由该恶意软件攻击保护对象应用程序的危险性抑制得比以往低。
此外,有关实施方式2的变形虚拟计算机系统与有关本实施方式1的虚拟计算机系统100同样,由作为母机的虚拟计算机执行的任务与由作为子机的虚拟计算机执行的任务不会重复。
<补充>
以上,作为有关本发明的虚拟计算机系统的一实施方式,在实施方式1、实施方式2中,对两个虚拟计算机系统的例子进行了说明,但也可以如以下这样变形,本发明当然不限定于在上述实施方式中示出的虚拟计算机系统。
(1)在实施方式1中,对虚拟计算机系统100具备1个处理器的情况下的例子进行了说明,但只要管理器能够进行多个虚拟计算机的执行控制,处理器的数量并不一定需要限定于1个,例如也可以是2个、3个等的多个。在处理器的数量是多个的情况下,管理器不需要是一定将虚拟计算机的执行以分时进行的结构,也可以是使多个虚拟计算机并行地执行的结构。
(2)在实施方式1中,对处理器101、ROM102、RAM103、定时器104、内部总线120、第1接口121、第2接口122、和第3接口123集成在1个集成电路110中的情况下的例子进行了说明,但并不一定需要将这些电路集成在1个集成电路中。例如,也可以是将处理器101集成在第1集成电路中、将其他电路集成在第2集成电路中的结构,例如也可以是将各电路分别集成在相互不同的集成电路中的结构。
进而,集成电路110也可以通过在制造后能够进行功能性的编程的FPGA(Field Programmable Gate Array)实现,也可以通过能够进行功能的再构成的可重构处理器实现。
(3)在实施方式1中,以处理器101具备两个动作模式的结构的情况为例进行了说明,但只要是能够以与执行操作系统的模式同等或其以上的较高的特权模式执行管理器的结构,动作模式的数量并不需要限定于两个,例如也可以是3个以上。在此情况下,能够将执行管理器的动作模式设为比执行操作系统高的特权模式。
(4)在实施方式1中,以通过分叉形式进行虚拟计算机的生成的结构的情况为例进行了说明。这是为了通过将虚拟计算机的生成以分叉形式进行来有效地利用RAM103的存储区域。
但是,只要能够容许RAM103的存储区域的利用效率的非效率性,则在基于作为母机的虚拟计算机来生成子虚拟计算机的情况下,并不一定需要以分叉形式进行。
作为一例,可以考虑通过以分配给作为母机的虚拟计算机的存储区域与分配给新生成的虚拟计算机的存储区域1对1地对应的方式将分配给作为母机的虚拟计算机的存储区域复制到新生成的虚拟计算机的存储区域,来生成新的虚拟计算机的形式等。
此外,像这样在子虚拟计算机的存储区域是从母虚拟计算机的存储区域复制的区域等情况下,这些存储区域并不一定需要以写时复制方式管理。
(5)在实施方式1中,说明了启动请求检测模块(例如启动请求检测模块331)、保护任务生成模块(例如保护任务生成模块332)、任务调度变更模块(例如任务调度变更模块333)、保护任务结束通知模块(例如保护任务结束通知模块334)、伪任务执行通知模块(例如伪任务执行通知模块335)包含在虚拟计算机内的操作系统(例如第1OS321)中的结构的例子,但只要在虚拟计算机系统100中实现与由这些模块实现的功能同等的功能,则这些模块并不一定需要包含在虚拟计算机内的操作系统中,例如也可以是包含在管理器351中的结构。
例如,与伪任务执行通知模块335同等的功能通过如下结构来实现,即:设定为如果伪任务313被执行,则对作为写入禁止区域的规定的存储区域进行写入,管理器351具备对因向上述规定的存储区域的写入违反而发生的例外进行补充的模块。
(6)以下,再对有关本发明的一实施方式的虚拟计算机系统的结构及其变形例和各效果进行说明。
(a)有关本发明的一实施方式的虚拟计算机系统,是具备处理器和在该处理器上执行、用于使该处理器进行多个虚拟计算机的执行控制的管理器的虚拟计算机系统,其特征在于,上述管理器具有:执行检测部,用于检测在虚拟计算机中要新执行规定的应用程序;以及虚拟计算机生成部,用于在由上述处理器执行的上述执行检测部检测到在第1虚拟计算机中要新执行上述规定的应用程序的情况下,基于该第1虚拟计算机,生成用于执行上述规定的应用程序的新的第2虚拟计算机;由上述处理器进行执行控制的多个虚拟计算机分别具有执行控制部,该执行控制部用于在上述第2虚拟计算机中使上述处理器仅限于执行包括上述规定的应用程序的指定程序群,在上述第1虚拟计算机中使上述处理器代替上述规定的应用程序而执行规定的伪程序。
根据具备上述结构的有关本实施方式的虚拟计算机系统,将已认证应用程序作为规定的应用程序,将未认证应用程序不包含于指定程序群中,由此在执行已认证应用程序的第2虚拟计算机中,未认证应用程序不会被执行,进而,在未认证应用程序有可能被执行的第1虚拟计算机中,已认证应用程序不会被执行。
因而,即使在虚拟计算机当作执行对象的应用程序中混合存在已认证应用程序和未认证应用程序的情况下,也能够将因包含在未认证应用程序中的恶意软件被执行而导致已认证应用程序被攻击的危险性抑制得比以往低。
图15是表示上述变形例的虚拟计算机系统1500的结构的结构图。
如该图所示,虚拟计算机系统1500具备处理器1510和管理器1520。
处理器1510具备执行管理器1520的功能。作为一例,作为实施方式1的处理器101实现。
管理器1520具有通过在处理器1510上被执行而使处理器1510进行多个虚拟计算机(这里,第1虚拟计算机1530和第2虚拟计算机1540)的执行控制的功能。作为一例,作为实施方式1的管理器351实现。此外,该管理器1520具有执行检测部1521和虚拟计算机生成部1522。
执行检测部1521具有检测在虚拟计算机中要新执行规定的应用程序的功能。作为一例,作为实施方式1的虚拟计算机生成模块361中的、实现从虚拟计算机的启动请求检测模块331受理被请求保护对象应用程序的启动的通知的功能的部分实现。
虚拟计算机生成部1522具有在由处理器1510执行的执行检测部1521检测到在第1虚拟计算机1530中要新执行规定的应用程序的情况下、基于第1虚拟计算机1530生成用于执行规定的应用程序的新的第2虚拟计算机1540的功能。
第1虚拟计算机1530是由处理器1510进行执行控制的多个虚拟计算机中的1个。作为一例,作为实施方式1的虚拟计算机301实现。此外,该第1虚拟计算机1530具有执行控制部1531。
执行控制部1531具有在第2虚拟计算机1540中使处理器1510仅限于执行包括上述规定的应用程序的指定程序群、在第1虚拟计算机1530中使处理器1510代替上述规定的应用程序而执行规定的伪程序的功能。作为一例,作为由实施方式1的保护任务生成模块342和任务调度变更模块343构成的模块实现。
第2虚拟计算机1540是由处理器1510进行执行控制的多个虚拟计算机中的1个。作为一例,作为实施方式1的子虚拟计算机302实现。此外,该第2虚拟计算机1540具备具有与执行控制部1531同样的功能的执行控制部1532。
(b)此外,也可以是,上述虚拟计算机生成部在基于上述第1虚拟计算机生成新的上述第2虚拟计算机的情况下,以基于分配给上述第1虚拟计算机的存储区域的分叉方式进行对上述第2虚拟计算机的存储区域的分配。
通过做成这样的结构,第1虚拟计算机和第2虚拟计算机共用所利用的存储区域的一部分。由此,能够有效利用存储区域。
(c)此外,也可以是,上述管理器具有虚拟计算机调度部,该虚拟计算机调度部用于在成为上述处理器的执行对象的上述第1虚拟计算机中上述规定的伪程序被开始执行的情况下,在上述第2虚拟计算机已被生成时,将成为上述处理器的执行对象的虚拟计算机从上述第1虚拟计算机变更为上述第2虚拟计算机。
通过做成这样的结构,能够以第1虚拟计算机中的伪程序的执行的开始为契机,将作为执行对象的虚拟计算机从第1虚拟计算机切换为第2虚拟计算机。
(d)此外,也可以是,上述虚拟计算机调度部在成为上述处理器的执行对象的上述第2虚拟计算机中上述规定的应用程序结束执行的情况下,将成为上述处理器的执行对象的虚拟计算机从上述第2虚拟计算机变更为上述第1虚拟计算机。
通过做成这样的结构,能够以第2虚拟计算机中的规定的应用程序的执行的结束为契机,将作为执行对象的虚拟计算机从第2虚拟计算机切换为第1虚拟计算机。
(e)此外,也可以是,上述管理器具有虚拟计算机清除部,该虚拟计算机清除部用于在成为上述处理器的执行对象的上述第2虚拟计算机中上述规定的应用程序结束执行的情况下,在上述虚拟计算机调度部将上述处理器的执行对象虚拟计算机从上述第2虚拟计算机变更为了上述第1虚拟计算机时,将使上述第2虚拟计算机清除。
通过做成这样的结构,能够以第2虚拟计算机中的规定的应用程序的执行的结束为契机,将第2虚拟计算机清除。
(f)此外,也可以是,上述执行控制部具有用于使上述处理器以使用时间分段值进行的多任务执行控制方法执行程序的执行控制的多任务执行控制部;上述多任务执行控制部在由上述处理器执行的上述执行控制部使上述处理器代替上述规定的应用程序而执行上述规定的伪程序的情况下,将与分配给上述规定的应用程序的时间分段值相同的值的时间分段值分配给上述规定的伪程序;上述虚拟计算机调度部在从上述第1虚拟计算机中上述规定的伪程序成为上述处理器的执行对象的时刻起经过了由分配给上述规定的伪程序的时间分段值表示的时间的情况下,当上述第2虚拟计算机成为了上述处理器的执行对象虚拟计算机时,将上述处理器的执行对象虚拟计算机从上述第2虚拟计算机变更为上述第1虚拟计算机。
通过做成这样的结构,能够以从在第1虚拟计算机中规定的伪程序被执行后起经过由分配给规定的应用程序的时间分段值表示的期间为契机,将执行的虚拟计算机从第2虚拟计算机切换为第1虚拟计算机。
(g)此外,也可以是,具有子虚拟计算机通知部,该子虚拟计算机通知部用于在由上述处理器执行的上述虚拟计算机生成部生成了上述第2虚拟计算机的情况下向上述第2虚拟计算机的上述执行控制部进行是子虚拟计算机的通知;上述执行控制部具有执行开始部,该执行开始部用于在上述第2虚拟计算机中被上述子虚拟计算机通知部通知是子虚拟计算机时,使上述处理器在上述第2虚拟计算机中启动上述规定的应用程序。
通过做成这样的结构,如果生成第2虚拟计算机,则在所生成的第2虚拟计算机中启动规定的应用程序。
(h)此外,也可以是,上述指定程序群仅由不包含攻击上述规定的应用程序的恶意软件的程序构成。
通过做成这样的结构,能够在第2虚拟计算机中消除来自恶意软件的对规定的应用程序的攻击。
(i)此外,也可以是,由上述处理器进行执行控制的多个虚拟计算机分别具有通知部,该通知部检测在本虚拟计算机中要新执行上述规定的应用程序,将要新执行上述规定的应用程序的情况通知给上述执行检测部;上述执行检测部通过被由上述处理器执行的上述通知部通知要新执行上述规定的应用程序,来进行要新执行上述规定的应用程序的检测。
通过做成这样的结构,能够在该虚拟计算机中检测在虚拟计算机中要新执行规定的应用程序的情况。
(j)此外,也可以是,由上述处理器进行执行控制的多个虚拟计算机分别具有伪程序执行开始通知部,该伪程序执行开始通知部用于在本虚拟计算机中由上述处理器开始执行上述规定的伪程序的情况下,向上述虚拟计算机调度部通知在本虚拟计算机中由上述处理器开始执行上述规定的伪程序;上述虚拟计算机调度部通过被由上述处理器执行的上述第1虚拟计算机的上述伪程序执行开始通知部通知在本虚拟计算机中由上述处理器开始执行上述规定的伪程序,来检测在上述第1虚拟计算机中上述规定的伪程序被开始执行。
通过做成这样的结构,能够在该虚拟计算机中检测在虚拟计算机中开始执行规定的伪程序的情况。
(k)此外,也可以是,由上述处理器进行执行控制的多个虚拟计算机分别具有执行结束通知部,该执行结束通知部用于在本虚拟计算机中上述规定的应用程序结束执行的情况下,向上述虚拟计算机调度部通知在本虚拟计算机中上述规定的应用程序结束执行;上述虚拟计算机调度部通过被由上述处理器执行的上述第2虚拟计算机的上述执行结束通知部通知在本虚拟计算机中上述规定的应用程序结束执行,来检测在上述第2虚拟计算机中上述规定的应用程序结束执行。
通过做成这样的结构,能够在该虚拟计算机中检测在虚拟计算机中规定的应用程序的执行结束的情况。
工业实用性
本发明能够在虚拟计算机系统中广泛使用。
符号说明
100虚拟计算机系统
110集成电路
101处理器
102ROM
103RAM
104定时器
120内部总线
131输入装置
132输出装置
133硬盘装置
300模块群
301虚拟计算机
302子虚拟计算机
313伪任务
316保护任务
321第1OS
322第2OS
331、341启动请求检测模块
332、342保护任务生成模块
333、343任务调度变更模块
334、344保护任务结束通知模块
335、345伪任务执行通知模块
336、346保护任务对应表
351管理器
361虚拟计算机生成模块
362子虚拟计算机通知模块
363虚拟计算机调度模块
364虚拟计算机清除模块

Claims (14)

1.一种虚拟计算机系统,具备:
处理器;以及
管理器,在该处理器上执行,用于使该处理器进行多个虚拟计算机的执行控制;
上述虚拟计算机系统的特征在于,
上述管理器具有:
执行检测部,用于检测在虚拟计算机中要新执行规定的应用程序;以及
虚拟计算机生成部,用于在由上述处理器执行的上述执行检测部检测到在第1虚拟计算机中要新执行上述规定的应用程序的情况下,基于该第1虚拟计算机,生成用于执行上述规定的应用程序的新的第2虚拟计算机;
由上述处理器进行执行控制的多个虚拟计算机分别具有执行控制部,该执行控制部用于在上述第2虚拟计算机中使上述处理器仅限于执行包括上述规定的应用程序的指定程序群,在上述第1虚拟计算机中使上述处理器代替上述规定的应用程序而执行规定的伪程序。
2.如权利要求1所述的虚拟计算机系统,其特征在于,
上述虚拟计算机生成部在基于上述第1虚拟计算机生成新的上述第2虚拟计算机的情况下,以基于分配给上述第1虚拟计算机的存储区域的分叉方式进行对上述第2虚拟计算机的存储区域的分配。
3.如权利要求2所述的虚拟计算机系统,其特征在于,
上述管理器具有虚拟计算机调度部,该虚拟计算机调度部用于在成为上述处理器的执行对象的上述第1虚拟计算机中上述规定的伪程序被开始执行的情况下,在上述第2虚拟计算机已被生成时,将成为上述处理器的执行对象的虚拟计算机从上述第1虚拟计算机变更为上述第2虚拟计算机。
4.如权利要求3所述的虚拟计算机系统,其特征在于,
上述虚拟计算机调度部在成为上述处理器的执行对象的上述第2虚拟计算机中上述规定的应用程序结束执行的情况下,将成为上述处理器的执行对象的虚拟计算机从上述第2虚拟计算机变更为上述第1虚拟计算机。
5.如权利要求4所述的虚拟计算机系统,其特征在于,
上述管理器具有虚拟计算机清除部,该虚拟计算机清除部用于在成为上述处理器的执行对象的上述第2虚拟计算机中上述规定的应用程序结束执行的情况下,在上述虚拟计算机调度部将上述处理器的执行对象虚拟计算机从上述第2虚拟计算机变更为了上述第1虚拟计算机时,将上述第2虚拟计算机清除。
6.如权利要求5所述的虚拟计算机系统,其特征在于,
上述执行控制部具有多任务执行控制部,该多任务执行控制部用于使上述处理器以利用时间分段值进行的多任务执行控制方法执行程序的执行控制;
上述多任务执行控制部在由上述处理器执行的上述执行控制部使上述处理器代替上述规定的应用程序而执行上述规定的伪程序的情况下,将与分配给上述规定的应用程序的时间分段值相同的值的时间分段值分配给上述规定的伪程序;
上述虚拟计算机调度部在从上述第1虚拟计算机中上述规定的伪程序成为上述处理器的执行对象的时点起经过了由分配给上述规定的伪程序的时间分段值表示的时间的情况下,在上述第2虚拟计算机成为了上述处理器的执行对象虚拟计算机时,将上述处理器的执行对象虚拟计算机从上述第2虚拟计算机变更为上述第1虚拟计算机。
7.如权利要求6所述的虚拟计算机系统,其特征在于,
具有子虚拟计算机通知部,该子虚拟计算机通知部用于在由上述处理器执行的上述虚拟计算机生成部生成了上述第2虚拟计算机的情况下,向上述第2虚拟计算机的上述执行控制部通知是子虚拟计算机;
上述执行控制部具有执行开始部,该执行开始部用于在上述第2虚拟计算机中被上述子虚拟计算机通知部通知是子虚拟计算机时,使上述处理器在上述第2虚拟计算机中启动上述规定的应用程序。
8.如权利要求7所述的虚拟计算机系统,其特征在于,
上述指定程序群仅由不包含攻击上述规定的应用程序的恶意软件的程序构成。
9.如权利要求7所述的虚拟计算机系统,其特征在于,
由上述处理器进行执行控制的多个虚拟计算机分别具有通知部,该通知部检测在本虚拟计算机中要新执行上述规定的应用程序,向上述执行检测部通知要新执行上述规定的应用程序;
上述执行检测部通过被由上述处理器执行的上述通知部通知要新执行上述规定的应用程序,来进行要新执行上述规定的应用程序的检测。
10.如权利要求7所述的虚拟计算机系统,其特征在于,
由上述处理器进行执行控制的多个虚拟计算机分别具有伪程序执行开始通知部,该伪程序执行开始通知部用于在本虚拟计算机中由上述处理器开始执行上述规定的伪程序的情况下,向上述虚拟计算机调度部通知在本虚拟计算机中由上述处理器开始执行上述规定的伪程序;
上述虚拟计算机调度部通过被由上述处理器执行的上述第1虚拟计算机的上述伪程序执行开始通知部通知在本虚拟计算机中由上述处理器开始执行上述规定的伪程序,来检测在上述第1虚拟计算机中上述规定的伪程序被开始执行。
11.如权利要求7所述的虚拟计算机系统,其特征在于,
由上述处理器进行执行控制的多个虚拟计算机分别具有执行结束通知部,该执行结束通知部用于在本虚拟计算机中上述规定的应用程序结束执行的情况下,向上述虚拟计算机调度部通知在本虚拟计算机中上述规定的应用程序结束执行;
上述虚拟计算机调度部通过被由上述处理器执行的上述第2虚拟计算机的上述执行结束通知部通知在本虚拟计算机中上述规定的应用程序结束执行,来检测在上述第2虚拟计算机中上述规定的应用程序结束执行。
12.一种虚拟计算机控制方法,是控制虚拟计算机系统的方法,该虚拟计算机系统具备:
处理器;以及
管理器,在该处理器上执行,用于使该处理器进行多个虚拟计算机的执行控制;
上述虚拟计算机控制方法的特征在于,包括:
执行检测步骤,上述管理器检测在虚拟计算机中要新执行规定的应用程序;
虚拟计算机生成步骤,上述管理器在由上述处理器执行的上述执行检测步骤中检测到在第1虚拟计算机中要新执行上述规定的应用程序的情况下,基于该第1虚拟计算机,生成用于执行上述规定的应用程序的新的第2虚拟计算机;以及
执行控制步骤,由上述处理器进行执行控制的多个虚拟计算机分别在上述第2虚拟计算机中使上述处理器仅限于执行包括上述规定的应用程序的指定程序群,在上述第1虚拟计算机中使上述处理器代替上述规定的应用程序而执行规定的伪程序。
13.一种虚拟计算机控制程序,控制虚拟计算机系统,该虚拟计算机系统具备:
处理器;以及
管理器,在该处理器上执行,用于使该处理器进行多个虚拟计算机的执行控制;
上述虚拟计算机控制程序的特征在于,包括:
执行检测步骤,上述管理器检测在虚拟计算机中要新执行规定的应用程序;
虚拟计算机生成步骤,上述管理器在由上述处理器执行的上述执行检测步骤中检测到在第1虚拟计算机中要新执行上述规定的应用程序的情况下,基于该第1虚拟计算机,生成用于执行上述规定的应用程序的新的第2虚拟计算机;以及
执行控制步骤,由上述处理器进行执行控制的多个虚拟计算机分别在上述第2虚拟计算机中使上述处理器仅限于执行包括上述规定的应用程序的指定程序群,在上述第1虚拟计算机中使上述处理器代替上述规定的应用程序而执行规定的伪程序。
14.一种半导体集成电路,具备:
处理器;以及
管理器,在该处理器上执行,用于使该处理器进行多个虚拟计算机的执行控制;
上述半导体集成电路的特征在于,
上述管理器具有:
执行检测部,用于检测在虚拟计算机中要新执行规定的应用程序;以及
虚拟计算机生成部,用于在由上述处理器执行的上述执行检测部检测到在第1虚拟计算机中要新执行上述规定的应用程序的情况下,基于该第1虚拟计算机,生成用于执行上述规定的应用程序的新的第2虚拟计算机;
由上述处理器进行执行控制的多个虚拟计算机分别具有执行控制部,该执行控制部用于在上述第2虚拟计算机中使上述处理器仅限于执行包括上述规定的应用程序的指定程序群,在上述第1虚拟计算机中使上述处理器代替上述规定的应用程序而执行规定的伪程序。
CN201280001814.6A 2011-04-27 2012-02-21 虚拟计算机系统、虚拟计算机控制方法及半导体集成电路 Active CN102959555B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011-099701 2011-04-27
JP2011099701 2011-04-27
PCT/JP2012/001130 WO2012147252A1 (ja) 2011-04-27 2012-02-21 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路

Publications (2)

Publication Number Publication Date
CN102959555A true CN102959555A (zh) 2013-03-06
CN102959555B CN102959555B (zh) 2015-09-02

Family

ID=47071788

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280001814.6A Active CN102959555B (zh) 2011-04-27 2012-02-21 虚拟计算机系统、虚拟计算机控制方法及半导体集成电路

Country Status (4)

Country Link
US (1) US9460270B2 (zh)
JP (1) JP5852103B2 (zh)
CN (1) CN102959555B (zh)
WO (1) WO2012147252A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108256182A (zh) * 2018-01-02 2018-07-06 西安交通大学 一种动态可重构fpga的布局方法
WO2019001388A1 (zh) * 2017-06-28 2019-01-03 Oppo广东移动通信有限公司 支付类应用程序管理方法、装置及移动终端

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9769250B2 (en) 2013-08-08 2017-09-19 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state
US9838415B2 (en) 2011-09-14 2017-12-05 Architecture Technology Corporation Fight-through nodes for survivable computer network
US9766986B2 (en) * 2013-08-08 2017-09-19 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state
JP5998566B2 (ja) * 2012-03-27 2016-09-28 富士通株式会社 移動制御プログラム、移動制御方法および制御装置
JP5494727B2 (ja) * 2012-05-25 2014-05-21 横河電機株式会社 通信装置
US9069594B1 (en) 2012-12-27 2015-06-30 Emc Corporation Burst buffer appliance comprising multiple virtual machines
US20140283132A1 (en) * 2013-03-12 2014-09-18 International Business Machines Corporation Computing application security and data settings overrides
US9563457B2 (en) * 2013-11-18 2017-02-07 Bitdefender IPR Management Ltd. Enabling a secure environment through operating system switching
US9202046B2 (en) * 2014-03-03 2015-12-01 Bitdefender IPR Management Ltd. Systems and methods for executing arbitrary applications in secure environments
US10009292B2 (en) 2014-10-03 2018-06-26 International Business Machines Corporation Cloud independent tuning service for autonomously managed workloads
US11429442B2 (en) * 2015-06-29 2022-08-30 Vmware, Inc. Parallel and distributed computing using multiple virtual machines
US10007498B2 (en) 2015-12-17 2018-06-26 Architecture Technology Corporation Application randomization mechanism
US10412116B1 (en) 2015-12-17 2019-09-10 Architecture Technology Corporation Mechanism for concealing application and operation system identity
US10200406B1 (en) 2015-12-17 2019-02-05 Architecture Technology Corporation Configuration of application randomization mechanism
US10284592B1 (en) 2015-12-17 2019-05-07 Architecture Technology Corporation Application randomization mechanism
US10412114B1 (en) 2015-12-17 2019-09-10 Architecture Technology Corporation Application randomization mechanism
US10200401B1 (en) 2015-12-17 2019-02-05 Architecture Technology Corporation Evaluating results of multiple virtual machines that use application randomization mechanism
CN106919436B (zh) * 2015-12-25 2020-03-10 中国移动通信集团公司 Dalvik虚拟机实现多任务的方法、装置及虚拟机
US10394587B2 (en) * 2016-01-06 2019-08-27 International Business Machines Corporation Self-terminating or self-shelving virtual machines and workloads
US10613880B2 (en) * 2016-05-31 2020-04-07 International Business Machines Corporation State synchronized interactive software demonstration
JP6104447B1 (ja) 2016-10-31 2017-03-29 株式会社ソリトンシステムズ プログラム動作監視制御装置、分散オブジェクト生成管理装置、プログラム、及びプログラム動作監視システム
US10554685B1 (en) 2017-05-25 2020-02-04 Architecture Technology Corporation Self-healing architecture for resilient computing services
US11113075B2 (en) * 2018-11-14 2021-09-07 International Business Machines Corporation Launching a middleware-based application

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037089A1 (en) * 2001-08-15 2003-02-20 Erik Cota-Robles Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US20040010787A1 (en) * 2002-07-11 2004-01-15 Traut Eric P. Method for forking or migrating a virtual machine
JP2009238153A (ja) * 2008-03-28 2009-10-15 Nec Corp マルウェア対処システム、方法及びプログラム
WO2010032558A1 (ja) * 2008-09-19 2010-03-25 日本電気株式会社 プログラム入手・実行クライアント、プログラム入手・実行方法および記録媒体
CN101946252A (zh) * 2008-02-25 2011-01-12 松下电器产业株式会社 信息处理装置及其控制方法
CN101951411A (zh) * 2010-10-13 2011-01-19 戴元顺 云调度系统及方法以及多级云调度系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4072271B2 (ja) 1999-02-19 2008-04-09 株式会社日立製作所 複数のオペレーティングシステムを実行する計算機
US7472383B2 (en) * 2004-08-13 2008-12-30 Sun Microsystems, Inc. System and method for providing exceptional flow control in protected code through memory layers
US7958506B2 (en) * 2006-06-22 2011-06-07 Intel Corporation Time sliced interrupt processing on virtualized platform
US8307443B2 (en) * 2007-09-28 2012-11-06 Microsoft Corporation Securing anti-virus software with virtualization
US8239862B2 (en) * 2007-11-26 2012-08-07 Ricoh Company, Ltd. Apparatus, method, and computer program product for processing information
JP5405320B2 (ja) 2008-04-28 2014-02-05 パナソニック株式会社 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム
US20090300599A1 (en) * 2008-05-30 2009-12-03 Matthew Thomas Piotrowski Systems and methods of utilizing virtual machines to protect computer systems
US8438256B2 (en) * 2009-06-26 2013-05-07 Vmware, Inc. Migrating functionality in virtualized mobile devices
US20120144489A1 (en) * 2010-12-07 2012-06-07 Microsoft Corporation Antimalware Protection of Virtual Machines

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037089A1 (en) * 2001-08-15 2003-02-20 Erik Cota-Robles Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US20040010787A1 (en) * 2002-07-11 2004-01-15 Traut Eric P. Method for forking or migrating a virtual machine
CN101946252A (zh) * 2008-02-25 2011-01-12 松下电器产业株式会社 信息处理装置及其控制方法
JP2009238153A (ja) * 2008-03-28 2009-10-15 Nec Corp マルウェア対処システム、方法及びプログラム
WO2010032558A1 (ja) * 2008-09-19 2010-03-25 日本電気株式会社 プログラム入手・実行クライアント、プログラム入手・実行方法および記録媒体
CN101951411A (zh) * 2010-10-13 2011-01-19 戴元顺 云调度系统及方法以及多级云调度系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019001388A1 (zh) * 2017-06-28 2019-01-03 Oppo广东移动通信有限公司 支付类应用程序管理方法、装置及移动终端
CN108256182A (zh) * 2018-01-02 2018-07-06 西安交通大学 一种动态可重构fpga的布局方法
CN108256182B (zh) * 2018-01-02 2020-10-27 西安交通大学 一种动态可重构fpga的布局方法

Also Published As

Publication number Publication date
JPWO2012147252A1 (ja) 2014-07-28
JP5852103B2 (ja) 2016-02-03
WO2012147252A1 (ja) 2012-11-01
CN102959555B (zh) 2015-09-02
US20130097603A1 (en) 2013-04-18
US9460270B2 (en) 2016-10-04

Similar Documents

Publication Publication Date Title
CN102959555A (zh) 虚拟计算机系统、虚拟计算机控制方法、虚拟计算机控制程序及半导体集成电路
US20200301764A1 (en) Operating system on a computing system
CN102859502B (zh) 虚拟计算机系统、虚拟计算机控制方法、及半导体集成电路
US11809544B2 (en) Remote attestation for multi-core processor
US8898666B2 (en) Virtual machine system and virtual machine system control method for controlling program execution on a plurality of processors that have a plurality of privileged modes
CN108664780B (zh) 允许基于不同级别的解锁机制的各种设备访问
US7788669B2 (en) System for isolating first computing environment from second execution environment while sharing resources by copying data from first portion to second portion of memory
CN105612528B (zh) 虚拟机的虚拟安全模式
US20100005531A1 (en) Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features
US20180373878A1 (en) Secure boot for multi-core processor
US9916205B2 (en) Secure live virtual machine guest based snapshot recovery
KR101408524B1 (ko) 신뢰 플랫폼 모듈(tpm) 공유 방법 및 신뢰 플랫폼 모듈(tpm) 공유 시스템
CN104067223B (zh) 用于通过提供迟钝输入/输出抽象缩减平台引导时间的方法
CN110799979B (zh) 用于多核处理器的安全密钥存储
AU2005248713A2 (en) Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features
US8185913B1 (en) Manageability platform in an unified system
US20240333499A1 (en) Key management method, key management apparatus, key management device and storage medium
CN112464182A (zh) 一种移动设备管理的安全管控方法、装置、介质和设备
CN109684126B (zh) 用于arm设备的内存校验方法和执行内存校验的arm设备
US10963250B2 (en) Selectively suppressing time intensive instructions based on a control value
WO2015134295A1 (en) Operating system/hypervisor efficiencies for sub-divided privilege levels
CN109426563A (zh) 一种进程管理方法及装置
CN104317728A (zh) 一种安全复位存储设备的方法和装置
Wani et al. A Brief Survey on various Fault Tolerance Techniques in Cloud Computing Paradigm
KR20180093769A (ko) 전자 장치의 다중 프로세서 시스템 운영 방법 및 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MATSUSHITA ELECTRIC (AMERICA) INTELLECTUAL PROPERT

Free format text: FORMER OWNER: MATSUSHITA ELECTRIC INDUSTRIAL CO, LTD.

Effective date: 20141010

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20141010

Address after: Seaman Avenue Torrance in the United States of California No. 2000 room 200

Applicant after: PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AMERICA

Address before: Osaka Japan

Applicant before: Matsushita Electric Industrial Co.,Ltd.

C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: Seaman Avenue Torrance in the United States of California No. 20000 room 200

Applicant after: PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AMERICA

Address before: Seaman Avenue Torrance in the United States of California No. 2000 room 200

Applicant before: PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AMERICA

COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM:

C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20170119

Address after: American New York

Patentee after: Sun patent hosting Co.

Address before: Seaman Avenue Torrance the American city of California, No. 20000, room 200, 90503

Patentee before: PANASONIC INTELLECTUAL PROPERTY CORPORATION OF AMERICA