CN1862494A - 分区总线 - Google Patents

分区总线 Download PDF

Info

Publication number
CN1862494A
CN1862494A CNA2005100990820A CN200510099082A CN1862494A CN 1862494 A CN1862494 A CN 1862494A CN A2005100990820 A CNA2005100990820 A CN A2005100990820A CN 200510099082 A CN200510099082 A CN 200510099082A CN 1862494 A CN1862494 A CN 1862494A
Authority
CN
China
Prior art keywords
subregion
buffer circle
stages
service
bus
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.)
Pending
Application number
CNA2005100990820A
Other languages
English (en)
Inventor
J·奥希斯
P·L·约翰斯顿
E·P·特劳特
N·刘易斯
J·金西
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1862494A publication Critical patent/CN1862494A/zh
Pending legal-status Critical Current

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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/45537Provision of facilities of other operating environments, e.g. WINE

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Systems (AREA)

Abstract

提供了一种在虚拟机环境中集成各分区的方法和系统。具体地,提供了一种分区总线,其中操作上分区总线以某种方法连接各分区,使其发挥允许在分区间传送数据并共享设备的数据传输机制的作用。分区总线依靠虚拟化软件,在适当处建立自身并建立分区间的通信通道,并将中断注入各分区。并且,分区总线使用诸如环形缓冲区、传送页和存储器映射变换等机制来传送信息(请求和数据)。此外,它使用策略代理来判定何时应传送信息或者何时应在分区间共享设备。最后,它使用各种机制来确保分区间的平滑集成,包括具有代理设备的远程服务和设备版本化功能。

Description

