CN103201719A - 虚拟化计算环境中的设备仿真 - Google Patents

虚拟化计算环境中的设备仿真 Download PDF

Info

Publication number
CN103201719A
CN103201719A CN2011800537548A CN201180053754A CN103201719A CN 103201719 A CN103201719 A CN 103201719A CN 2011800537548 A CN2011800537548 A CN 2011800537548A CN 201180053754 A CN201180053754 A CN 201180053754A CN 103201719 A CN103201719 A CN 103201719A
Authority
CN
China
Prior art keywords
instruction
emulator
register
system supervisor
stored
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
CN2011800537548A
Other languages
English (en)
Other versions
CN103201719B (zh
Inventor
A·特雷格
S·本耶胡达
B-A·亚苏尔
M·法克特
E·博罗维克
Z·马舒尔斯基
K·梅特
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103201719A publication Critical patent/CN103201719A/zh
Application granted granted Critical
Publication of CN103201719B publication Critical patent/CN103201719B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Abstract

提供了用于优化虚拟化计算环境中的物理设备的操作的系统和方法。所述方法包括:监视在虚拟机(VM)的操作系统上运行的应用发出的指令,其中所述VM由系统管理程序托管,所述系统管理程序提供对连接到虚拟化计算环境的物理设备的访问;其中所述操作系统所支持的设备驱动器向所述系统管理程序所支持的仿真设备发出一个或多个指令,以便根据所发出的指令控制所述物理设备,其中所述仿真设备的寄存器在所述系统管理程序的存储器中实现,并且所述设备驱动器发出的指令存储在所述寄存器中,其中响应于获知所述指令存储在所述寄存器中,所述系统管理程序处理所述指令。

Description

虚拟化计算环境中的设备仿真
技术领域
本发明一般地涉及虚拟机,更具体地说,涉及一种用于优化在虚拟化环境中仿真的设备的数据操作的系统和方法。
背景技术
虚拟机(VM)是像物理机器那样执行程序的机器(即,计算机)的软件实现。通常,对虚拟化环境中的资源的访问与高开销水平关联,这是因为VM通常无法直接与虚拟化资源通信。托管VM的系统管理程序通常负责代表VM仿真所需的接口或驱动器。换言之,系统管理程序为VM提供虚拟平台,并监视VM的执行以及VM如何访问可用的硬件资源和设备。
例如,为使VM从虚拟化存储设备读取数据或将数据写入虚拟化存储设备,必须在VM与系统管理程序之间转移对读取或写入操作的控制。在完全仿真的情况下,VM并不知道仿真设备不是实际物理设备,因为系统管理程序以软件仿真接口。此类仿真将产生高开销。当访问设备时,如果需要在VM与系统管理程序之间间歇性地转移控制,则操作开销甚至更昂贵。
发明内容
出于概述目的,在此描述了某些方面、优点和新颖特性。将理解,根据任何一个特定实施例,可能未实现所有这些优点。因此,可以以如下方式包含或执行所公开的主题:实现或优化一个优点或一组优点,而未实现可能在此教导或提出的所有优点。
提供了用于优化虚拟化计算环境中的物理设备的操作的系统和方法。所述方法包括:监视在虚拟机(VM)的操作系统上运行的应用发出的指令,其中所述VM由系统管理程序托管,所述系统管理程序提供对连接到虚拟化计算环境的物理设备的访问;其中所述操作系统所支持的设备驱动器向所述系统管理程序所支持的仿真设备发出一个或多个指令,以便根据所发出的指令控制所述物理设备,其中所述仿真设备的寄存器在所述系统管理程序的存储器中实现,并且所述设备驱动器发出的指令存储在所述寄存器中,其中响应于获知所述指令存储在所述寄存器中,所述系统管理程序处理所述指令。
根据一个或多个实施例,提供了一种包括一个或多个逻辑单元的系统。所述一个或多个逻辑单元被配置为执行与上面公开的方法关联的功能和操作。在另一个实施例中,提供了一种计算机程序产品,其包括具有计算机可读程序的计算机可读存储介质。当在计算机上执行时,所述计算机可读程序导致计算机执行与上面公开的方法关联的功能和操作。
下面参考附图,进一步详细地提供了上面公开的一个或多个实施例以及某些备选实施例。但是,所公开的主题并不限于所公开的任何特定实施例。
附图说明
通过参考下面提供的附图中的各图,可以更好地理解所公开的实施例,这些附图是:
图1和2示出了根据一个或多个实施例的示例性计算环境,其中实现系统管理程序托管的VM以便与可通过所述系统管理程序访问的设备通信;
图3A和3B是根据一个实施例的用于处理指令以便控制图1和2中示出的设备的方法的示例性流程图;
图4A和4B是根据一个或多个实施例的其中可以运行所公开的系统和方法的硬件和软件环境的框图。
根据一个或多个实施例,不同图中的相同标号引用的特性、元素和方面表示相同、等效或类似的特性、元素或方面。
具体实施方式
以下说明了许多具体细节以便提供对各种实施例的详尽描述。某些实施例可以在没有这些具体细节的情况下实现,或者可以具有细节的变化。在某些情况下,并未详细描述某些特性以免使其它方面模糊不清。与每个元素或特性关联的细节级别不应被解释为限定某个特性较之其它特性的新颖性或重要性。
参考图1,根据一个实施例,在计算环境中,可以由系统管理程序100托管VM 105。可以实现系统管理程序100以支持物理设备(例如,磁盘存储设备)的仿真,以便允许VM 105与资源(例如,物理设备180)通信。仿真设备140用作设备驱动器120和物理设备180之间的接口。例如,仿真设备140可以支持标准协议以便与设备驱动器120连接,其中所述协议定义设备寄存器和相应I/O功能的使用方式。
仿真设备140可以以软件或固件实现以仿真某一物理设备,以便VM可以与物理设备180通信,而无需任何有关物理设备180的特定接口要求的确切结构或性质的知识。取决于实施方式,可以通过使用半虚拟化设备作为设备驱动器120和物理设备180之间的接口,减少与仿真关联的开销,并减少对在VM 105和系统管理程序100之间转移控制的需要。在一个实施例中,可以使用虚拟化组件(例如,定制驱动器)实现设备的半虚拟化,以便例如通过分批处理多个指令或I/O请求并使用共享存储器以避免多个数据副本而提高系统的性能。
如图1中所示,可以在VM 105上执行的VM操作系统109上运行诸如软件代码之类的计算机实现的应用(例如,用户空间应用107)。VM操作系统109可以支持设备驱动器120,并且系统管理程序100可以支持仿真设备140,仿真设备140能够与设备驱动器120和物理设备180通信。在一种实施方式中,可以使用设备分配选项以便允许VM 105访问物理设备180。设备分配如所期望地为VM 105授予对物理设备180的完全访问,以便VM 105可以直接向物理设备180发送I/O请求,其中可以通过系统管理程序100路由中断。如果物理设备180旨在在若干VM和系统管理程序之间共享并且不支持VM迁移,则可能不需要设备分配选项,这是因为VM将接口直接分配给特定设备。
在一种实施方式中,仿真设备140具有寄存器,它们实际上在系统管理程序100的存储器160中实现。即,可以针对仿真设备140共享或保留系统管理程序100的存储器160的一部分,其中设备驱动器120发出的任何指令都写入到所共享的存储器区域。以此方式,设备驱动器120和仿真设备140可以被配置为允许系统管理程序100监视或控制物理设备180上的对应操作。
在一个实施例中,写入到仿真设备140的寄存器(即,共享的系统管理程序100的存储器160)的指令可以由VM操作系统109控制,或者由系统管理程序100或仿真设备140监视。要指出的是,仿真设备140的寄存器可以完全从系统管理程序100中访问,因为所述寄存器在系统管理程序100的存储器160中实现。根据一个实施例,当发出相应指令时,设备驱动器120并不知道它正在与仿真设备140通信而不是与物理设备180通信。
如在下面进一步详细提供的那样,仿真设备140或系统管理程序100可以监视共享存储器160,以便确定何时将指令从设备驱动器120发送到仿真设备140。当检测到此类指令时,系统管理程序100通过仿真物理设备180的适当行为而参与处理所述指令。以此方式,提高物理设备180的整体操作性能,因为VM 105和系统管理程序100之间的控制切换次数减到最少。在一个实施例中,通过从VM 105执行单独的执行线程来监视共享存储器160,以便允许仿真设备140或系统管理程序100确定指令是否被写入到存储器160,同时VM 105继续运行。
因此,在上面的示例性情景中,当设备驱动器120向在共享存储器160中实现的设备寄存器中写入时,VM 105继续运行,同时在单独的执行线程中,仿真设备140或系统管理程序100继续监视写入到共享存储器160中的设备寄存器的数据。响应于注意到寄存器值的更改(即,由来自设备驱动器120的写入操作产生),仿真设备140或系统管理程序100执行任务以处理所述指令,而无需VM 105退出并显式地向系统管理程序通知寄存器值的更改(即,导致将CPU控制从VM切换到系统管理程序)。
参考图2和3A,在一个实施例中,VM用户空间应用107可以发出系统调用。VM操作系统109针对输入/输出(I/O)操作或其它发出的指令监视所述系统调用,并且判定是否已将指令从设备驱动器120发送到仿真设备140(S310)。例如,VM 105中的设备驱动器120可以使用程控输入/输出(PIO)或存储器映射I/O(MMIO)方法,将指令发送到仿真设备140。
PIO和MMIO是在CPU和一个或多个物理设备180(例如,网络适配器、存储设备等)之间传输数据并执行I/O的方法。例如,当VM用户空间应用107发出访问I/O地址空间的CPU指令以执行去往或来自物理设备180的数据传输时可发生PIO。MMIO可以使用地址接口(例如,总线)对存储器160和物理设备180进行寻址。用于访问存储器160的CPU指令也可以用于访问物理设备180。
在一个实施例中,可以针对I/O保留CPU的可寻址空间区域。所述保留例如可以是临时的或永久的。取决于实施方式,物理设备180可以监视CPU的地址总线,并响应CPU对设备分配的地址空间的访问,从而将数据总线连接到物理设备180的硬件寄存器。
在图2中示出的虚拟化系统中,VM操作系统109可以检测将CPU指令从设备驱动器120发出到仿真设备140(S320)。如果发送,则VM操作系统109生成信号(例如,触发捕获)以便向仿真设备140通知所述指令的到达(S330)。
要指出的是,由于VM用户空间应用107在VM 105的上下文中执行,因此VM 105负责处理相应的CPU指令。在一个实施例中,响应于上述被触发的捕获,系统管理程序100导致将CPU控制从VM 105切换到系统管理程序100(S340)。因此,取决于实施方式,仿真设备140或系统管理程序100可以直接处理所述指令(S350)。
参考图2和3B,在一种备选实施方式中,仿真设备140或系统管理程序100针对仿真设备140的设备驱动器120发出的指令,主动监视(例如,轮询)仿真设备140的寄存器(即,与系统管理程序共享的存储器160的区域)(S410)。如果向所述寄存器中写入(S420),则仿真设备140或系统管理程序100处理所述指令(S430)。
在不同的实施例中,所要求保护的主题可以实现为硬件和软件元素两者的组合,或者备选地完全以硬件形式或完全以软件形式实现。此外,在此公开的计算系统和程序软件可以包括受控计算环境,其可以根据执行的硬件组件或逻辑代码提供,这些硬件组件或逻辑代码用于执行获得在此构想的结果的方法和过程。当由通用计算系统或机器执行时,所述方法和过程将通用机器转换为专用机器。
参考图4A和4B,根据一个示例性实施例的计算系统环境可以包括硬件环境1110和软件环境1120。硬件环境1110可以包括逻辑单元、电路或其它机器和设备,它们为软件环境1120的组件提供执行环境。反过来,软件环境1120可以为硬件环境1110的各种组件提供执行指令,包括底层操作设置和配置。
参考图4A,在此公开的应用软件和逻辑代码可以以计算机可读代码的形式实现,所述计算机可读代码在示例性硬件环境1110表示的一个或多个计算系统上执行。如图所示,硬件环境1110可以包括处理器1101,其通过系统总线1100耦合到一个或多个存储元件。所述存储元件例如可以包括本地存储器1102、存储介质1106、高速缓冲存储器1104或其它计算机可用或计算机可读介质。在本公开的上下文中,计算机可用或计算机可读存储介质可以包括任何可以用于包含、存储、发送、传播或传输程序代码的可记录制品。
计算机可读存储介质可以是电、磁、光、电磁、红外线或半导体介质、系统、装置或设备。所述计算机可读存储介质还可以以传播介质实现(没有限制),程度为此类实现被视为法定主题。计算机可读存储介质的实例可以包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘、光盘或载波(如果适用)。光盘的当前实例包括光盘-只读存储器(CD-ROM)、光盘-读/写(CD-R/W)、数字视频盘(DVD)、高清晰度视频盘(HD-DVD)或Blue-rayTM盘。
在一个实施例中,处理器1101将可执行代码从存储介质1106加载到本地存储器1102。高速缓冲存储器1104通过提供临时存储优化处理时间,此类临时存储有助于减少加载代码以便执行的次数。一个或多个用户接口设备1105(例如,键盘、指点设备等)和显示屏1107例如可以直接或通过中间I/O控制器1103耦合到硬件环境1110中的其它元件。可以提供通信接口单元1108(例如网络适配器),以使硬件环境1110能够通过中间专用或公共网络(例如,因特网)与本地或远程计算系统、打印机和存储设备通信。有线或无线调制解调器和以太网卡是网络适配器的几种示例性类型。
注意,在某些实施方式中,硬件环境1110可能不包括上面的部分或全部组件,或者可能包括其它组件以提供补充功能或效用。取决于构想的使用和配置,硬件环境1110可以是台式或膝上型计算机,或者可选地包含在嵌入式系统中的其它计算设备,例如机顶盒、个人数字助理(PDA)、个人媒体播放器、移动通信单元(例如,无线电话),或者具有信息处理或数据存储能力的其它类似的硬件平台。
在某些实施例中,通信接口1108用作数据通信端口,以便通过发送和接收数字、电、电磁或光信号提供与一个或多个计算系统通信的手段,这些信号承载表示各种类型信息(包括程序代码)的模拟或数字数据流。所述通信可以通过本地或远程网络建立,或者备选地通过空气传输或其它介质传输(包括但不限于载波传播)建立。
如在此所提供的,根据本质上是示例性的逻辑或功能关系定义在所示硬件元件上执行的所公开的软件元素。但是,应当指出,通过所述示例性软件元素实现的相应方法还可以例如通过配置和编程的处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)和数字信号处理器(DSP)被编码在所述硬件元件中。
参考图4B,软件环境1120通常可以分为两类,包括在一个或多个硬件环境1110上执行的系统软件1121和应用软件1122。在一个实施例中,在此公开的方法和过程可以实现为系统软件1121、应用软件1122或它们的组合。系统软件1121可以包括诸如操作系统(OS)和信息管理系统之类的控制程序,它们指示硬件环境1110中的一个或多个处理器1101(例如,微处理器)如何运行和处理信息。应用软件1122可以包括但不限于程序代码、数据结构、固件、驻留软件、微代码,或者可以由处理器1101读取、分析或执行的任何其它形式的信息或例程。
换言之,应用软件1122可以实现为程序代码,其以计算机可用或计算机可读存储介质的形式包含在计算机程序产品中,所述计算机程序产品提供程序代码以便由计算机或任何指令执行系统使用或者与其结合使用。此外,应用软件1122可以包括一个或多个计算机程序,这些计算机程序在从存储介质1106加载到本地存储器1102之后,在系统软件1121之上执行。在客户端-服务器体系结构中,应用软件1122可以包括客户端软件和服务器软件。例如,在一个实施例中,客户端软件可以在客户端计算系统上执行,该客户端计算系统不同于并独立于执行服务器软件的服务器计算系统。
软件环境1120还可以包括浏览器软件1126以便访问通过本地或远程计算网络提供的数据。此外,软件环境1120可以包括用户界面1124(例如,图形用户界面(GUI))以便接收用户命令和数据。有必要重申,上面描述的硬件和软件体系结构和环境用于实例目的。因此,可以在任何类型的系统体系结构、功能或逻辑平台或处理环境上实现一个或多个实施例。
还应理解,所述逻辑代码、程序、模块、过程、方法,以及每种方法的相应过程的执行顺序完全是示例性的。取决于实施方式,所述过程或任何底层子过程和方法可以以任何顺序执行或同时执行,除非本公开中另有所指。此外,除非明确地另有所指,否则本公开的上下文中的逻辑代码定义并不与任何特定程序设计语言相关或限于任何特定程序设计语言,并且可以包括一个或多个模块,它们可以在分布式、非分布式、单处理或多处理环境中的一个或多个处理器上执行。
所属技术领域的技术人员知道,软件实施例可以包括固件、驻留软件、微代码等。包括软件或硬件或者组合软件和硬件方面的某些组件在此通常可以统称为“电路”、“模块”或“系统”。此外,所公开的主题可以实现为包含在一个或多个计算机可读存储介质中的计算机程序产品,这些介质在其中包含计算机可读程序代码。可以使用一个或多个计算机可读存储介质的任意组合。所述计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。
在此文档的上下文中,计算机可读存储介质可以是任何能够包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读程序代码。此类传播的信号可以采用多种形式,包括—但不限于—电磁信号、光信号或它们的任意合适的组合。计算机可读信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行所公开的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。
程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
将参考根据各实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图公开某些实施例。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读存储介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读存储介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
附图中的流程图和框图显示了根据多个实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、组件段或代码的一部分,所述模块、组件段或代码的一部分包括一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。
例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在此参考一个或多个特性或实施例提供了所要求保护的主题。所属技术领域的技术人员将认识到并理解,尽管在此提供了示例性实施例的细节,但是可以向所述实施例应用更改和修改而不会限制或偏离预期的范围。在此提供的实施例的这些和各种其它改变和组合,均在权利要求及其全部等效物限定的所公开的主题的范围之内。

