CN101405712B - 利用虚拟化技术来加速域特定运行时环境的框架 - Google Patents
利用虚拟化技术来加速域特定运行时环境的框架 Download PDFInfo
- Publication number
- CN101405712B CN101405712B CN200780009841.7A CN200780009841A CN101405712B CN 101405712 B CN101405712 B CN 101405712B CN 200780009841 A CN200780009841 A CN 200780009841A CN 101405712 B CN101405712 B CN 101405712B
- Authority
- CN
- China
- Prior art keywords
- subregion
- performance
- performance critical
- dsrte
- domain
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
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)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
在一些实施例中,本发明涉及利用虚拟化技术来有效地支持域特定运行时环境的框架。在至少一个实施例中,使用框架以利用虚拟化技术(VT)来划分相同的域特定应用程序的性能关键和非性能关键任务。本发明的一个实施例利用通用操作系统来执行域的非性能关键方面,并利用特权的VT-根模式来执行该域的性能关键方面。另一个实施例利用一个或多个访客VM来执行域特定运行时环境的性能关键方面。还描述和主张其它实施例。
Description
技术领域
一般来说,本发明的实施例涉及利用虚拟化技术的计算环境,更具体地说,涉及利用虚拟化技术来有效地支持域特定运行时环境的框架。
背景技术
存在各种机制用来在单个平台中实现多个虚拟机。一类称为虚拟机监视器(VMM)的软件使得单个平台/处理器能够同时支持多个访客操作系统。公司的虚拟化技术(VT)使得能够在体系结构(IA)处理器上(以及最终在平台上)有效执行VMM。
在VT环境中,会向每个访客操作系统(OS)提供处理器和平台的“虚拟机”(VM)视图,并且访客OS通常不知道它并没有控制所有的处理器或平台资源。利用VMM的动机包括合并物理硬件(例如,一个硬件平台合并之前在多个物理平台上执行的软件)和资源划分以实现可管理性、安全性和质量原因的任意组合(例如,托管多个访客的平台可以使用VMM来向那些支付高额费用的被托管应用程序提供隔离和更好的服务)。
目前,使用VT来创建VMM软件,该VMM软件调度和隔离多个访客操作系统的执行。计算模型是,域或应用的性能关键和非性能关键代码在相同的访客操作系统(VT非根模式)中运行,并且VT根模式中的软件那时只用于确保访客操作系统之间的隔离和公正。
如行业从业人员所注意到的那样,利用通用平台作为嵌入式或域特定设备(如联网设备)存在性能问题。设备类型可以包括侵入检测或XML加速,但也可以适用于其它域。这些问题与需要访问来自通用操作系统(GPOS)的服务的应用程序有关,通用操作系统如 或BSD变型(如 或OpenBSD)、在通用OS下运行的这些域特定应用程序的性能往往较差。具体来说,对于网络设备,问题包括存在太多的中断或大量的缓冲器副本。为了消除这个问题,厂商已经对通用OS做出大量的修改以适应联网应用。换句话说,厂商已经通过实现与GPOS紧密结合的定制域特定运行时环境(DSRTE)克服了这个问题。这些平台很难维护。当对通用OS做出更新时,通常会有“多米诺”效应,从而需要对DSRTE做出改变。对GPOS所做的一些改变可以是对内核模块所做的类似于内核模块的动态链接库(dll)的修改,但也可以是对调度器或网络堆栈的改变。当更新或修改GPOS时,对GPOS所做的非dll修改或直接改变极难维护。
附图说明
通过以下对本发明的详细描述,本发明的特征和优点将变得显而易见,其中:
图1是可以在其上实现本发明的实施例的示例性平台的框图;
图2是示出根据本发明的实施例的传统管理程序虚拟机监视器(VMM)体系结构平台的框图;
图3A-B是示出域特定运行时环境体系结构的选择的框图;
图4是示出根据本发明的实施例、用于执行DSRTE的框架的框图,该DSRTE不仅控制着平台资源(处理器、存储器、I/O),而且还与未经修改的通用OS共存;
图5是示出根据本发明的实施例、用于利用虚拟化来实现有效的域特定运行时环境(DSRTE)的方法的流程图;
图6是示出根据本发明的实施例、用于执行DSRTE的框架的框图,该DSRTE利用多个访客VM来划分一个应用程序的任务;以及
图7是示出本发明的实施例可用的存储器映射的框图。
具体实施方式
本发明的实施例是关于域特定运行时环境的系统和方法。在至少一个实施例中,本发明要利用利用与现有系统中所用的虚拟化技术(VT)不同的虚拟化技术的框架。不是支持多个访客操作系统,本发明的实施例而是描述这样一种框架,它利用VT来有效地支持域特定运行时环境(DSRTE)(如同在诸如联网设备的特定域的嵌入式系统中所常见的那样),同时维持对于应用程序和现有通用操作系统的透明度。运行时环境的实施例允许在DSRTE中执行的应用程序的性能关键部分在体系结构(IA)处理器的特权VT-根模式中或在具有适于该特定域的特殊特权的独立VM中运行。应用程序和操作系统(OS)不知道这种变化;因此,当需要OS服务时,这些服务仍可用,但是运行时环境现在可以用调谐到它的特定域的方式来控制处理器和平台资源。这种方法对于通用操作系统(GPOS)很难,或者有时不可能。本发明的实施例将虚拟化技术的范围扩展到Intel体系结构(IA)和目前在IA上运行的通用操作系统的通用性目前还不适合的域中。其它平台体系结构也可以受益。
说明书中提到本发明的“一个实施例”时是指,结合该实施例描述的特定特征、结构或特性包含在本发明的至少一个实施例中。因此,在整篇说明书的各个地方出现短语“在一个实施例中”时不一定都指相同的实施例。
出于说明的目的,阐述了特定配置和细节,以便充分理解本发明。但是,本领域的技术人员将明白,在没有本文介绍的这些特定细节的情况下,也可以实现本发明的实施例。此外,可以省略或简化众所周知的特征,以免使本发明晦涩难懂。本说明书中给出了各种实例。这些实例只是为了描述本发明的具体实施例。本发明的范围不限于所给出的实例。
图1是可以在其上实现本发明的实施例的示例性平台的框图。处理器110经由前端总线101与存储器控制器集线器(MCH)114(又称为北桥)通信。MCH114经由存储器总线103与系统存储器112通信。MCH114还可经由图形总线105与高级图形端口(AGP)116通信。MCH114经由外围组件互连(PCI)总线107与I/O控制器集线器(ICH)120(又称为南桥)通信。ICH120可以经由低引脚计数(LPC)总线109耦合到一个或多个组件,如PCI硬盘驱动器(未示出)、传统组件(如IDE122、USB124、LAN126和音频128)及高级I/O(SIO)控制器156。
处理器110可以是能够执行软件的任何类型的处理器,如微处理器、数字信号处理器、微控制器等。尽管图1只示出一个这样的处理器110,但在平台硬件100中可以存在一个或多个处理器,并且这些处理器中的一个或多个处理器可以包括多个线程、多个核等。
存储器112可以是硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器、或可以由处理器110读取的任何其它类型的介质。存储器112可以存储用于完成本发明的方法实施例的执行的指令。
诸如闪速存储器152的非易失性存储器可以经由低引脚计数(LPC)总线109耦合到IO控制器。BIOS固件154通常驻留在闪速存储器152中,并且启动将执行来自闪速存储器或固件的指令。
在一些实施例中,平台100是启用服务器管理任务的服务器。该平台实施例可以具有经由LPC109耦合到ICH120的底板管理控制器(BMC)150。
图2是示出传统管理程序VMM体系结构平台200的框图。多个访客VM201、203、205和207可以同时在平台200上运行。虚拟机监视器(VMM)210经由处理器/平台虚拟化层211控制访客VM对硬件220的访问。在VMM210内可以存在多个虚拟设备模型213和215。VMM210能以最高特权级操作。VMM210控制对文件系统、存储器和所有设备的访问,这将在下文进一步描述。VMM210通常具有用于平台上的每个硬件设备的设备驱动程序219。
VMM210和访客VM201、203、205和207在平台硬件220上执行。平台硬件220可以包括处理器222、存储器224以及一个或多个I/O设备226和228。平台硬件220可以是个人计算机(PC)、主机、手持式设备、便携式计算机、机顶盒或任何其它计算系统。
处理器222可以是能够执行软件的任何类型的处理器,如微处理器、数字信号处理器、微控制器等。尽管图2只示出一个这样的处理器222,但在平台硬件220中可以存在一个或多个处理器,并且这些处理器中的一个或多个处理器可以包括多个线程、多个核等。
存储器224可以是硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器、或可以由处理器222读取的任何其它类型的介质。存储器224可以存储用于完成本发明的方法实施例的执行的指令。
这个或这些I/O设备226和228可以是例如网络接口卡、通信端口、视频控制器、系统总线上的盘控制器(例如,外围组件互连(PCI)、行业标准体系结构(ISA)、高级图形端口(AGP))、集成到芯片集逻辑或处理器中的设备(如实时时钟、可编程计时器、性能计数器)、或平台硬件220上的任何其它设备。这个或这些I/O设备226和228可以通过I/O指令、存储器映射I/O访问或通过本领域中已知的任何其它方式来访问。
图3A-B是示出域特定运行时环境体系结构的选择的框图。域特定应用程序(DS-App)301和运行时环境303需要来自操作系统(OS)305的一些服务。对于最佳性能,域特定应用程序需要控制平台100的其它方面。例如,嵌入式分组处理系统可以得益于定制的知道分组的调度器、存储器管理器和网络接口卡(NIC)服务(I/O服务)。偶尔地,对文件系统的访问也是必需的。
图3A示出域特定运行时环境体系结构的第一选择。平台100上的域特定运行时环境(domain-specific run-time environment DSRTE)303在现有OS305及其应用程序之上执行。该方法通常执行较差,因为GPOS的假定通常不适于诸如网络分组处理环境之类的环境。例如,通用操作系统利用中断来在网络设备与CPU之间通信,并使用分页来管理虚拟存储器。这些技术益处较少,并且对于分组处理应用显示出显著的性能降级。
图3B示出DSRTE体系结构的另一个选择。这里,DSRTE313与OS315紧密耦合。尽管这向DSRTE及其应用程序提供了域特定性能和控制方面,但它具有额外的用于测试和维护经过修改的OS的不良成本。该方法还禁止使用闭合源GPOS,由此不能提供足以实现该紧密耦合的控制。
在以下论述中,使用网络分组处理域来说明本发明的实施例。本领域的技术人员将明白,目前受现有操作系统的通用性限制的任何域特定运行时都可以在本发明框架内适用。
在一个实施例中,该平台可以分成两个域。一个域驻留在具有需要GPOS的服务的代码/模块的未经修改的GPOS中,这些代码/模块是由厂商选择的。这些模块通常是非性能关键进程(non-performancecritical process),例如对硬盘驱动器或USB端口的偶尔访问或对GUI的访问。另一个域可以包含可“在裸露金属上运行”的性能关键进程。换句话说,在这些进程与硬件本身之间基本不存在层。出于本论述的目的,将一个域称为VT-根模式,而将另一个域称为非VT-根模式。性能关键任务将在VT-根模式中运行。在备选实施例中,性能关键(performance critical)任务可以在一个非VT-根VM中运行,而非性能关键任务可以在另一个非VT-根VM中运行,其中VT-根模式中的VMM控制这两个VM。
现在参照图4,示出说明根据本发明的实施例、用于执行DSRTE的框架的框图,其中该DSRTE不仅控制平台资源(处理器、存储器、I/O),而且还与未经修改的通用OS(GPOS)共存。OS405可以在访客虚拟机(VM)201中运行,并且不知道在访客VM203中运行的DSRTE403实际上控制着诸如调度、存储器管理及I/O的平台资源,然而当它的应用程序401需要非性能关键服务时,域特定运行时可以听从访客OS(201)。在本发明的实施例中,DSRTE403仍然呈现这样一种观点,即,应用程序401是在DSRTE403之上执行的,而DSRTE403又在OS405之上。但是,在实施例中,域特定应用程序(DS-App)401执行非性能关键任务。如椭圆409所示,在VT-根DSRTE407中执行DS-App的性能关键任务。VT-根(VT-root)模式407中的DS-App409与在DSRTE403的GPOS部分中运行的DS-App401通信。
但是,DSRTE403可以在VT-根模式运行它的应用程序的性能关键部分,并采用为该应用程序的域优化的方式开始执行这些应用程序401。当应用程序401请求DSRTE403的VT-根部分407所不支持的OS服务时,调度访客OS201/203,并允许其为该请求服务。在一个实施例中,VT-根模式407是应用程序的主要执行环境,并使用单个访客OS来扩展提供给应用程序的服务集。本发明对于现有应用程序和OS透明。
图5是示出根据本发明的一个实施例、用于利用虚拟化来实现有效的域特定运行时环境(DSRTE)的方法的流程图。在本发明的一个实施例中,在方框501,在初始化时,DSRTE可以启用VT-根执行,并假设(assume)虚拟机监视器(VMM)的传统地位(traditional place)。在方框503,可以通过VT-根DSRTE组件将未经修改的应用程序二进制数提供给DSRTE并加载到存储器中。在方框505,可以允许应用程序二进制数在VT-根模式中执行。然后,在方框507,可以加载未经修改的GPOS,并使其在非VT-根模式中运行,从而允许运行应用程序的非性能关键组成部分。然后,如同在方框509中那样,应用程序的性能关键部分可以在VT-根模式中运行,同时应用程序的非性能关键部分在非VT-根模式中在GPOS下运行。基于本文的描述,本领域的技术人员将明白,这可以用多种方式来实现。在一个实施例中,应用程序的不同部分经由分时法来同时运行。在另一个实施例中,应用程序的不同部分在不同的处理器上下文、线程或核上运行。
例如,在无线路由器的一个实现中,在路由器上运行的进程可以在两个域中运行。用于控制路由器设置的GUI接口可以在非VT-根(非性能关键)域中运行。网络分组通信和处理可以在VT-根(性能关键)域中运行。本领域的技术人员将明白,可以使用多种技术来在这两个域之间通信。例如,在虚拟化技术中,可以在不同的实现中利用邮箱、共享存储器或软件机制来在这两个域之间发送网络分组。可以在URLwww.xensource.com的公共因特网上找到与Xen有关的用来在VM之间传递信息的一些技术,其中Xen是企业级开放源虚拟化应用程序。与虚拟化技术有关的其它信息可以在www.intel.com/cd/ids/developer/asmo-na/eng/dc/enterprise/technologies/ 197668.htm找到。
当在非VT-根模式中执行VM时发生了具有特殊意义的操作或事件时,处理器可以跳转到VT-根模式。在VT技术中,这可以称为VM-EXIT(从VM退出)。当根域结束该特殊情形的处理时,可以利用VM-ENTER将控制转回到之前执行的VM。
例如,在网络分组交换的一个实施例中,DSRTE可以处理大部分的分组,而不管它是否是在VT-根域或专门的VM中。因此,与GPOSVM的通信将最少,并且性能关键操作仍保留在DSRTE中。
在一些实施例中,将VMM最小化以使得性能关键任务能够直接访问I/O驱动器/设备,或具有较少的开销。如上所述,在一个实施例中,DSRTE是VMM的一部分,在另一个实施例中,DSRTE是访客OS/访客VM的一部分。参照图6,VMM611在平台100上以VT-根模式操作。GPOS在访客VM605中执行。一个或多个DS-App601在DSRTE603中的GPOS访客VM内执行。但是,DS-App609的性能关键方面实际上是由第二访客VM607执行的。控制可以通过VMM611经由在第一访客VM605中运行的DS-App601所引起的VM-EXIT而转到第二访客VM607。在该实施例中,VMM611确定应当将控制转到第二访客VM中的性能关键DS-App部分。并且,在不同分区上运行的应用程序部分可以经由共享存储器或消息传递而相互通信。
在另一个实施例中,至少一个与DSRTE无关的额外访客VM可以在平台上运行。在此情形下,该额外访客VM可以执行与DSRTE无关的性能关键或非性能关键任务。在又一个实施例中,DSRTE可能需要几个不同的性能关键任务。例如,在非VT-根实施例(图6)中,这些任务中的每个任务可以在它自己的访客VM中运行。例如,对于具有多个I/O端口的嵌入式设备,每个端口可以配置成用于执行不同的功能。每个端口的活动可以视为性能关键的,并且它们的性能关键DSRTE可以在它们自己的访客VM中操作。
尽管用网络通信实例说明了以上描述,但是本发明的实施例可以适合与各种应用配合使用。在应用程序的性能关键与非性能关键方面之间具有显著差异的应用程序可以是使用该方法的良好的候选者。例如,在机顶盒环境中,音频-视频流的编码和解码可以在性能关键DSRTE中执行,而用户接口、或程序指南的下载、或软件更新可以在GPOS VM中执行。
在另一个实施例中,可以轮询I/O设备的活动而不是依靠中断。这可以增加性能。页故障非常昂贵,因此可以为性能关键代码禁用虚拟存储器设施。性能关键DSRTE在直接访问设备时表现会更好。因此,在性能关键DSRTE是在访客VM中而不是在VT-根模式中运行的实施例中,访客VM将需要知道相对于设备的存储器地址偏移以便正确地直接访问它们。PCI设备被存储器映射到物理空间中。这两个域之间的通信对于实现该要求来说是必需的。
参照图7,示出说明存储器映射的框图。当性能关键DSRTE部分在非根模式中运行时,访客操作系统(访客VM)相信它控制着在地址0x00000000开始的物理存储器块,此时,实际上,它只具有系统的实际物理存储器的一部分,该部分在由运行在VT-根模式的VMM决定的某个偏移处开始。使用VT的VMM具有必须确保将通过访客VM设置的页表设置成指向物理存储器的正确区域而不是访客看到的物理存储器的机制。例如,如果访客OS将页表设置成用于将虚拟地址0x40000000映射到物理地址0x10000000(使用以上映射),则VMM将在页表中对此进行校正以使得虚拟地址0x40000000实际上映射到物理地址0x30000000。这对于访客OS来说是透明的。这种技术可以处理由访客OS执行的任何存储器读/写。但是,诸如网络接口卡(NIC)的I/O设备也利用直接存储器访问(DMA)来读和写物理存储器。在没有任何虚拟化的情况下,OS将通知NIC它应当将输入分组放到的物理地址。利用虚拟化时,这因为存在访客操作系统通常不知道它的物理存储器视图的实际物理偏移的事实而变得复杂。因此,访客OS不知道要告诉NIC应当将输入分组DMA到哪里。但是,在以上描述的环境中,性能关键DSRTE知道正在虚拟化环境中运行。因此,DSRTE可以利用这种了解来实现它的优点。在对VMM增加了VMCALL以询问它的物理存储器偏移的情况下,访客OS可以计算正确的物理地址,并通知NIC要将输入分组DMA到该正确的物理地址。
本文描述的技术不限于任何特定的硬件或软件配置;它们适用于任何计算、消费型电子、或处理环境。这些技术可以在硬件、软件或两者的组合中实现。
对于模拟,程序代码可以利用硬件描述语言或其它功能描述语言来表示硬件,上述语言实质上提供期望如何执行所设计的硬件的模型。程序代码可以是汇编或机器语言,或是可以编译和/或解译的数据。此外,本领域中常用如采取动作或造成结果的一种或另一种形式提到软件。这些表述只是处理系统开始执行程序代码从而使处理器执行动作或产生结果的速记方式。
每个程序可以用高级程序或面向对象程序设计语言来实现以与处理系统通信。但是,如果需要,程序也可以用汇编或机器语言来实现。在任何情况下,语言都可编译或解译。
可以使用程序指令来使利用这些指令编程的通用或专用处理系统执行本文描述的操作。或者,这些操作可以通过包含用于执行这些操作的硬接线逻辑的特定硬件组件、或通过程序控制计算机组件和定制的硬件组件的任意组合来执行。本文描述的方法可以作为计算机程序产品来提供,该计算机程序产品可以包括机器可访问介质,在该机器可访问介质上存储有指令,可以利用这些指令来将处理系统或其它电子设备编程以执行这些方法。
程序代码或指令可以存储在例如易失性和/或非易失性存储器中,如存储设备和/或关联的机器可读或机器可访问介质,包括固态存储器、硬盘驱动器、软盘、光存储装置、磁带、闪速存储器、存储棒、数字视频盘、数字多功能盘(DVD)等,以及更奇特的介质,如机器可访问生物状态保存存储装置。机器可读介质可以包括用于存储、传送或接收机器可读形式的信息的任何机制,并且该介质可以包括用于传递将程序代码编码的电、光、声或其它形式的传播信号或载波的有形介质,如天线、光纤、通信接口等。程序代码可以用分组、串行数据、并行数据、传播信号等形式传送,并且可以用压缩或加密格式使用。
程序代码可以在可编程机器上执行的程序中实现,这些可编程机器如移动或静止计算机、个人数字助理、机顶盒、蜂窝电话和寻呼机、消费型电子设备(包括DVD播放器、个人视频记录器、个人视频播放器、卫星接收器、立体声接收器、电缆TV接收器)及其它电子设备,每个设备均包括处理器、可由处理器读取的易失性和/或非易失性存储器、至少一个输入设备和/或一个或多个输出设备。可以对利用输入设备输入的数据应用程序代码以便执行所描述的实施例并生成输出信息。输出信息可以应用于一个或多个输出设备。本领域的技术人员将明白,所公开的主题的实施例可以用各种计算机系统配置来实现,包括多处理器或多核处理器系统、微型计算机、大型计算机以及可以嵌入到实际上任何设备中的渗透型或微型计算机或处理器。所公开的主题的实施例也可以在分布式计算环境中实现,在分布式计算环境中,任务或其部分可由通过通信网络链接的远程处理设备来执行。
尽管将操作描述成连续的进程,但其中一些操作实际上可以并行、同时和/或在分布式环境中执行,并且可以用本地和/或远程存储以供单处理器或多处理器机器访问的程序代码来执行。此外,在一些实施例中,在不偏离所公开的主题的精神的情况下,操作顺序可以重新排列。程序代码可以供嵌入式控制器使用或与嵌入式控制器结合使用。
尽管参照说明性实施例描述了本发明,但不希望以限制意义理解本描述。本发明所属领域的技术人员明白说明性实施例的各种修改以及本发明的其它实施例,它们被视为是落在本发明的精神和范围内。
Claims (20)
1.一种利用虚拟化技术来加速域特定运行时环境的系统,包括:
具有虚拟化能力的平台;
耦合到所述平台的至少一个处理器,所述至少一个处理器用于在所述平台上的第一虚拟机VM中运行未经修改的通用操作系统GPOS;以及
划分成至少两个部分的域特定运行时环境DSRTE,其中第一部分包括在所述第一虚拟机VM中的所述GPOS下运行的非性能关键进程,并且至少一个额外部分包括在所述平台上在运行所述GPOS的所述第一虚拟机VM之外运行的至少一个性能关键进程。
2.如权利要求1所述的系统,还包括:
包含用于控制所述平台上的每个VM的虚拟机监视器VMM的特权根域,其中所述至少一个性能关键进程将在第二虚拟机中运行,其中所述第二VM是非特权VM。
3.如权利要求2所述的系统,其中所述第一VM和所述第二VM经由从由邮箱、共享存储器和网络分组组成的通信方法组中选出的至少一种通信方法进行通信。
4.如权利要求1或2所述的系统,还包括:
用于运行一个或多个进程的至少一个额外虚拟机,其中所述一个或多个进程中的每个进程包括性能关键进程和非性能关键进程之一。
5.如权利要求1所述的系统,还包括:
特权根域,其中所述至少一个性能关键进程将在所述特权根域中运行。
6.如权利要求5所述的系统,其中将响应VM-EXIT事件而进入所述特权根域,并且响应VM-ENTER事件所述特权根域将控制返回给VM,并且其中启动性能关键任务从所述第一VM中的所述GPOS生成VM-EXIT。
7.如权利要求5所述的系统,其中所述特权根域包括定制成用于有效执行所述至少一个性能关键进程的域特定运行时环境,其中所述GPOS包括未被定制成用于执行所述至少一个性能关键进程的GPOS。
8.一种利用虚拟化技术来加速域特定运行时环境的计算机实现的方法,包括:
将域特定运行时环境DSRTE划分成至少两个分区,第一分区包括在虚拟机VM中的未经修改的通用操作系统GPOS下运行的非性能关键任务,第二分区包括性能关键任务,所述DSRTE驻留在具有虚拟化能力的平台上;以及
在所述第二分区中执行所述性能关键任务,其中利用所述第一分区来扩展提供给所述DSRTE的服务集。
9.如权利要求8所述的方法,其中所述第二分区包括所述DSRTE的主要和特权执行环境。
10.如权利要求8所述的方法,其中所述第二分区包括第二非特权虚拟机VM。
11.如权利要求8、9或10所述的方法,还包括:
当所述性能关键任务需要所述GPOS的服务时,进入所述第一分区;以及
退到所述第二分区以继续处理性能关键任务。
12.如权利要求8所述的方法,还包括:
响应执行性能关键任务的事件,生成从所述第一分区退到特权根域的Exit;
在所述第二分区中执行所述性能关键任务;以及
响应Enter事件,将控制返回给所述第一分区。
13.如权利要求12所述的方法,其中所述第二分区包括两个或两个以上区分,所述两个或两个以上分区中的每个分区用于运行对应于特定输入/输出I/O设备的性能关键操作。
14.如权利要求8、9或10所述的方法,其中所述性能关键任务包括网络通信任务。
15.如权利要求8、9或10所述的方法,其中所述非性能关键任务包括用户接口,并且所述性能关键任务包括网络分组通信。
16.如权利要求8、9或10所述的方法,其中所述平台包括机顶盒环境,并且所述性能关键任务包括音频-视频流的编码和解码。
17.一种利用虚拟化技术来加速域特定运行时环境的装置,包括:
将域特定运行时环境DSRTE划分成至少两个分区的部件,第一分区包括在虚拟机VM中的未经修改的通用操作系统GPOS下运行的非性能关键任务,第二分区包括性能关键任务,所述DSRTE驻留在具有虚拟化能力的平台上;以及
在所述第二分区中执行所述性能关键任务的部件,其中利用所述第一分区来扩展提供给所述DSRTE的服务集。
18.如权利要求17所述的装置,其中所述第二分区包括所述DSRTE的主要和特权执行环境。
19.如权利要求17所述的装置,还包括用于执行以下动作的部件:
当所述性能关键任务需要所述GPOS的服务时,进入所述第一分区;以及
退到所述第二分区以继续处理性能关键任务。
20.如权利要求17所述的装置,还包括用于执行以下动作的部件:
响应执行性能关键任务的事件,生成从所述第一分区退到特权根域的Exit;
在所述第二分区中执行所述性能关键任务;以及
响应Enter事件,将控制返回给所述第一分区。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/386,989 | 2006-03-21 | ||
US11/386,989 US8042109B2 (en) | 2006-03-21 | 2006-03-21 | Framework for domain-specific run-time environment acceleration using virtualization technology |
PCT/US2007/064020 WO2007109484A1 (en) | 2006-03-21 | 2007-03-14 | Framework for domain-specific run-time environment acceleration using virtualization technology |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101405712A CN101405712A (zh) | 2009-04-08 |
CN101405712B true CN101405712B (zh) | 2011-11-16 |
Family
ID=38522770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780009841.7A Expired - Fee Related CN101405712B (zh) | 2006-03-21 | 2007-03-14 | 利用虚拟化技术来加速域特定运行时环境的框架 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8042109B2 (zh) |
EP (1) | EP1997021B1 (zh) |
CN (1) | CN101405712B (zh) |
WO (1) | WO2007109484A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8042109B2 (en) * | 2006-03-21 | 2011-10-18 | Intel Corporation | Framework for domain-specific run-time environment acceleration using virtualization technology |
US8286174B1 (en) | 2006-04-17 | 2012-10-09 | Vmware, Inc. | Executing a multicomponent software application on a virtualized computer platform |
CA2660363A1 (en) * | 2006-08-07 | 2008-02-14 | Bea Systems, Inc. | System and method for providing hardware virtualization in a virtual machine environment |
US8719936B2 (en) * | 2008-02-01 | 2014-05-06 | Northeastern University | VMM-based intrusion detection system |
JP5260081B2 (ja) | 2008-02-25 | 2013-08-14 | パナソニック株式会社 | 情報処理装置及びその制御方法 |
US20100122197A1 (en) * | 2008-09-26 | 2010-05-13 | Robb Fujioka | Hypervisor and webtop in a set top box environment |
US10460085B2 (en) | 2008-03-13 | 2019-10-29 | Mattel, Inc. | Tablet computer |
US8230155B2 (en) | 2008-06-26 | 2012-07-24 | Microsoft Corporation | Direct memory access filter for virtualized operating systems |
US8151032B2 (en) * | 2008-06-26 | 2012-04-03 | Microsoft Corporation | Direct memory access filter for virtualized operating systems |
US9459928B2 (en) | 2008-08-22 | 2016-10-04 | Hewlett Packard Enterprise Development Lp | Remote graphics console and virtual media access to virtual machine guests |
WO2012026939A1 (en) * | 2010-08-27 | 2012-03-01 | Hewlett-Packard Development Company, L.P. | Virtual hotplug techniques |
US8893274B2 (en) * | 2011-08-03 | 2014-11-18 | Trend Micro, Inc. | Cross-VM network filtering |
US9342704B2 (en) * | 2011-12-28 | 2016-05-17 | Intel Corporation | Allocating memory access control policies |
US9262208B2 (en) | 2012-08-20 | 2016-02-16 | International Business Machines Corporation | Automated, controlled distribution and execution of commands and scripts |
US10120941B2 (en) | 2013-07-31 | 2018-11-06 | International Business Machines Corporation | Dynamic runtime environment configuration for query applications |
US10289627B2 (en) | 2013-07-31 | 2019-05-14 | International Business Machines Corporation | Profile-enabled dynamic runtime environment for web application servers |
US9736166B2 (en) * | 2015-06-08 | 2017-08-15 | Microsoft Technology Licensing, Llc | System and method for using per-application profiles in a computing device |
CN107239320A (zh) * | 2017-04-11 | 2017-10-10 | 中国科学院信息工程研究所 | 基于虚拟化技术的实时保存客户机中进程状态的方法 |
US11436041B2 (en) | 2019-10-03 | 2022-09-06 | Micron Technology, Inc. | Customized root processes for groups of applications |
US11599384B2 (en) * | 2019-10-03 | 2023-03-07 | Micron Technology, Inc. | Customized root processes for individual applications |
US11474828B2 (en) | 2019-10-03 | 2022-10-18 | Micron Technology, Inc. | Initial data distribution for different application processes |
US11429445B2 (en) | 2019-11-25 | 2022-08-30 | Micron Technology, Inc. | User interface based page migration for performance enhancement |
US11366752B2 (en) | 2020-03-19 | 2022-06-21 | Micron Technology, Inc. | Address mapping between shared memory modules and cache sets |
US11836087B2 (en) | 2020-12-23 | 2023-12-05 | Micron Technology, Inc. | Per-process re-configurable caches |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1281613A (zh) * | 1997-10-07 | 2001-01-24 | 卡纳尔股份有限公司 | 多线程数据处理器 |
CN1490724A (zh) * | 2002-10-18 | 2004-04-21 | 上海贝尔有限公司 | 一种用于嵌入式系统软件开发的虚拟机装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6075938A (en) | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US6314501B1 (en) * | 1998-07-23 | 2001-11-06 | 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 |
US6941449B2 (en) * | 2002-03-04 | 2005-09-06 | Hewlett-Packard Development Company, L.P. | Method and apparatus for performing critical tasks using speculative operations |
GB0226874D0 (en) * | 2002-11-18 | 2002-12-24 | Advanced Risc Mach Ltd | Switching between secure and non-secure processing modes |
ATE409904T1 (de) | 2003-04-09 | 2008-10-15 | Jaluna Sa | Betriebssysteme |
US7421689B2 (en) | 2003-10-28 | 2008-09-02 | Hewlett-Packard Development Company, L.P. | Processor-architecture for facilitating a virtual machine monitor |
US7802250B2 (en) * | 2004-06-28 | 2010-09-21 | Intel Corporation | Support for transitioning to a virtual machine monitor based upon the privilege level of guest software |
US7689987B2 (en) | 2004-06-30 | 2010-03-30 | Microsoft Corporation | Systems and methods for stack-jumping between a virtual machine and a host environment |
US7757231B2 (en) * | 2004-12-10 | 2010-07-13 | Intel Corporation | System and method to deprivilege components of a virtual machine monitor |
US20070157025A1 (en) * | 2005-12-30 | 2007-07-05 | Intel Corporation | Method and system for providing security and reliability to collaborative applications |
US8042109B2 (en) | 2006-03-21 | 2011-10-18 | Intel Corporation | Framework for domain-specific run-time environment acceleration using virtualization technology |
US8127292B1 (en) * | 2007-06-22 | 2012-02-28 | Parallels Holdings, Ltd. | Virtualization system with hypervisor embedded in bios or using extensible firmware interface |
-
2006
- 2006-03-21 US US11/386,989 patent/US8042109B2/en not_active Expired - Fee Related
-
2007
- 2007-03-14 WO PCT/US2007/064020 patent/WO2007109484A1/en active Application Filing
- 2007-03-14 CN CN200780009841.7A patent/CN101405712B/zh not_active Expired - Fee Related
- 2007-03-14 EP EP07758562A patent/EP1997021B1/en not_active Not-in-force
-
2011
- 2011-10-14 US US13/273,468 patent/US8762991B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1281613A (zh) * | 1997-10-07 | 2001-01-24 | 卡纳尔股份有限公司 | 多线程数据处理器 |
CN1490724A (zh) * | 2002-10-18 | 2004-04-21 | 上海贝尔有限公司 | 一种用于嵌入式系统软件开发的虚拟机装置 |
Non-Patent Citations (2)
Title |
---|
Paul Barham等.Xen and the Art of Virtualization.Proceedings of ACM Symposium on Operating Systems Principles.2003,1-14. * |
Rich Uhlig等.Intel Virtualization Technology.Computer.2005,38(5),48-56. * |
Also Published As
Publication number | Publication date |
---|---|
EP1997021B1 (en) | 2012-12-12 |
US20070226736A1 (en) | 2007-09-27 |
WO2007109484A1 (en) | 2007-09-27 |
US20120036508A1 (en) | 2012-02-09 |
US8042109B2 (en) | 2011-10-18 |
CN101405712A (zh) | 2009-04-08 |
EP1997021A1 (en) | 2008-12-03 |
EP1997021A4 (en) | 2010-08-04 |
US8762991B2 (en) | 2014-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101405712B (zh) | 利用虚拟化技术来加速域特定运行时环境的框架 | |
US7904903B2 (en) | Selective register save and restore upon context switch using trap | |
US11188376B1 (en) | Edge computing system | |
US10367714B2 (en) | Apparatus for testing and developing products of network computing based on open-source virtualized cloud | |
US8572159B2 (en) | Managing device models in a virtual machine cluster environment | |
RU2662695C2 (ru) | Область управления для администрирования множественными потоками в компьютере | |
RU2667791C2 (ru) | Команда запуска виртуального выполнения для диспетчеризации множественных потоков в компьютере | |
US9164784B2 (en) | Signalizing an external event using a dedicated virtual central processing unit | |
US10474484B2 (en) | Offline management of virtualization software installed on a host computer | |
US11579918B2 (en) | Optimizing host CPU usage based on virtual machine guest OS power and performance management | |
US20180239629A1 (en) | Virtual processor scheduling via memory monitoring | |
US9164788B2 (en) | Apparatus and method for automatic para-virtualization of OS kernel | |
Scordino et al. | Real-time virtualization for industrial automation | |
Xu et al. | The study and evaluation of ARM-based mobile virtualization | |
US9747118B2 (en) | Guest-specific microcode | |
US8291415B2 (en) | Paging instruction for a virtualization engine to local storage | |
Benbachir et al. | Hypertracing: Tracing through virtualization layers | |
KR101809380B1 (ko) | 가상머신 기반 통합항해시스템을 위한 스케줄링 방법 및 장치 | |
Weinhold et al. | FFMK: an HPC OS based on the L4Re Microkernel | |
US20230236916A1 (en) | Mechanism for integrating i/o hypervisor with a combined dpu and server solution | |
Banik et al. | Spotlight on Future Firmware | |
Shamardin et al. | Job execution in virtualized runtime environments in grid | |
Doman | Qsync: Co-scheduling constrained virtual machines in the Xen hypervisor | |
Mainline | System Management |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111116 Termination date: 20210314 |