分区总线
版权通知和许可
此专利文献所揭示内容的一部分可能包含受版权保护的素材。版权所有者不反对任何人将此专利文献或此专利所揭示内容的传真复制,如它出现在专利商标部专利文件或记录中那样,但除此之外无论如何都保留所有版权。下面的通知应适用于本文献:Copyright2005,Microsoft Corp。
技术领域
本发明一般涉及虚拟机(或称“分区”)和在此类分区内部执行的操作系统的领域。更具体地,本发明涉及在各分区之间移动数据和共享设备的系统和方法。
背景技术
在典型的虚拟机环境中,多个虚拟机或“分区”在虚拟化软件上运行。此软件进而在硬件上运行。该虚拟化软件以允许每个都具有自己的操作系统(OS)的多个分区在硬件上运行的方式来布置硬件。从而该虚拟化软件使硬件对各分区而虚拟化。
单独的分区能够运行诸如Windows、Linux、Solaris等完全不同的OS。可将这些OS彼此隔离,从而如果在某分区的OS崩溃,它将不会影响其它分区的OS。
与在一组硬件上运行多个分区相关联的一项成本是虚拟化软件在为每个分区虚拟设备时消耗可观的处理器周期。类似地,在此类分区之间共享信息(请求和/或数据)或设备时,虚拟化软件消耗可观的处理器周期,原因是在各分区上共享此信息和设备时,虚拟化软件必须对其进行处理。
具体地,在任何给定的虚拟机环境中,由于在各分区中所呈现的部分或可能所有的输入/输出设备未设计成可与在其它分区中的多个OS共享,而导致了一类问题。大多数设备的编程模块假设有且仅有一个“拥有”该设备的OS,这使得要由在各个分区中的若干操作系统同时使用该设备是很困难或者不可能的。例如,如果磁盘控制器同时获得来自两个操作系统的命令,就可能产生问题。每个OS都会认为其控制了文件系统结构,并且每个OS都会写入其选择的任何数据,很快磁盘将被破坏。为防止这种情况发生,发明某种方法和系统,将某设备的所有权分配给单个操作系统,随后与任何其它运行的操作系统共享该设备的服务将会是有利的。
此外,当多个操作系统试图共享同一个机器时,就产生了单独的一类问题,因为用户需要这些操作系统之间某种层次的集成。例如,用户可能想要在各个分区的操作系统之间移动数据。因此,提供一种在运行的操作系统之间移动数据,或更宽泛地,移动信息的方法和系统是有利的。
发明内容
在本发明的各个方面,提供了允许在虚拟机环境中的各个分区之间设备共享和数据传输的各种方法和系统。在本发明的一个方面,提供了一种分区总线,它是一种允许前述的分区间设备共享和数据传输的数据传输机制。
具体地,分区总线利用环形缓冲区,将信息(请求和/或数据)从一个分区传送到另一个分区。在本发明的其它方面,分区总线利用环形缓冲区,将请求从一个分区发送到另一个分区,并且传送页来将数据从一个分区发送到另一个分区。在本发明此外的其它方面,分区总线利用环形缓冲区在分区间发送请求,并利用地址空间操纵在分区间传送数据。
在本发明另外的方面,分区总线允许在一个分区中存在对应于另一个分区中的服务的本地代理合成设备。分区总线还允许这些合成设备对应于诸如存储控制器等真实设备,或者诸如拖放功能等抽象服务。在其它方面,分区总线提供一种通过将可以写入各分区或从这些分区读出的环形缓冲区映射到这些分区、从而在分区间发送数据而不导致上下文切换成本的机制。在此外其它方面,分区总线提供一种翻译机制,其中位于某分区的服务具有基于服务类型和服务实例的全局唯一的标识。在其它方面,分区总线使用策略决策代理来审查某分区对另一分区的通道提供。此策略代理可位于第三分区。在此外的其它方面,分区总线允许仿真硬件设备模块和虚拟化服务提供器同时操作。在此外的其它方面,取决于客户机组件是处于用户模式还是内核模式,分区总线由三个组件的组合构成。这些组件包括:环形缓冲区管理、通道管理、和总线驱动程序。
本发明的其它特征在下文描述。
附图说明
当结合附图阅读关于本发明的以上概述以及以下详述,将会有更好的理解。为了说明本发明,示出了本发明的各个方面。但是,本发明不限于所解释的特定系统和方法。包括以下附图:
图1提供对可实现本发明的合适的计算设备的简要概述;
图2是表示用于计算机系统中的虚拟化操作环境的硬件和软件结构体系逻辑分层的框图;
图3A是表示一虚拟计算系统的框图,其中虚拟化由主操作系统(直接地或仅由系统管理程序)执行;
图3B是表示一替换的虚拟计算系统的框图,其中虚拟化由与主操作系统并行运行的虚拟机监控程序执行;
图4示出允许在分区间传输数据和共享设备的分区总线的概括方面;
图5A示出由本地代理合成设备表示的远程服务;
图5B示出可用于本发明各个方面的各种合成设备的类型,包括存储控制器及拖放设备;
图6示出分区总线使用的不同类型的数据传输机制,包括环形缓冲区模型、传送页模型、和地址空间操纵模型;
图7示出可用于在分区间发送少量数据的环形缓冲区模型;
图8示出可用于在分区间发送中等数量数据的传送页模型;
图9示出可用于在分区间发送大量数据的地址空间操纵模型;
图10示出一种在分区间发送数据而不会导致与上下文交换相关联的成本的机制;
图11示出一种用于接口和协议的分区总线翻译机制。
图12示出由基于某分区的标识和另一分区的信任度所作的策略决策;以及
图13示出仿真设备模块和虚拟化服务提供器的同时操作。
图14A示出分区总线的一个具体实施的用户模式方面。
图14B示出分区总线的一个具体实施的内核模式方面。
图14C示出分区总线的一个具体实施的加载器方面。
具体实施方式
概述
本文讨论分区总线的各个方面。首先,提供示例性的计算环境,以及虚拟机环境中的具有各种操作系统的分区的一般讨论。在此讨论之后,详细讨论分区总线的分区间数据传输和设备共享能力。提供了分区总线的概述,接着是对分区总线使用合成设备的服务的设备共享能力的详细检查,接着是对分区总线使用环形缓冲区、传送页、和地址空间操纵的信息传送能力的详细检查。此外,考虑了分区总线的其它方面,诸如使用审查分区通道提供的策略代理等。
示例性计算环境
图1及以下讨论旨在提供可实现本发明的合适的计算设备的简要概述。例如,图1中所示的任何客户机和服务器计算机或设备可采取此种形式。但是,应当理解,可结合本发明使用手持式、便携式和其它计算设备及所有类型的计算对象,即,可使用能在计算环境中生成、处理、接收和/或发送数据的计算设备或计算对象。尽管以下描述了通用计算机,这仅仅是一个示例,可以具有网络/总线互用性和交互的薄客户机实现本发明。因此,可在牵涉很少或最少客户机资源的联网主含服务环境(例如,客户机设备仅担当网络/总线的接口的联网环境,诸如放置在某装置中的对象)中实施本发明。实质上,任何能够存储数据、或能检索数据、或能向另一个计算机发送数据的环境都是操作本发明的对象持久方法的合乎需要的或合适的环境。
尽管非必须,本发明可经由操作系统实现以供对于设备或对象的服务的开发者使用,并且/或者可以包括在根据本发明操作的应用程序或服务器软件之内。软件可以在由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,在各个实施例中可按照所期望的将各程序模块的功能组合或分布。而且,可随其它计算机系统配置和协议实施本发明。适于随本发明使用的其它广知的计算系统、环境、和/或配置包括,但不限于,个人计算机(PC)、自动柜员机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、可编程消费者电子设备、网络PC、家电、电灯、环境控制元件、微型计算机、大型计算机、等等。
因此图1示出了可实现本发明的合适的计算系统环境100的示例,尽管在上文已经说明了,计算系统环境100仅为合适的计算环境的一个例子,并不试图对本发明的使用或功能的范围提出任何限制。也不应将计算环境100解释成具有涉及示例性操作环境100中所示的各组件中的任何一个或其任何组合的依赖性或要求。
参考图1,用于实现本发明的示例性系统包括计算机110形式的通用计算设备。计算机110的组件可包括,但不限于,处理单元120、系统存储器130、和将包括系统存储器在内的各个系统组件耦合到处理单元120的系统总线121。系统总线121可以是若干类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、和使用各种总线体系结构中任何一种的局部总线。作为示例,而非限制,此类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、扩展ISA(EISA)总线、视频电子计数标准协会(VESA)局部总线、外围部件互联(PCI)总线(也称Mezzanine总线)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是计算机110可访问的任何可用介质,包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的易失性和非易失性,可移动和不可移动介质,用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或可用于存储期望信息并可由计算机110访问的任何其他介质。通信介质通常具体化为诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号”指以在信号中将信息编码的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接连线等有线介质,及诸如声学、RF、红外及其他无线介质等无线介质。以上的任意组合也应被包括在计算机可读介质的范畴内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。包含例如在启动期间在计算机110内部各元件间传送信息的基本例程的基本输入输出系统133(BIOS)通常存储在ROM 131中。RAM 132通常包含可由处理单元120立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图1示出了操作系统134、应用程序135、其他程序模块136及程序数据137。
计算机110还可包括其他可移动/不可移动,易失性/非易失性计算机存储介质。仅仅作为例子,图1示出读或写不可移动、非易失性磁介质的硬盘驱动器141、读或写可移动、非易失性磁盘152的磁盘驱动器151、以及读或写诸如CD-RW、DVD-RW或其他光介质等可移动、非易失性光盘156的光盘驱动器155。可用于示例性操作环境的其他可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过诸如接口140等不可移动存储器接口连到系统总线121,而磁盘驱动器151和光盘驱动器155通常通过诸如接口150等可移动存储器接口连到系统总线121。
在上面讨论并在图1中示出的各驱动器及其相关联的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块及其他数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其他程序模块146和程序数据147。要注意,这些组件可以和操作系统134、应用程序135、其他程序模块136和程序数据137相同或者相异。此处给操作系统144、应用程序145、其他程序模块146和程序数据147不同的标号,以说明至少它们是不同的副本。用户可通过诸如键盘162和诸如鼠标、跟踪球或触摸垫等定位设备161之类的输入设备来输入命令和信息到计算机110中。其它输入设备(未示出)可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些及其他设备常通过耦合到系统总线121的用户输入接口160连到处理单元120,但也可通过其他接口和总线结构连接,诸如并行端口、游戏端口或通用串行总线(USB)。图形接口182也可连接到系统总线121。一个或多个图形处理单元(GPU)184可与图形接口182通信。监视器191或其它类型的显示设备也通过诸如视频接口190等接口连到系统总线121。除了监视器191之外,计算机还可包括其他外围输出设备,诸如扬声器197和打印机196,它们可通过输出外围接口195连接。
计算机110可在使用诸如远程计算机180的一个或多个远程计算机的逻辑连接的联网或分布式环境中运行。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其他通用网络节点,且通常包括相对于计算机110所描述的许多或全部元件,尽管在图1中仅示出记忆存储设备181。图1描绘的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其他网络/总线。诸如此类的网络环境常见于家庭、办公室、企业范围计算机网络、内联网和因特网。
当用于LAN网络环境时,计算机110通过网络接口或适配器170连到LAN 171。当用于WAN网络环境时,计算机110通常包括调制解调器172或用于通过诸如因特网等WAN 173建立通信的其它装置。可以是内置或外置的调制解调器172可经由用户输入接口160或其它适当的机制连到系统总线121。在联网环境中,相对于计算机110描绘的程序模块或其部分可存储于远程记忆存储设备中。作为示例而非限制,图1示出远程应用程序185驻留在存储器设备181中。应当理解,所示网络连接是示例性的,且可使用在计算机间建立通信链路的其它手段。
虚拟机
图2是表示用于计算机系统中的虚拟化环境的硬件和软件体系结构逻辑分层图。在图中,虚拟化程序210直接地或间接地在物理硬件体系结构212上运行。虚拟化程序210可以是与主操作系统并行运行的虚拟机监控程序,或者是具有系统管理程序组件的主操作系统,其中系统管理程序组件执行虚拟化。虚拟化程序210虚拟客硬件体系结构208(示为虚线以说明此组件是分区或“虚拟机”的事实),即,非实际存在、而是由虚拟化程序210虚拟的硬件。客操作系统206在客硬件体系结构208上执行,软件应用程序204在客操作系统206上运行。在图2的虚拟化操作环境中,即使软件应用程序204设计成在与主操作系统和硬件体系结构212一般不兼容的操作系统上运行,软件应用程序204仍可在计算机系统202中运行。
图3A示出包括直接在物理计算机硬件302上运行的主操作系统(主OS)软件层304的虚拟计算系统,其中主OS 304通过布置分区A 308和B 310的接口分别供操作系统312和314使用,提供了物理计算机硬件302的资源的访问入口。这使得主OS 304能够不受注意地旁路掉在其上运行的操作系统层312和314。并且,为执行虚拟化,主OS 304可以是具有本机虚拟化能力的专门设计的操作系统,或者替换地,可以是具有用来执行虚拟化的合成的系统管理程序(未图示)的标准操作系统。
再参考图3A,在主OS 304上面是两个分区,例如可以是虚拟Intel 386处理器的分区A 308、和例如可以是Motorola 680X0族处理器中的一种的虚拟版本的分区B 310。分区308和310内分别是客操作系统(客OS)A 312和B 314。在客OS A 312上运行的是2个应用程序,应用程序A1 316和应用程序A2 318;在客OS B 314上运行的是应用程序B1 320。
关于图3A,重要的是要注意分区A 308和分区B 314(虚线所示)是仅作为软件编制存在的虚拟计算机硬件表示。它们是由于执行专门的虚拟化软件而实现的,该虚拟化软件不仅分别向客OS A 312和客OS 314呈现分区A 308和分区B 310,还执行客OS A 312和客OS B 314间接与实际物理计算机硬件302交互所必需的所有软件步骤。
图3B示出替换的虚拟计算系统,其中虚拟化由与主操作系统304”并行运行的虚拟机监控程序(VMM)304’执行。在某些情形中,VMM 304’可以是在主操作系统304”上运行并仅通过主操作系统304”与计算机硬件302交互的应用程序。在其它情形中,如图3B中所示,VMM 304’相反可以包括在某些层次上经由主操作系统304”与计算机硬件302间接交互、但在其它层次上VMM 304’与计算机硬件302直接交互(类似于主操作系统直接与计算机硬件交互的方式)的部分独立的软件系统。在另外的情形中,VMM 304’可包括在所有层次上与计算机硬件302直接交互(类似于主操作系统与计算机硬件直接交互的方式)、而不使用主操作系统304”(尽管仍与主操作系统304”交互以协调计算机硬件302的使用并避免冲突等)的完全独立的软件系统。
所有这些用于实现上述分区的变体只是示例性的实现,不应将本文中的任何内容解释为将本发明限制于任何特定的虚拟化方面。
分区总线概述:设备共享和数据传输
在本发明的一个方面,创建了一种硬件总线的软件模型。此“总线”是“分区总线”。分区总线允许分区间数据传输机制的正式化。并且,使用分区总线使得构建允许设备共享和OS间集成的服务更为简单。
分区总线是一种在有多个分区运行的系统中的各分区之间或之内使用的信息(请求和/或数据)传输机制。但是,它并不试图作为虚拟机环境中可用的唯一信息传输机制。同样地,它不需要在客户机分区/服务分区关系中满足客户机分区的每个单独的可能的目标。例如,它不必要尽早加载到NT内核模式环境中以使硬件抽象层(HAL)可将其用于初始化。
在一个方面,分区总线依靠系统管理程序进程间通信(IPC)来安装、在分区间建立通信通道、和将中断注入各分区。
图4示出允许在分区间共享设备和传输信息的分区总线的一般概念。描绘了3个分区,一个服务分区402和2个客户机分区:客户机分区A 404和客户机分区B406。这些分区由系统管理程序410维护。这些分区的每一个可以有某种OS,或者与其它分区的OS相同,或者是不同的OS。因此,服务分区402可运行Windows XP;客户机分区A 404可运行Windows 2000,客户机分区B 406可运行Windows 98。
并且,这些分区的每一个都包含一些设备。具体地,服务分区402包含物理设备424的设备驱动程序418。设备驱动程序418与允许合成设备与物理设备424通信的的虚拟化服务提供器(VSP)417通信。因此,客户机分区A 404中的合成设备420与客户机分区B 406中的合成设备422可经由分区总线408使用物理设备424的服务。
分区总线408提供一种手段,使客户机分区A 404和客户机分区B 406具有访问物理设备424的入口分别供其合成设备420和422使用。换言之,分区总线408提供一种将诸如物理设备424等某个设备的所有权分配给诸如Windows XP 412等某个单独的OS的手段,以及一种将该设备的服务与诸如Windows 2000 414和Windows 98 416等其它运行的OS共享的手段。
此外,分区总线408还允许各OS在各分区间移动数据,从而数据可轻易地从例如服务分区402移动到第二客户机分区B 406,而不会导致牵涉数据移动事务中的传统系统管理程序410机制的高计算成本。
分区总线:设备共享
在本发明的另一个方面,图5A示出由某分区中的本地代理合成设备表示的远程服务。当通过分区总线514提供例如随某远程操作系统510存储在某远程分区508的远程服务512,一合成设备506即被添加到客户机分区的操作系统504。在如远程服务512等服务实例与如设备506等合成设备之间有一一对应。每一个合成设备都可用于像任何通常的设备在通常的协议总线上发送和接收数据那样地发送和接收数据。
图5B示出可对应于可在分区总线上使用的合成设备的设备和服务的类型。具体参考图5B,呈现了合成设备516。此合成设备516可对应于各种设备518:存储、网络、输入(键盘和鼠标)、音频、视频、智能卡、等等。合成设备516还可对应于各种服务518:时间同步、拖放、文件夹共享、剪贴、远程执行、远程应用程序启动、进程间通信。对于合成设备516所能建模的设备和服务的类型实际上没有限制。
分区总线:数据传输
分区总线602允许根据要从一个分区传送到另一个分区的数据量是少量、中等还是大量,以至少3种截然不同的方法传送请求(或命令)和数据。因此,在图6中,示出了这3种发送数据的模型:环形缓冲区模型604;传送页模型606;和地址空间操纵模型608。
一般而言,环形缓冲区模型604用环形缓冲区610从一个分区向另一个分区发送请求和数据。环形缓冲区仅仅是固定大小的缓冲区,在“环”中当缓冲区填满时,更多的信息将放回该缓冲区的起始,覆盖掉旧的数据。在通常的虚拟系统中,环形缓冲区可同时供2个或多个OS使用。
传送页模型606用环形缓冲区612发送请求,并用传送页614发送数据(图示了2个传送页:页A和B)。传送页是存储器中所分配的页,通过将信息从某个分区复制到所分配的页并从所分配的页复制到另一个分区来传送信息。传送页模型与环形缓冲区不同,因为它不具有结构、协议、或相关联的排序。因此,传送页模型更适合作DMA操作的目标,并且在传送页间操纵数据时可避免保持锁定。
最后,示出地址空间操纵模型608。与其它2个模型一样,用环形缓冲区616存储来自一个分区的请求以供另一个分区读取。还示出3个存储器映像:服务分区存储器映像618、客户机分区存储映像622、和非虚拟系统存储器映像620。客户机分区和服务分区可改变其存储器映像618和622的一部分以对应于非虚拟系统存储器映像620,从而不需要复制数据(与传送页模型的情形不同)而可由2个分区访问和读取这些数据。这意味着客户机分区和服务分区改变其存储器映像,从而它们能共享某些公有的物理存储页。代价是必需先分别将客户机和服务分区的存储器映像618和622变为对应于某个非虚拟系统存储器映像620,随后一旦完成了任何给定的事务,必需将其改回其原始的映像。因此,对比于用复制在分区间传送数据的传送页模型,空间操纵模型利用地址映像改变。
值得注意的是,少量、中等或大量数据的概念是相对概念,在某种程度上是由计算机系统资源定义的。取决于系统资源的可用性,可应用适当的传送模型。因此,基于经验,当要传送少量数据时,环形缓冲区模型是最有效的;当要传送中等数量的数据时,传送页模型是最有效的;当要传送大量数据时,地址空间操纵模型是最有效的。
因此,在本发明的一个方面,环形缓冲区模型使用留出的存储器区域在2个分区间传送请求和数据(以合并或单独的形式,本文中统称为“信息”)。在此模型中,插入到环形缓冲区中的信息包是以一个包接着另一个包的形式来排列的。并且,将包插入到环形缓冲区中通常是相对较快的操作,因为只有插入了之前的包之后才能插入后续的包。因此,环形缓冲区最适合于快速传入的数据,从而要插入的后续包没有显著的等待时间。
图7示出了环形缓冲区模型。系统管理程序(未图示)维护2个分区,客户机分区702和服务分区708。服务分区708可能运行着某服务OS 710,它将数据的形式的数据发送到客户机分区702及其OS 704。数据相继排列并放置到环形缓冲区706中。类似地,请求形式的信息可从客户机分区702经由环形缓冲区706发送到服务分区708来请求执行某些服务。非虚拟系统存储器705中的环形缓冲区706在分区702和708中分别映射到706A和706B,以允许在2个分区702和708之间交换请求和数据。因此,图7示出在服务分区702和客户机分区708之间经由环形缓冲区706发送的2包请求和2包数据。
在本发明的另一个方面,使用了发送页模型。在此模型中,页库由传输库管理。有趣的是,服务分区或者客户机分区能在任何时候分配传送页组,并将其添加到已在使用的现有组中。分配传送页组的分区拥有该组的管理权,包括在该组内页的分配和解除分配。
与传送页相关联的唯一成本来自其同时被分配并映射到客户机和服务分区中的时候。分区的物理地址映射也改变了,但这是可通过多次传送摊薄的一次性操作。并且,因为传送页是永久地映射到2个分区的,所以不能在其中存储保密信息,但这也意味着永远不需要清除它们。
如上所述,图8中所示的传送页模型与图7中所示的环形缓冲区模型不同,因为传送页不需要与其相关联的结构、协议、或排序,这使客户机能更自由地将传送页作为DMA操作的目标来使用,并能更自由地避免在其间操纵数据的保持锁定。
图8示出传送页模型的示例性实现。描绘了服务分区802和客户机分区804,这2个分区由系统管理程序806维护。在图8中,客户机分区804中的用户模式进程请求来自服务分区802中的虚拟磁盘服务808所处理的某文件的数据。从服务分区802获得数据的请求被建模为硬件直接存储器存取(DMA)事务。
作为示例,应用程序812首先创建关于7页数据的请求,这超出了传送页811当时的可用范围。因此,该请求不得不分成2个子请求。第一个请求向下传递给虚拟磁盘驱动器814。在某些实例中,这可以是过滤器,在其它实例中,可以是完全受启发的(fully-enlightened)磁盘驱动器(即,仅与当中毫无虚拟化功能残余的合成设备通信的磁盘驱动器;宽泛意义上,术语“受启发的”(enlightened)指知悉其在虚拟环境中运行的OS环境)。
虚拟磁盘驱动器814用从其物理设备对象(PDO)获得的功能来创建标准DMA请求818。虚拟磁盘驱动器接口实例816随即分配来自传输页库的所有当前可用的页。在此例中,合计为5页811A-811E,如传输页811中用竖线示出。
接下来,向服务分区802中的服务器发送请求以从虚拟磁盘服务808获取这些页。当服务器填满了所请求的页,即,将所请求的数据复制到页811A-811E中,它向客户机分区804发回消息。随后数据从传送页复制到应用程序812所维护的缓冲区中。当完成了复制操作,传输页811A-811E被释放。
对于第二个请求,从库中分配另2个页,811I和811J(所描绘的其它页,811F-811H是其它未示出的请求所保留的页)。因此,向服务分区802发送新的请求,要求2页的数据。如前,服务分区802服务器将数据填满到传输页811I-811J,并将关于其操作的消息发回客户机804。数据随即再次被复制到应用程序812的缓冲区,从而完成了起先被分成2个阶段的请求。
传送页811用于传送数据。用环形缓冲区810来传送请求。在本发明的这个方面,请求传送的序列性和包性质和图7中所讨论的相同,图中仅用环形缓冲区来传送请求和数据。
在本发明的其它方面,用地址空间操纵来避免以上分别在图7和8中讨论的环形缓冲区和传送页所执行的存储器复制的高成本。某些事务涉及任意放置在客户机的物理地址空间中的缓冲区,并且需要传送非常大量的数据。在此情况中,不使用传送页,因为它们会强制将来自固定位置的传送页的数据复制到任意放置的缓冲区。为了确保数据能被直接放到其最终所要处于的存储器中,必需改变服务分区的物理地址映射,从而其至少暂时地包含来自客户机分区的页。随后,可由软件或硬件将数据直接写入到那些页或从其中读出。在完成事务之后,改回地址映射,从服务器的物理地址映射删除客户机的页。因为这组操作相对较成本较高,所以不用来传送少量的数据——在此情况中将数据复制到传送缓冲区或从传送缓冲区复制数据比改变地址映射更有效。
在图9中,示出客户机分区902和服务分区908,这两个分区均由系统管理程序(未图示)维护。分区902和908的每一个都有自己的OS,分别是904和910。这些OS分别维护存储器地址映射914和916,它们将虚拟地址映射到分区物理地址。如果要在这些分区之间传送大量信息(主要为数据),最有效的机制涉及改变有关客户机分区的存储器映射914,并将其与某些非虚拟的系统存储器映射907相关联。例如,在图9中,客户机分区902中的“A”映射与非虚拟的系统存储器905中的“3”映射相关联。类似地,服务存储器映射916与非虚拟的系统存储器映射907相关联,从而客户机分区902和服务分区908可访问非虚拟的系统存储器905,而无需将数据从存储器中的一个位置复制到另一个位置。因此,服务分区908中的“b”映射与非虚拟系统存储器905中的“3”映射相关联。不进行复制的代价是必需在事务的开始就改变存储器映射,并且一旦完成事务就要改回。当要传送大量数据时,此折衷方法很有用。
在本发明的另一个方面,图10示出了一种在分区间发送信息而不会导致与上下文切换相关联的成本的机制。当OS在其各自分区上运行时,CPU在这些分区间进行切换,为每个分区提供时间片。在此类时分系统中,上下文切换时,有与从一个任务(或分区)切换到另一个任务(或分区)相关联的成本。
并且,在分区间发送中断也合理地涉及高成本的上下文交换。例如,如果客户机分区要“唤醒”服务分组,从而可从该服务分区获得服务,则可能必需发送此类的中断。类似地,服务分区可能要经由中断让客户机分区知悉其已经完成客户机分区所指定的任务。
为了避免此类高成本的上下文交换,在图10中,在本发明的这个方面,将环形缓冲区用作某分区的命令队列,将其命令放到另一个分区的环形缓冲区中,从而在除了速率条件(在下文讨论)下以外的情形中避免了发送中断。
因此,示出了客户机分区1002和服务分区1010。每个分区运行着某种操作系统,无论是Windows 98还使Windows XP,并且这些分区由某个系统管理程序1016维护。当客户机分区1002需要来自服务分区1010的服务,例如,可能属服务分区1010所有并对应于服务分区1010上的某个合成设备的磁盘控制器服务——获得此服务的一个方法是让客户机分区1002将信息(通常为命令/请求)写入环形缓冲区1006。服务分区1010随即可读出这些命令并照做任何请求。环形缓冲区1006被同时映射到(1006A和1006B)分区1002和1010这个事实允许这些分区能够通信,而不会导致上下文交换的成本。
服务分区1010还能将信息(通常是对请求的响应和/或数据)写入环形缓冲区1006,以使客户机分区1002知悉已完成其请求。在此情形中,用环形缓冲区1006来表示分区总线1008,但也可应用上述的其它模型。
使用此环形缓冲区实现的分区不需要获得中断来从环形缓冲区读取命令,因此可避免发送中断(及所有相关联的上下文交换)的成本。然而,例如当服务分区不是在运行从客户机分区发来的命令时,那么中断是引起那些命令开始运行的适当方法。
简而言之,此情形中的环形缓冲区模型避免了上下文切换的成本,但在两个条件下可使用中断:(1)当传出的环形缓冲区已为空且后来不为空时,或者(2)当传入的环形缓冲区已满且后来不满时,可能必需从一个分区向另一个分区发送中断(从客户机分区1002的观点出发,环形缓冲区1006是传出的环形缓冲区,环形缓冲区1006是传入的环形缓冲区——从服务分区1010的观点出发则相反为真)。
例如,在第一种情形中,当环形缓冲区1006已满且后来不满时,客户机分区1002可能必需让服务分区1010知悉其环形缓冲区1014已为信息(可能为命令/请求)所填满。在第二种情形中,当环形缓冲区1006已满且后来不满时,客户机分区1002可能经由中断让服务分区1010知悉环形缓冲区1006不再是填满的。
本发明的这个方面由其适用于具有一个以上处理器的机器。它可能让客户机分区1002和服务分区1010同时运行,且每个分区向另一个分区发送信息而不会导致上下文交换。
本发明的这个方面的另一种形式将在发送中断前引入延迟,以防本来要接收该中断的分区将在非常短的时间内正好将重新运行而使得中断多余。当然,中断会增加等待时间,但等待时间的成本可能低于中断的成本。
在本发明的另一个方面,分区总线允许一个服务的不同版本和实例并存。在图11中,提供了服务1102。每个服务的ID由2个128位的全局唯一标识符(GUID)组成。这些ID中的第一个唯一地表示了服务实例。例如,服务实例A1104可以是虚拟磁盘,此虚拟磁盘获得分配给它的唯一ID 1108(例如,c80ccb8a……),虚拟磁盘的任何其它实例(未图示)将收到不同的唯一ID。
伴随着服务实例ID,还有服务版本ID,也由GUID表示。此GUID表示服务器所实现的协议。(该协议可以是该服务器所管理的所有命令和操作的总和)。因此,在图11中,服务1102的服务版本ID 1106是:b73606dc……。这两个GUID用于创建合成设备在分区总线上的总线级即插即用ID。在客户机分区中运行的OS的实例可基于这些即插即用ID来决定要加载哪个驱动器,从而允许该OS甚至可能在单独的驱动器文件中维护某服务的多个版本的驱动器。并且,可向不同的设备版本——正如同服务那样——提供GUID来确定设备实例和设备版本。
此外,服务器分区完全可能同时为诸如磁盘等单个资源创建多个服务实例,每个服务实现不同的协议版本。可向客户机分区提供同一个虚拟磁盘的两个实例,由其选择仅仅加载与其所支持的协议版本相关联的驱动器。
在本发明的某些方面,呈现了基于分区的身份和置信度来作策略决策的能力。分区总线通道在某些分区可能不受欢迎。具体地,允许通道提供到达特定安全分区可能是不合适的。此策略有各种理由:(1)不想允许某分区冒充为某安全分区的引导磁盘服务器;(2)不想允许不受信任的I/O路径,或者;(3)不想允许某分区使用另一个分区中的任何资源,当作出通道提供时这可能会发生。
为了支持此类策略决策,本发明现在这个方面训练分区总线通道策略代理。通道策略代理仲裁信道提供。图12示出在运行某版本的Windows的分区的实例中实现的通道策略代理。可假定,此类代理将必需访问分区清单之类的事物,这将保证对此分区应允许某些具体I/O通道,但禁止另一些。
图12中示出本发明这个方面的状态图。在图12中,示出系统管理程序926所维护的3个分区:(1)服务分区1202,(2)安全过滤器分区1204,和(3)安全客分区1206。在服务分区1202中,首先,通道服务器1208向通道管理库1210发送通道提供的请求。第二,该该提供存储在提供缓存1212中。接下来提供缓存1212将提供转发给安全过滤器分区1204的提供缓存1218(或者策略代理正好为某安全分区驻留的位置)。
第三,安全过滤器分区1204中的通道管理库1216将提供向上发送到通道策略代理1214进行审查。第四,通道策略代理1214向通道管理库1216发送响应,告诉库1216终止该提供或转发该提供。第五,如果要转发提供,则将其发送到受信任的客分区1206中的提供缓存1224。
第六,当提供到达提供缓存1224时,它触发枚举通道,该受信任的客分区1206中的软件决定打开信道。第七,信道客户机1220随即直接将消息发回通道服务器1208,打开该信道。因此,以此方法,可由位于安全过滤器分区的策略代理来仲裁通道提供。
分区总线:其它方面
在本发明的其它方面,若干仿真设备模块(EDM)并发地、并与像分区总线等受启发的(虚拟机知悉的)数据传送机制协同操作。以和对物理硬件设备同样的方式响应于I/O请求,EDM被写入。如果给定的客操作系统被写入来支持论及的物理硬件设备(即,它包含对应的驱动器),假设EDM被正确地写入,则该操作系统无需修改即可正确操作。因而EDM提供了极好的与传统操作系统的兼容性,但它们通常引入很高的虚拟化成本。相反,虚拟化服务提供器(VSP)提供好得多的性能,但它们要求为了客户机OS,新的驱动器(以及潜在地,其它修改)要被写入。
在虚拟机系统的一个实例中,在同一服务分区中,至少部分时间同时实现了VSP和EDM,其中与客户机分区内部可用的仿真或虚拟设备形成对比,VSP是位于分区总线上层的服务,为客户机分区中的合成设备提供了后端支持。合成设备是与VSP通信的。
具体地,图13描绘了客户机分区1304和服务分区1302,包含在各分区上运行的其各自的OS 1306和1308。分区总线1312提供了2个分区1302和1304之间通信的手段。并且,这些分区1302和1304都由系统管理程序1320维护。EDM 1316与系统管理程序1320通信以使设备仿真1315对客户机分区1302表现为实际的设备。EDM 1316还依靠VSP 1314同与客户机分区1302共享的实际物理设备1322通信(经由设备驱动程序1318)。VSP 1314还通过合成设备向客户机分区1304显现此设备1322。
在本发明的又一个方面,分区总线从三个库,或更一般地,从三个组件构造而成。因此,在图14A-14C中,按照在不同的模式中所用的形式示出了分区总线的各个组件。这三个组件是:
●环形缓冲区管理
●通道管理,和
●总线驱动程序
不同的环境使用分区总线的不同组件。例如,在图14A中,用户模式服务1431只获得环形缓冲区管理1432组件,因为它靠内核模式的代码进行通道管理。这在图14A中着重表现为实线框的环形缓冲区管理1432组件和灰色字体、虚线框的名为通道管理1434和总线驱动程序1436的另2个组件(表示在用户模式1431中缺失这2个组件)。
在图14B中,内核模式1433的服务收到所有这3个组件,即,环形缓冲区管理1432、通道管理1434、和总线驱动程序1436。
最后,在图14C中,加载器1435环境收到环形缓冲区管理1432和通道管理1434,但未收到总线驱动程序1436(虚线框所示)。简而言之,分区总线是由这3个组件及各种其它次要组件组成的,并且根据使用分区总线的环境,这些组件显现为各种组合。
分区总线使用环形缓冲区管理1432,在分区间用环形缓冲区传送数据。通道管理1434用于建立分区间的通道通信。最后,一旦建立了通信通道,总线驱动程序1436控制分区间的输入和输出操作。因此,在某些分区中的合成设备可拥有其它分区中的实际设备——在硬件级——并且此类实际设备可由其它分区中的其它合成设备使用,因为输入和输出操作是由总线驱动程序1436管理的。
以上已注意到,并非所有的用途都是直接涉及物理设备的。因此,在本发明另外的方面,合宜地以用户模式组件(例如DLL)而不是内核模式驱动器来实现不对应于物理设备的许多用途。分区总线提供了足够的基础结构供完全以用户模式创建这些组件,从而允许其置信地址空间管理、中断传递、和其它一般仅从内核模式可访的服务。
尽管结合如各附图中所示的较佳方面来描述本发明,应当理解,可使用其它类似的方面,或者可对所描述的方面进行修改和添加以执行本发明同样的功能,而不会偏离本发明。例如,在本发明的某些方面,描述了分区总线,它提供了在分区间传送数据、以及将设备的所有权分配给选中的分区并与其它分区共享该设备的服务的机制。但是,本文的教义还构想了本发明的这个方面的其它等效设备。因此,不应将本发明限于任何单独的方面,而应根据所附的权利要求术的广度和范围来解释本发明。