Claims (19)

1.一种用于优化虚拟化计算环境中的物理设备的操作的计算机实现的方法,所述方法包括:
监视在虚拟机(VM)的操作系统上运行的应用发出的指令,其中所述VM由系统管理程序托管,所述系统管理程序提供对连接到虚拟化计算环境的物理设备的访问;
其中所述操作系统所支持的设备驱动器向所述系统管理程序所支持的仿真设备发出一个或多个指令,以便根据所发出的指令控制所述物理设备,
其中所述仿真设备的寄存器在所述系统管理程序的存储器中实现,并且所述设备驱动器发出的指令存储在所述寄存器中,
其中响应于获知所述指令存储在所述寄存器中,所述系统管理程序处理所述指令。
2.根据权利要求1的方法,其中所述操作系统控制所发出的指令是否存储在所述寄存器中。
3.根据权利要求1的方法,其中所述仿真设备监视所发出的指令是否存储在所述寄存器中。
4.根据权利要求1的方法,其中所述系统管理程序监视所发出的指令是否存储在所述寄存器中,并且向所述仿真设备通知所述指令存储在所述寄存器中。
5.一种处理用于管理虚拟化计算环境中的物理设备的指令的计算机实现的方法,所述方法包括:
监视设备驱动器是否向仿真设备发出指令,其中所述设备驱动器在虚拟机(VM)操作系统上运行,并且所述仿真设备在托管所述VM的系统管理程序上运行;
响应于判定将指令写入到所述仿真设备的寄存器,触发捕获以便向所述仿真设备通知所述设备驱动器发出指令;
其中所述系统管理程序将对处理所述指令的CPU的控制从所述VM切换到所述系统管理程序。
6.根据权利要求5的方法,其中所述系统管理程序处理所述指令。
7.根据权利要求5的方法,其中所述仿真设备处理所述指令。
8.根据权利要求5的方法,其中所述VM操作系统监视所述设备驱动器是否发出指令。
9.根据权利要求5的方法,其中所述仿真设备的寄存器在所述系统管理程序的存储器中实现。
10.一种处理用于管理虚拟化计算环境中的物理设备的指令的计算机实现的方法,所述方法包括:
监视由设备驱动器向仿真设备发出的指令是否被写入到所述仿真设备的寄存器,其中所述设备驱动器在虚拟机(VM)操作系统上运行,并且所述仿真设备在托管所述VM的系统管理程序上运行;
处理所发出的指令。
11.根据权利要求10的方法,其中所述仿真设备的寄存器在所述系统管理程序的存储器中实现。
12.根据权利要求10的方法,其中所述系统管理程序执行所述监视。
13.根据权利要求10的方法,其中所述仿真设备执行所述监视。
14.根据权利要求10的方法,其中所述系统管理程序处理所发出的指令。
15.根据权利要求10的方法,其中所述仿真设备处理所发出的指令。
16.一种用于优化虚拟化计算环境中的物理设备的操作的计算机实现的系统,所述系统包括:
逻辑单元,其用于监视在虚拟机(VM)的操作系统上运行的应用发出的指令,其中所述VM由系统管理程序托管,所述系统管理程序提供对连接到虚拟化计算环境的物理设备的访问;
设备驱动器,其由所述操作系统支持并用于向所述系统管理程序所支持的仿真设备发出一个或多个指令,以便根据所发出的指令控制所述物理设备,
其中所述仿真设备的寄存器在所述系统管理程序的存储器中实现,并且所述设备驱动器发出的指令存储在所述寄存器中,
其中响应于获知所述指令存储在所述寄存器中,所述系统管理程序处理所述指令。
17.根据权利要求16的系统,其中所述操作系统控制所发出的指令是否存储在所述寄存器中。
18.根据权利要求16的系统,其中所述仿真设备监视所发出的指令是否存储在所述寄存器中。
19.根据权利要求16的系统,其中所述系统管理程序监视所发出的指令是否存储在所述寄存器中,并且向所述仿真设备通知所述指令存储在所述寄存器中。
CN201180053754.8A 2010-11-24 2011-10-28 虚拟化计算环境中的设备仿真 Active CN103201719B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/953,483 2010-11-24
US12/953,483 US9529615B2 (en) 2010-11-24 2010-11-24 Virtual device emulation via hypervisor shared memory
PCT/EP2011/068987 WO2012069276A1 (en) 2010-11-24 2011-10-28 Device emulation in a virtualized computing environment