Claims (20)

1.一种用于在虚拟机环境中的各分区间提供集成的方法,包括:
使用第一分区和第二分区;以及
使用一传输机制,其中,所述传输机制允许通过使用(a)环形缓冲区,以及(b)传送页和地址空间操纵中的任一个中的至少一种,在所述第一分区和所述第二分区间传送信息。
2.如权利要求1所述的方法,其特征在于,所述环形缓冲区用于在所述第一分区和所述第二分区间传送信息,并且其中,所述信息包括请求和数据中的至少一个。
3.如权利要求1所述的方法,其特征在于,所述环形缓冲区和传送页都用于在所述第一分区和所述第二分区间传送信息,其中,所述环形缓冲区用于在所述第一分区和所述第二分区间传送请求,并且其中,所述传送页用于在所述第一分区和所述第二分区间传送数据。
4.如权利要求1所述的方法,其特征在于,所述环形缓冲区和所述地址空间操纵都用于在所述第一分区和所述第二分区间传送信息,其中,所述环形缓冲区用于在所述第一分区和所述第二分区间传送请求,并且其中,所述地址空间操纵用于在所述第一分区和所述第二分区间传送数据。
5.如权利要求1所述的方法,其特征在于,还包括所述第一分区中所包含的用于驱动实际硬件设备的设备驱动程序,以及所述第二分区中所包含的合成设备,其中,所述传送机制允许将所述实际硬件设备的所有权分配给所述合成设备。
6.如权利要求5所述的方法,其特征在于,所述合成设备还能对应于抽象服务。
7.如权利要求1所述的方法,其特征在于,所述传送机制允许所述第一分区和所述第二分区交换信息而不会导致上下文切换的成本,其中,所述传送机制使用映射到所述第一分区并映射到所述第二分区的环形缓冲区,其中,信息可由所述第一分区写入所述环形缓冲区中,并由所述第二分区从所述环形缓冲区中读出,并且其中,信息可由所述第二分区写入所述环形缓冲区中,并由所述第一分区从所述环形缓冲区中读出。
8.如权利要求1所述的方法,其特征在于,还包括所述第一分区中所包含的服务和设备中的一项,其中,所述服务和所述设备的每一个都具有全局唯一标识符,以分别指定服务版本和实例、以及设备版本和实例。
9.如权利要求1所述的方法,其特征在于,还包括策略代理,其中,所述策略代理审查从所述第一分区向所述第二分区所作的至少一个通道提供,并且其中,所述策略代理能驻留在第三分区中。
10.如权利要求1所述的方法,其特征在于,所述传送机制是由环形缓冲区管理、通道管理、和总线驱动程序所组成的分区总线,其中,所述分区总线在用户模式中仅使用所述环形缓冲区管理,并且其中,所述分区总线在内核模式中同时使用所述环形缓冲区管理、所述通道管理和所述总线驱动程序三者。
11.如权利要求1所述的方法,其特征在于,仿真硬件模块和虚拟化服务提供器在所述第一分区中同时操作,并且其中,所述虚拟化服务提供器允许在所述第一分区中枚举所述第二分区中的合成设备。
12.一种用于在虚拟机环境中的各分区之间提供集成的系统,包括:
第一分区;
第二分区;以及
传输机制,其中,所述传输机制允许通过使用(a)环形缓冲区,以及(b)传送页和地址空间操纵中的任一个中的至少一种,在所述第一分区和所述第二分区间传送信息。
13.如权利要求12所述的系统,其特征在于,所述环形缓冲区和所述传送页都用于在所述第一分区和所述第二分区间传送信息,其中,所述环形缓冲区用于在所述第一分区和所述第二分区间传送请求,并且其中,所述传送页用于在所述第一分区和所述第二分区间传送数据。
14.如权利要求12所述的系统,其特征在于,所述环形缓冲区和所述地址空间操纵都用于在所述第一分区和所述第二分区间传送信息,其中,所述环形缓冲区用于在所述第一分区和所述第二分区间传送请求,并且其中,所述地址空间操纵用于在所述第一分区和所述第二分区间传送数据。
15.如权利要求12所述的系统,其特征在于,还包括所述第一分区中所包含的用于驱动实际硬件设备的设备驱动程序,以及所述第二分区中所包含的合成设备,其中,所述传送机制允许将所述实际硬件设备的所有权分配给所述合成设备,且此外,所述合成设备还能对应于抽象服务。
16.如权利要求12所述的系统,其特征在于,所述传送机制允许所述第一分区和所述第二分区交换信息而不会导致上下文切换的成本,其中,所述传送机制使用映射到所述第一分区并映射到所述第二分区的环形缓冲区,其中,信息可由所述第一分区写入所述环形缓冲区中,并由所述第二分区从所述环形缓冲区中读出,并且其中,信息可由所述第二分区写入所述环形缓冲区中,并由所述第一分区从所述环形缓冲区中读出。
17.如权利要求12所述的系统,其特征在于,还包括所述第一分区中所包含的服务和设备中的一项,其中,所述服务和所述设备的每一个都具有全局唯一标识符,以分别指定服务版本和实例、以及设备版本和实例。
18.如权利要求12所述的系统,其特征在于,还包括策略代理,其中,所述策略代理审查从所述第一分区向所述第二分区所作的至少一个通道提供,并且其中,所述策略代理能驻留在第三分区中。
19.如权利要求12所述的系统,其特征在于,仿真硬件模块和虚拟化服务提供器在所述第一分区中同时操作,并且其中,所述虚拟化服务提供器允许在所述第一分区中仿真所述第二分区中的合成设备。
20.一种带有用于在虚拟机环境中的各分区间提供集成的计算机可执行指令的计算机可读介质,包括:
使用第一分区和第二分区;以及
提供一传输机制,其中,所述传输机制允许通过使用(a)环形缓冲区,以及(b)传送页和地址空间操纵中的任一个中的至少一种,在所述第一分区和所述第二分区间传送信息。
CNA2005100990820A 2005-05-12 2005-09-01 分区总线 Pending CN1862494A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/128,647 2005-05-12
US11/128,647 US7689800B2 (en) 2005-05-12 2005-05-12 Partition bus

Publications (1)

Publication Number Publication Date
CN1862494A true CN1862494A (zh) 2006-11-15

Family

ID=35295557

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005100990820A Pending CN1862494A (zh) 2005-05-12 2005-09-01 分区总线

Country Status (15)

Country Link
US (2) US7689800B2 (zh)
EP (1) EP1722301B1 (zh)
JP (1) JP4942966B2 (zh)
KR (1) KR20060117869A (zh)
CN (1) CN1862494A (zh)
AU (1) AU2005203519A1 (zh)
BR (1) BRPI0503636A (zh)
CA (1) CA2518014A1 (zh)
CO (1) CO5730016A1 (zh)
NO (1) NO20054000L (zh)
NZ (1) NZ541625A (zh)
RU (1) RU2390827C2 (zh)
SG (1) SG127782A1 (zh)
TW (1) TW200639642A (zh)
ZA (1) ZA200506982B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262557A (zh) * 2010-05-25 2011-11-30 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架
CN102495750A (zh) * 2010-09-30 2012-06-13 微软公司 虚拟桌面配置和操作技术
CN101849230B (zh) * 2007-09-06 2013-01-16 惠普开发有限公司 在多主机环境中共享遗留设备

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070050767A1 (en) * 2005-08-31 2007-03-01 Grobman Steven L Method, apparatus and system for a virtual diskless client architecture
US7389398B2 (en) * 2005-12-14 2008-06-17 Intel Corporation Methods and apparatus for data transfer between partitions in a computer system
US8868628B2 (en) * 2005-12-19 2014-10-21 International Business Machines Corporation Sharing computer data among computers
WO2007071116A1 (en) * 2005-12-23 2007-06-28 Intel Corporation Managing device models in a virtual machine cluster environment
US8249853B2 (en) * 2006-03-31 2012-08-21 Intel Corporation Exposing device features in partitioned environment
US7987469B2 (en) 2006-12-14 2011-07-26 Intel Corporation RDMA (remote direct memory access) data transfer in a virtual environment
US9317309B2 (en) * 2006-12-28 2016-04-19 Hewlett-Packard Development Company, L.P. Virtualized environment allocation system and method
JP4907371B2 (ja) * 2007-02-01 2012-03-28 株式会社日立ソリューションズ ウィルス感染及び機密情報漏洩防止対策システム
US8479208B2 (en) * 2007-03-30 2013-07-02 Intel Corporation System partitioning to present software as platform level functionality including mode logic to maintain and enforce partitioning in first and configure partitioning in second mode
US8261284B2 (en) * 2007-09-13 2012-09-04 Microsoft Corporation Fast context switching using virtual cpus
US7802062B2 (en) * 2007-09-28 2010-09-21 Microsoft Corporation Non-blocking variable size recyclable buffer management
JP4618455B2 (ja) * 2008-04-09 2011-01-26 日本電気株式会社 端末装置、ネットワーク接続方法及びプログラム
JP2010004979A (ja) * 2008-06-25 2010-01-14 Fujifilm Corp 画像処理装置、および内視鏡用プロセッサ装置
US8117346B2 (en) * 2008-10-03 2012-02-14 Microsoft Corporation Configuration space virtualization
KR101437122B1 (ko) 2008-12-03 2014-09-02 삼성전자 주식회사 Os 가상화를 이용하여 서비스를 제공하는 장치 및 방법
US20100313249A1 (en) * 2009-06-08 2010-12-09 Castleman Mark Methods and apparatus for distributing, storing, and replaying directives within a network
US20100313244A1 (en) * 2009-06-08 2010-12-09 Castleman Mark Methods and apparatus for distributing, storing, and replaying directives within a network
US20100310193A1 (en) * 2009-06-08 2010-12-09 Castleman Mark Methods and apparatus for selecting and/or displaying images of perspective views of an object at a communication device
US8286084B2 (en) * 2009-06-08 2012-10-09 Swakker Llc Methods and apparatus for remote interaction using a partitioned display
WO2010144430A1 (en) * 2009-06-08 2010-12-16 Swakker Llc Methods and apparatus for remote interaction using a partitioned display
US20100311393A1 (en) * 2009-06-08 2010-12-09 Castleman Mark Methods and apparatus for distributing, storing, and replaying directives within a network
KR101640769B1 (ko) * 2009-11-06 2016-07-19 삼성전자주식회사 가상화 시스템 및 그것의 명령어 실행 방법
US9389895B2 (en) 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
JP5567414B2 (ja) * 2010-06-30 2014-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報漏洩のリスクを極小化しながらデータを外部で保管できるようにデータを処理する方法
US8463980B2 (en) * 2010-09-30 2013-06-11 Microsoft Corporation Shared memory between child and parent partitions
US8832686B2 (en) 2010-10-29 2014-09-09 Microsoft Corporation Inherited product activation for virtual machines
US8924964B2 (en) 2010-11-01 2014-12-30 Microsoft Corporation Dynamic allocation and assignment of virtual environment
US9836478B2 (en) * 2011-04-11 2017-12-05 Ineda Systems Inc. File system sharing
US20130117744A1 (en) * 2011-11-03 2013-05-09 Ocz Technology Group, Inc. Methods and apparatus for providing hypervisor-level acceleration and virtualization services
US9141529B2 (en) * 2012-08-14 2015-09-22 OCZ Storage Solutions Inc. Methods and apparatus for providing acceleration of virtual machines in virtual environments
US9176678B2 (en) 2012-11-30 2015-11-03 International Business Machines Corporation Common contiguous memory region optimized virtual machine migration within a workgroup
US20140310706A1 (en) * 2012-12-17 2014-10-16 Unisys Corporation Method for managing commodity computing
KR101451781B1 (ko) * 2013-04-05 2014-10-16 국방과학연구소 가상머신 환경에서 가상화 시스템의 장치 복제 시스템 및 그 방법
GB2519578B (en) * 2013-10-25 2016-02-17 Samsung Electronics Co Ltd Managing data transfer
US20150121376A1 (en) * 2013-10-25 2015-04-30 Samsung Electronics Co., Ltd. Managing data transfer
RU2569873C1 (ru) * 2014-08-05 2015-11-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Тольяттинский государственный университет" Способ формирования жаростойких покрытий
RU2598323C1 (ru) * 2015-03-26 2016-09-20 Общество с ограниченной ответственностью "Научно-производственное предприятие "Цифровые решения" Способ адресации кольцевого буфера в памяти микропроцессора
CN107209681B (zh) * 2015-10-21 2020-07-07 华为技术有限公司 一种存储设备访问方法、装置和系统
US10298447B2 (en) * 2016-08-08 2019-05-21 American Megatrends, Inc. System and method for accessing real sensors for virtual service processor stack
JP6496456B1 (ja) 2017-07-31 2019-04-03 三菱電機株式会社 情報処理装置
CN110998529B (zh) 2017-07-31 2021-08-20 三菱电机株式会社 信息处理装置以及信息处理方法
US11099911B1 (en) * 2019-07-01 2021-08-24 Northrop Grumman Systems Corporation Systems and methods for inter-partition communication
CN110868365B (zh) * 2019-11-20 2023-04-07 中国航空工业集团公司西安航空计算技术研究所 通信方法和通信系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000036509A2 (en) * 1998-12-18 2000-06-22 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US20020129274A1 (en) * 2001-03-08 2002-09-12 International Business Machines Corporation Inter-partition message passing method, system and program product for a security server in a partitioned processing environment
CN1497469A (zh) * 2002-10-24 2004-05-19 国际商业机器公司 在虚拟机或其他计算机实体之间传送数据的系统和方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US83481A (en) * 1868-10-27 Improvement in shovel-plows
JPH01191234A (ja) * 1988-01-26 1989-08-01 Fujitsu Ltd 仮想計算機間通信方式
JP2945498B2 (ja) 1991-04-12 1999-09-06 富士通株式会社 システム間通信方式
US5548728A (en) * 1994-11-04 1996-08-20 Canon Information Systems, Inc. System for reducing bus contention using counter of outstanding acknowledgement in sending processor and issuing of acknowledgement signal by receiving processor to indicate available space in shared memory
EP0991081B1 (en) 1998-09-30 2005-11-30 STMicroelectronics S.r.l. Emulated EEPROM memory device and corresponding method
JP2001290665A (ja) 2000-04-11 2001-10-19 Nec Software Hokuriku Ltd プロセッサシステム
US20030093258A1 (en) * 2001-11-14 2003-05-15 Roman Fishstein Method and apparatus for efficient simulation of memory mapped device access
US6725284B2 (en) * 2002-04-25 2004-04-20 International Business Machines Corporation Logical partition hosted virtual input/output using shared translation control entries
US7376949B2 (en) * 2003-10-01 2008-05-20 Hewlett-Packard Development Company, L.P. Resource allocation and protection in a multi-virtual environment
US7318140B2 (en) * 2004-06-10 2008-01-08 International Business Machines Corporation Method and apparatus for dynamic hosting partition page assignment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000036509A2 (en) * 1998-12-18 2000-06-22 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US20020129274A1 (en) * 2001-03-08 2002-09-12 International Business Machines Corporation Inter-partition message passing method, system and program product for a security server in a partitioned processing environment
CN1497469A (zh) * 2002-10-24 2004-05-19 国际商业机器公司 在虚拟机或其他计算机实体之间传送数据的系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PAUL BARHAM,BORIS DRAGOVIC,KEIR FRASER,STEVEN HAND,TIMHARRIS, ALEX HO,ROLF NEUGEBAUER,IAN PRATT,ANDREW WARFIELD: "Xen and the Art of Virtualization", SOURCE ACM SIGOPS OPERATING SYSTEMS REVIEW ARCHIVE37 5 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101849230B (zh) * 2007-09-06 2013-01-16 惠普开发有限公司 在多主机环境中共享遗留设备
CN102262557A (zh) * 2010-05-25 2011-11-30 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架
CN102262557B (zh) * 2010-05-25 2015-01-21 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架
CN102495750A (zh) * 2010-09-30 2012-06-13 微软公司 虚拟桌面配置和操作技术
CN102495750B (zh) * 2010-09-30 2015-02-04 微软公司 用于部署虚拟桌面的方法和系统