Publications (2)

Publication Number Publication Date
CN103201719A true CN103201719A (zh) 2013-07-10
CN103201719B CN103201719B (zh) 2017-02-22

Family

ID=44872372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180053754.8A Active CN103201719B (zh) 2010-11-24 2011-10-28 虚拟化计算环境中的设备仿真

Country Status (5)

Country Link
US (1) US9529615B2 (zh)
CN (1) CN103201719B (zh)
DE (1) DE112011103411B4 (zh)
GB (1) GB2499545A (zh)
WO (1) WO2012069276A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110532816A (zh) * 2018-05-25 2019-12-03 瑞萨电子株式会社 存储器保护电路和存储器保护方法
CN112039722A (zh) * 2020-08-12 2020-12-04 中国银联股份有限公司 一种mqtt协议仿真方法及仿真设备

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8738754B2 (en) * 2011-04-07 2014-05-27 International Business Machines Corporation Systems and methods for managing computing systems utilizing augmented reality
US9804870B2 (en) * 2011-10-28 2017-10-31 Intel Corporation Instruction-set support for invocation of VMM-configured services without VMM intervention
US9256455B2 (en) * 2012-11-20 2016-02-09 Red Hat Isreal, Ltd. Delivery of events from a virtual machine to host CPU using memory monitoring instructions
US9720712B2 (en) * 2013-06-03 2017-08-01 Red Hat Israel, Ltd. Physical/virtual device failover with a shared backend
WO2015125135A1 (en) 2014-02-19 2015-08-27 Technion Research & Development Foundation Limited Memory swapper for virtualized environments
US9606825B2 (en) * 2014-05-20 2017-03-28 Red Hat Israel, Ltd Memory monitor emulation for virtual machines
US10282226B2 (en) * 2016-12-20 2019-05-07 Vmware, Inc. Optimizing host CPU usage based on virtual machine guest OS power and performance management
US10942757B2 (en) * 2017-02-27 2021-03-09 Red Hat, Inc. Virtual machine security through guest-side emulation
US10929164B2 (en) 2018-02-21 2021-02-23 Red Hat, Inc. Enhancing ability of a hypervisor to detect an instruction that causes execution to transition from a virtual machine to the hypervisor
US10884720B2 (en) 2018-10-04 2021-01-05 Microsoft Technology Licensing, Llc Memory ordering annotations for binary emulation
US10684835B1 (en) * 2018-12-11 2020-06-16 Microsoft Technology Licensing, Llc Improving emulation and tracing performance using compiler-generated emulation optimization metadata

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020143842A1 (en) * 2001-03-30 2002-10-03 Erik Cota-Robles Method and apparatus for constructing host processor soft devices independent of the host processor operating system
US6961806B1 (en) * 2001-12-10 2005-11-01 Vmware, Inc. System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems
US20060136934A1 (en) * 2004-12-20 2006-06-22 Nadav Nesher Method, apparatus and system for instructing a virtual device from a virtual machine
US20090006074A1 (en) * 2007-06-27 2009-01-01 Microsoft Corporation Accelerated access to device emulators in a hypervisor environment
CN101887393A (zh) * 2010-07-01 2010-11-17 中兴通讯股份有限公司 基于半虚拟化技术的设备故障复现方法及系统

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US8631066B2 (en) * 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US6760784B1 (en) * 1998-10-08 2004-07-06 International Business Machines Corporation Generic virtual device driver
US6453277B1 (en) 1999-01-28 2002-09-17 Computer Associates Think, Inc. Virtual I/O emulator in a mainframe environment
US7558723B2 (en) 2003-12-12 2009-07-07 Microsoft Corporation Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices
US20050204357A1 (en) * 2004-03-15 2005-09-15 Ajay Garg Mechanism to protect extensible firmware interface runtime services utilizing virtualization technology
US7689987B2 (en) * 2004-06-30 2010-03-30 Microsoft Corporation Systems and methods for stack-jumping between a virtual machine and a host environment
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US7853960B1 (en) * 2005-02-25 2010-12-14 Vmware, Inc. Efficient virtualization of input/output completions for a virtual device
US7797707B2 (en) * 2005-03-02 2010-09-14 Hewlett-Packard Development Company, L.P. System and method for attributing to a corresponding virtual machine CPU usage of a domain in which a shared resource's device driver resides
US8635612B2 (en) * 2005-04-29 2014-01-21 Microsoft Corporation Systems and methods for hypervisor discovery and utilization
JP2007004661A (ja) * 2005-06-27 2007-01-11 Hitachi Ltd 仮想計算機の制御方法及びプログラム
CN100399274C (zh) * 2005-09-19 2008-07-02 联想(北京)有限公司 一种虚拟机系统输入/输出设备动态分配的方法及其设备
US20090106754A1 (en) * 2005-12-10 2009-04-23 Benjamin Liu Handling a device related operation in a virtualization enviroment
US8286174B1 (en) * 2006-04-17 2012-10-09 Vmware, Inc. Executing a multicomponent software application on a virtualized computer platform
US7613847B2 (en) * 2006-05-16 2009-11-03 Hewlett-Packard Development Company, L.P. Partially virtualizing an I/O device for use by virtual machines
US7725305B2 (en) * 2006-06-08 2010-05-25 Microsoft Corporation Partial virtualization on computing device
US20080104589A1 (en) 2006-11-01 2008-05-01 Mccrory Dave Dennis Adaptive, Scalable I/O Request Handling Architecture in Virtualized Computer Systems and Networks
US20080244105A1 (en) * 2007-03-27 2008-10-02 Rothman Michael A Enhancing performance of input-output (i/o) components
US8261284B2 (en) * 2007-09-13 2012-09-04 Microsoft Corporation Fast context switching using virtual cpus
US8453143B2 (en) * 2007-09-19 2013-05-28 Vmware, Inc. Reducing the latency of virtual interrupt delivery in virtual machines
US7979869B2 (en) * 2007-09-28 2011-07-12 Oracle America, Inc. Method and system for performing I/O operations using a hypervisor
US7945436B2 (en) 2007-11-06 2011-05-17 Vmware, Inc. Pass-through and emulation in a virtual machine environment
US7743389B2 (en) * 2007-11-06 2010-06-22 Vmware, Inc. Selecting between pass-through and emulation in a virtual machine environment
US8151265B2 (en) * 2007-12-19 2012-04-03 International Business Machines Corporation Apparatus for and method for real-time optimization of virtual machine input/output performance
US8307360B2 (en) 2008-01-22 2012-11-06 Advanced Micro Devices, Inc. Caching binary translations for virtual machine guest
JP2009259108A (ja) 2008-04-18 2009-11-05 Toshiba Corp 情報処理装置および情報処理装置の制御方法
US8374842B2 (en) * 2008-05-28 2013-02-12 Panasonic Corporation Device emulation support apparatus, device emulation support method, device emulation support circuit and information processor
EP2173060B1 (en) 2008-10-02 2012-09-12 VirtualLogix SA Virtualized secure networking
US20100280817A1 (en) * 2009-04-30 2010-11-04 Spansion Llc Direct pointer access and xip redirector for emulation of memory-mapped devices
US9058183B2 (en) * 2009-12-29 2015-06-16 Advanced Micro Devices, Inc. Hypervisor isolation of processor cores to enable computing accelerator cores
US8612633B2 (en) * 2010-03-31 2013-12-17 Microsoft Corporation Virtual machine fast emulation assist
US8429323B2 (en) * 2010-05-05 2013-04-23 International Business Machines Corporation Memory mapped input/output bus address range translation
US9229757B2 (en) * 2010-07-19 2016-01-05 International Business Machines Corporation Optimizing a file system interface in a virtualized computing environment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020143842A1 (en) * 2001-03-30 2002-10-03 Erik Cota-Robles Method and apparatus for constructing host processor soft devices independent of the host processor operating system
US6961806B1 (en) * 2001-12-10 2005-11-01 Vmware, Inc. System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems
US20060136934A1 (en) * 2004-12-20 2006-06-22 Nadav Nesher Method, apparatus and system for instructing a virtual device from a virtual machine
US7546599B2 (en) * 2004-12-20 2009-06-09 Intel Corporation Method, apparatus and system for instructing a virtual device from a virtual machine
US20090006074A1 (en) * 2007-06-27 2009-01-01 Microsoft Corporation Accelerated access to device emulators in a hypervisor environment
CN101887393A (zh) * 2010-07-01 2010-11-17 中兴通讯股份有限公司 基于半虚拟化技术的设备故障复现方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
曹欣: "半虚拟化技术分析与研究", 《中国优秀硕士学位论文全文数据库》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110532816A (zh) * 2018-05-25 2019-12-03 瑞萨电子株式会社 存储器保护电路和存储器保护方法
CN110532816B (zh) * 2018-05-25 2024-04-23 瑞萨电子株式会社 存储器保护电路和存储器保护方法
CN112039722A (zh) * 2020-08-12 2020-12-04 中国银联股份有限公司 一种mqtt协议仿真方法及仿真设备