Also Published As

Publication number Publication date
EP1722301B1 (en) 2013-05-29
US8112610B2 (en) 2012-02-07
US7689800B2 (en) 2010-03-30
ZA200506982B (en) 2007-04-25
BRPI0503636A (pt) 2007-01-09
NO20054000D0 (no) 2005-08-29
CA2518014A1 (en) 2006-11-12
CO5730016A1 (es) 2007-02-28
AU2005203519A1 (en) 2006-11-30
NZ541625A (en) 2006-09-29
US20060259731A1 (en) 2006-11-16
SG127782A1 (en) 2006-12-29
RU2390827C2 (ru) 2010-05-27
KR20060117869A (ko) 2006-11-17
US20110066782A1 (en) 2011-03-17
NO20054000L (no) 2006-11-13
JP4942966B2 (ja) 2012-05-30
RU2005127422A (ru) 2007-03-10
JP2006318441A (ja) 2006-11-24
EP1722301A2 (en) 2006-11-15
EP1722301A3 (en) 2006-12-06
TW200639642A (en) 2006-11-16

Similar Documents

Publication Publication Date Title
CN1862494A (zh) 分区总线
US10552208B2 (en) Migrating a virtual machine that owns a resource such as a hardware device
US11182717B2 (en) Methods and systems to optimize server utilization for a virtual data center
Murthy et al. Apache Hadoop YARN: moving beyond MapReduce and batch processing with Apache Hadoop 2
EP1674987B1 (en) Systems and methods for exposing processor topology for virtual machines
KR102047558B1 (ko) 가상 디스크 저장 기술
CN102460382B (zh) 标注虚拟应用进程
EP1628214B1 (en) Systems and methods for implementing an operating system in a virtual machine environment
US8874888B1 (en) Managed boot in a cloud system
CN104011677B (zh) 利用流技术在多个目标上部署软件映像的方法及系统
US7984438B2 (en) Virtual machine transitioning from emulating mode to enlightened mode
CN101326489A (zh) 用于运行多个环境的操作系统小型引导
CN105144093A (zh) 使用基础设施管理代理供应的工作负荷部署
US8006254B2 (en) Bequeathing privilege to a dynamically loaded module
KR20060046042A (ko) 에뮬레이트된 컴퓨팅 환경을 이용하여 운영 체계 라이센스매출을 수금하기 위한 시스템 및 방법
CN104636077A (zh) 用于虚拟机的网络块设备存储系统与方法
CN102207896A (zh) 虚拟机崩溃文件生成技术
CN102402462A (zh) 用于对启用gpu的虚拟机进行负载平衡的技术
CN109690482A (zh) 虚拟机图形处理器的分配
CN114625484B (zh) 虚拟化实现方法、装置、电子设备、介质及arm平台
US20120311572A1 (en) Method and apparatus for implementing virtual proxy to support heterogenous systems management
CN1920731A (zh) 一种实现操作系统隔离的系统及方法
CN107667343A (zh) 按需加载资源
CN118426912B (zh) 基于gpu的用户容器处理方法、装置、设备及介质
Rao et al. A NOVEL CLOUD SYSTEM STORAGE AND COMPUTING VIRTUALIZATION MANAGEMENT FRAMEWORK.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20061115

CI01 Publication of corrected invention patent application

Correction item: Rejection of patent application

Correct: Dismiss

False: Reject

Number: 32

Volume: 26

ERR Gazette correction

Free format text: CORRECT: PATENT APPLICATION REJECTION OF AFTER PUBLICATION; FROM: REJECTION TO: REVOCATION REJECTED

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150728

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

Effective date of registration: 20150728

Address after: Washington State

Applicant after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Applicant before: Microsoft Corp.

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20061115