Also Published As

Publication number Publication date
WO2012069276A1 (en) 2012-05-31
GB201309307D0 (en) 2013-07-10
US20120131575A1 (en) 2012-05-24
CN103201719B (zh) 2017-02-22
GB2499545A (en) 2013-08-21
DE112011103411T5 (de) 2013-08-01
US9529615B2 (en) 2016-12-27
DE112011103411B4 (de) 2022-08-11

Similar Documents

Publication Publication Date Title
CN103201719A (zh) 虚拟化计算环境中的设备仿真
US11537809B2 (en) Dynamic container grouping
US10853334B2 (en) Technologies for providing service isolation, scalability, and proactive tenant migration in multi-tenant ecosystems
JP5697206B2 (ja) 不正アクセスに対する防御をするシステム、方法およびプログラム
KR102219546B1 (ko) 사용자 모드 크래시 리포트를 위한 프레임워크
US10277524B1 (en) Monitoring data streams and scaling computing resources based on the data streams
CN107102944B (zh) 一种调用函数的分析方法及装置
CN103210373A (zh) 管理嵌套虚拟化环境
CN103547997A (zh) 处理器模式锁定
CN110737895A (zh) 使用静态和动态恶意软件分析来扩展恶意软件的动态检测
US9201823B2 (en) Pessimistic interrupt affinity for devices
US9003094B2 (en) Optimistic interrupt affinity for devices
CN110175457B (zh) 一种双体系结构可信操作系统及方法
CN104137071A (zh) 用于脚本编译的简档数据的持久性存储
US20150347169A1 (en) Scheduler limited virtual device polling
CN107436810A (zh) 一种计算机系统资源调度方法及装置
US20140304396A1 (en) It system infrastructure prediction based on epidemiologic algorithm
TWI590073B (zh) 用於提供存取虛擬命名空間中資源的虛擬整合呼叫
CN108984234A (zh) 一种移动终端与摄像装置的调用提示方法
Kang et al. Docker swarm and kubernetes containers for smart home gateway
US9766917B2 (en) Limited virtual device polling based on virtual CPU pre-emption
CN109947504A (zh) 一种在宿主程序中执行寄宿程序的方法与设备
US11816204B2 (en) Multi-tenant actor systems with web assembly
Hung et al. A cloud-assisted malware detection framework for mobile devices
US20170371732A1 (en) Method for debugging static memory corruption

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant