CN102473106B - 虚拟环境中的资源分配 - Google Patents
虚拟环境中的资源分配 Download PDFInfo
- Publication number
- CN102473106B CN102473106B CN201080030138.6A CN201080030138A CN102473106B CN 102473106 B CN102473106 B CN 102473106B CN 201080030138 A CN201080030138 A CN 201080030138A CN 102473106 B CN102473106 B CN 102473106B
- Authority
- CN
- China
- Prior art keywords
- subregion
- resource assignment
- register
- equipment
- 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.)
- Active
Links
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
-
- 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/468—Specific access rights for resources, e.g. using capability register
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Curing Cements, Concrete, And Artificial Stone (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Stored Programmes (AREA)
Abstract
一种用于将一个或多个共享的设备和/或数据路径能力的资源分配给数据处理系统中的虚拟环境的一个或多个分区的方法、系统、装置和计算机程序产品。针对与数据处理系统相关联的一个或多个设备而接收至少一个用户定义的资源指派。与一个或多个分区相关联的一个或多个寄存器被动态设置以执行至少一个资源指派,由此至少一个资源指派允许在一个或多个事务通过分区被执行时执行对设备的用户定义的定量测量(数字或百分比)。该系统支持一个或多个设备以小于或等于用户定义的资源指派的带宽/能力执行一个或多个事务,以及使分区之间的性能干扰最小化。
Description
技术领域
本发明总体上涉及计算机系统,并且特别涉及计算机系统中的虚拟环境。
背景技术
在虚拟环境中,被称为管理程序(也称为虚拟机监视器)的软件层在硬件与操作系统之间运行,并提供多个“虚拟”机(VM)的表现或感觉,也称为分区。虚拟机是看似对机器硬件具有独占访问的虚拟数据处理系统,但其功能通过在可能并存于机器中的其他虚拟机之间共享硬件资源而实现。物理数据处理系统中共享的硬件资源包括但不限于存储器、处理器以及输入/输出(I/O)设备。
虚拟环境使多个操作系统能并发地在相同的数据处理系统上运行,似的每个虚拟机或分区确切地运行操作系统的一个实例。目前,管理程序利用虚拟机接口将诸如处理器、存储器页面、和磁盘的硬件资源分配给一个或多个不同的分区。管理程序分配这些资源以确保一个或多个分区互不干扰。诸如存储器页面和CPU内核的一些资源在不同分区之间分配,使得在分区之间没有物理的资源共享。诸如存储器总线、一致性总线、可扩展端口或存储器控制器的其他资源在本质上不能以独占方式分配给任何个体分区。多核处理器芯片的迅速增加加剧了非独占分配的问题。例如,可以存在当前分配给相同芯片上的各个内核的多个分区,每个分区有效地共享相同的数据路径,诸如上文提及的总线。当一个分区运行的负载使共享的资源饱和并由此使其他分区饥饿时,共享相同数据路径的分区可能会受到严重的性能干扰。例如,当一个或多个分区的负载过度使用存储器总线、一致性总线、可扩展端口和/或I/O总线时,运行在不同分区上的其他负载的性能受到不利的影响。
发明内容
公开了一种用于将一个或多个共享的设备和/或数据路径能力的资源分配给数据处理系统中的虚拟环境的一个或多个分区的装置、方法、系统和计算机程序产品。虚拟环境中的每个分区管理一个或多个用户负载。针对与数据处理系统相关联的一个或多个设备和/或数据路径能力,接收至少一个用户定义的资源指派。该系统管理一个或多个寄存器,其被动态设置以控制至少一个资源指派。资源指派允许在一个或多个负载通过分区被执行时执行用户定义的对设备和/或数据路径能力的定量测量(数字和/或百分比)。系统支持一个或多个分区共享带宽和/或设备的数据路径能力。负载以小于或等于用户定义的资源指派的特定带宽和/或设备的数据路径能力而执行。系统对每个分区上运行的负载进行隔离;由此使一个或多个分区之间不希望的干扰得以最小化。
附图说明
现在将参考附图说明本发明的实施方式,仅通过举例,其中:
图1提供了根据本发明一个实施方式的可在其中有益地实现本发明各特征的数据处理系统的框图;
图2是根据本发明一个实施方式的被分成一个或多个分区的多核处理芯片的框图;
图3所示为根据本发明一个实施方式的显示虚拟环境中一个或多个分区的用户定义的资源指派的资源管理图形用户界面的示例;以及
图4所示为根据本发明一个实施方式的执行事务以实现一个或多个资源指派的过程的流程图。
具体实施方式
图示的实施方式提供了一种用于将一个或多个共享的设备和/或数据路径能力的资源分配给数据处理系统中虚拟环境的一个或多个分区的装置、方法、系统和计算机程序产品。虚拟环境中的每个分区管理一个或多个用户负载。针对与数据处理系统相关的一个或多个设备和/或数据路径能力而接收至少一个用户定义的资源指派。所述系统管理一个或多个寄存器,其被动态设置以控制至少一个资源指派。资源指派允许支持在一个或多个负载通过分区被执行时执行用户定义的对设备和/或数据路径能力的定量测量(数字和/或百分比)。系统支持一个或多个分区共享带宽和/或设备的数据路径能力。负载以小于或等于用户定义的资源指派的特定带宽和/或设备的数据路径能力而执行。系统对每个分区上运行的负载进行隔离;由此使一个或多个分区之间不希望的干扰得以最小化。
在下列对本发明示范实施方式的详细说明中,可实现本发明的具体的示范实施方式被足够详细地说明使得本领域技术人员能实现本发明,以及可理解可利用其他实施方式且可做出逻辑的、架构的、程序的、机械的、电的和其他改变而不背离本发明的精神和范围。因此以下的详细说明不是要限制,以及本发明的范围被所附权利要求及其等效所限定。
在图的说明中,相似元件与前面的图具有相似的名称和标号。其中后面的图在不同的上下文中使用元件或具有不同功能,为元件提供代表图号的不同的首位数字。指派给元件的具体数字仅用于帮助说明且不暗示着对所述实施方式的任何限制(结构的或功能的或其他)。
应理解使用具体的组件、设备和/或参数名称(比如执行此处所述的用途/逻辑的那些)仅用于举例且不暗示着对本发明的任何限制。因此可以不受限制用用于说明此处的组件/设备/参数的不同的命名法/术语实现本发明。此处所用的每个词都给出在使用该词的上下文中最广泛的解释。
现在参考图,并从图1开始,图示了一个实施方式中所使用的代表数据处理系统(DPS)示例的框图。DPS可以是计算机、移动设备、比如个人数字助理(PDA)、智能电话和/或一般可用作处理设备的其他类型的电子设备。如图所示,DPS 100包括至少一个通过系统互联/总线110连接到系统存储器115的处理器或中央处理单元(CPU)105。也连接到系统总线110的是输入/输出(I/O)控制器120,其提供对输入设备的连接和控制,图示了其点击设备(或鼠标)125和键盘127。I/O控制器120还提供对输出设备的连接和控制,图示了其显示器129。此外,图示了多媒体驱动128(例如,压缩盘读/写(CDRW)或数字视频盘(DVD)驱动)和USB(通用串行总线)端口126,耦合到I/O控制器120。多媒体驱动128和USB端口126使得能插入可移除存储设备(例如光盘或拇指驱动),其上可以存储数据/指令/代码和/或可从其取回数据/指令/代码。DPS 100还包括存储117,其中也可以存储数据/指令/代码和/或可从其取回数据/指令/代码。
与DPS 100一起还图示了网络接口设备(NID)150,DPS通过其可以连接到一个或多个访问/外部网络170,因特网被提供为一个示例。在这个实施方式中,因特网代表/是使用传输控制协议/因特网协议(TCP/IP)协议组以相互通信的世界性的网络和网关的集合。NID150可用于通过到网络的访问点的有线无线连接而操作。网络170可以是外部网络比如因特网或广域网(WAN)或内部网络比如以太网(局域网-LAN)或虚拟专网(VPN)。在一个实施方式中,可以与一个或多个服务器165一起建立到外部网络170的连接,其也可提供数据/指令/代码用于在DPS 100上执行。
除了DPS 100的上述硬件组件,本发明的各种特征通过软件(或固件)代码或逻辑完成/支持。例如,管理程序195是允许多个操作系统同时运行在主计算机上的计算机软件/硬件平台虚拟软件。管理程序195直接运行在DPS 100的硬件之上作为硬件控制和客户操作系统监视器以及/或是运行在操作系统环境中的软件应用。此外,软件(或固件)代码或逻辑存储在系统存储器115或其他存储(例如存储117)中且被CPU 105执行。因此,例如,在系统存储器115中图示了许多软件/固件/逻辑组件,包括虚拟机层175和应用135。在虚拟机层175中,管理一个或多个操作系统,例如操作系统A(OSA)130、OS B132和OS N138(其中N代表有限的数目)。可能的操作系统的示例是Microsoft Windows微软公司的商标,或GNU/Linux免费软件基金会和Linux标志研究所的注册商标。虚拟机层175与管理程序195通信和/或由管理程序195生成以管理与管理程序195相关的一个或多个分区的负载。虚拟机层175中还有资源优先级指派(RPA)工具140(其在CPU 105上执行以提供RPA逻辑)。在实际实施中,RPA工具140可以组合或结合在虚拟机层175以提供单个可执行组件,当对应的组合代码被CPU 105执行时,共同提供每个单独的软件组件的各种功能。为了简单,RPA工具140被图示和说明为独立的或单独的软件/固件组件,其提供具体的功能,如下所述。
在一个实施方式中,服务器165包括软件部署服务器,并且DPS100使用网络接口设备150通过网络(例如,因特网150)与软件部署服务器165通信。然后,RPA工具140可以通过软件部署服务器165从网络部署或部署在网络上。利用这种配置,软件部署服务器执行与RPA工具140的执行相关的所有功能。因此,不需要DPS 100使用DPS 100的内部计算资源来执行RPA工具140。
CPU 105执行RPA工具140以及支持RPA工具140的用户接口特征的OS A130、OS B132和OS N138。在所述实施方式中,RPA工具140产生/提供若干图形用户界面(GUI)以支持用户与RPA工具140的功能特征交互或操作。RPA工具支持和/或实现的某些功能产生处理器和/或设备硬件执行的处理逻辑以完成该功能的实现。为了说明的简单,支持这些各种特征的代码的集合体在这里称为RPA工具140。在RPA工具140所提供的软件代码/指令/逻辑中,特定于本发明的是:(a)用于接收用于一个或多个设备的至少一个资源指派的代码/逻辑;(b)用于将至少一个资源指派与一个或多个分区相关联的代码/逻辑;(c)用于支持一个或多个设备响应于接收到至少一个资源指派而以小于或等于至少一个资源指派的能力执行一个或多个事务的代码/逻辑。根据所示的实施方式,当CPU 105执行RPA工具140时,DPS 100启动支持以上功能特征以及其他特征/功能的一系列功能过程。这些特征和功能在下面图2-图4的描述中详述。
本领域技术人员将理解图1中的硬件组件和基本配置可以改变。DPS 100中所示的组件不是穷举的,但是代表用于实现本发明的最重要的组件。例如,可另外使用其他设备/组件或替代所述的硬件。所述的示例对于目前所述实施方式和/或总体发明不是要暗示架构或其他限制。图1所述的数据处理系统可以是例如Armonk N.Y.的国际商业机器公司的产品IBM eServer pSeries系统,其运行先进的交互执行(AIX)操作系统或LINUX操作系统。
现在参考图2,描述了在虚拟环境中执行的一个或多个分区的多核处理芯片。多核处理芯片250包括分区A 220、分区B 230和分区N 290(其中“N”代表有限的数目)。多核处理芯片250还包括RPA工具240、处理器总线222、存储器控制器A 252、存储器控制器B254、总线寄存器A 260、总线寄存器B 270以及总线寄存器C 280。分区A220包括L1指令高速缓存218、L1数据高速缓存228以及L2/L3高速缓存238。多核芯片250上的第二分区包含2个L1指令高速缓存218、2个L1数据高速缓存228以及L2/L3高速缓存238。分区N 290(其中“N”是有限的数目)代表多核处理芯片250中的第N个分区。分区N包括一个或多个(所示为3个)L1指令高速缓存218、一个或多个L1数据高速缓存228以及一个或多个L2/L3高速缓存238。总线寄存器A 260是在分区A220与处理器总线222之间通信的手段。总线寄存器B 270支持分区B 230与处理器总线222之间的通信,并且分区N 290与处理器总线222通过总线寄存器C280通信。
在一个实施方式中,系统的一个或多个硬件机制支持一个或多个资源指派的执行。RPA工具240包括调节对共享系统资源的访问的逻辑。RPA工具240接收将系统资源分配给一个或多个分区的一个或多个指派。诸如分区A 220、分区B 230和分区N 290的分区是由虚拟机层175支持的隔离的逻辑单元(如图1所示),由此执行一个或多个操作系统。分区A 220、分区B 230和分区N 290分别与总线寄存器A 260、总线寄存器B 270和总线寄存器N 280相关。此外,分区A 220、分区B 230和分区N 290与一个或多个硬件总线相关联。当一个或多个分区接收分配的资源时,相应的总线寄存器(总线寄存器A 260、总线寄存器B 270和/或总线寄存器N 280)根据接收的资源指派而设置。
当一个或多个操作系统事务与分区相关联地被执行时,相应的总线寄存器(总线寄存器A 260、总线寄存器B 270和/或总线寄存器N 280)实现所请求的指派。例如,RPA工具240接收用户定义的(或缺省的)指派,以便将支持分区A 220的资源使用率限制在能力的20%。为了实现此指派,对于每100个总线周期,总线寄存器A 260允许不多于20次访问(事务)(以访问共享资源)。当处理器总线222不忙时(即,没有来自其他分区的挂起的请求时),资源容限被放宽。在这种情况下,总线寄存器A 260允许的访问数目可以尽可能增加。资源指派支持当执行一个或多个事务时对针对处理器总线222的访问进行用户定义的定量测量。
在一个实施方式中,当寄存器被指派以多个访问时,每当分区访问总线时,寄存器递减。在一个实例中,总线寄存器A 260被指派以计数20,每100个总线周期结束,总线寄存器A 260的计数被复位为20。当分区A 220已消耗了对处理器总线222的分配限额(所指派的访问数目)时,总线寄存器A 260的计数达到0。仅在以下情况下允许分区A 220对处理器总线222进一步的访问,即,不存在来自另一分区的访问总线的未决事务,由此该分区尚未消耗用户定义的资源指派(即,消耗的对处理器总线222的访问的所指指派数值/能力)。
在另一实施方式中,一个或多个操作系统与分区A 220、分区B230和分区N 290相关联。总线寄存器A 260、总线寄存器B 270、总线寄存器N 280和/或一个或多个其他寄存器与分区A220、分区B230和分区N290相关联。总线寄存器A 260、总线寄存器B 270、总线寄存器N 280和/或一个或多个其他寄存器通过RPA工具240(和/或一个或多个操作系统)接收一个或多个资源指派。资源指派通过一个或多个总线寄存器A 260、总线寄存器B 270和/或总线寄存器N280而实现。
在一个实施方式中,总线寄存器B 270可由多个寄存器实现,每个寄存器控制特定处理器核对总线的访问。参考图2,分区B 230被示为使用4个具有2个L2/L3高速缓存238的处理器核。在一个实施方式中,总线寄存器B 270可通过2个物理寄存器实现,每一个门控L2/L3高速缓存(238)对总线222的访问。总线寄存器A 260、总线寄存器B 270、总线寄存器N 280和/或一个或多个其他寄存器与处理器总线222通信,以确保分区B 230的总线访问的计数正确地完成。例如,L2/L3高速缓存(238)之一对处理器总线222的访问将导致定额计数在两个寄存器处同时减少。这种实现被结合到L2/L3高速缓存238的高速缓存设计中。
在另一实施方式中,管理程序(类似图1的管理程序195)允许分区的抢占,以使硬件利用率最大化。总线寄存器A 260变成分区A220的软件上下文的部分。类似地,总线寄存器A 260变成用于分区B 230的寄存器B 270以及用于分区N 290的寄存器N 280的软件上下文的部分。当相应的分区(分区A 220、分区B 230和分区N 290)分别被解除分配或重分配时,管理程序必须存储和恢复总线寄存器A260、总线寄存器B 270和/或总线寄存器N 280的值。
在另一实施方式中,管理程序允许分区的抢占以使硬件利用率最大化。当在分区中交换时(例如,允许多于系统(服务器)物理上可用的诸如RAM等资源的分配),管理程序将总线寄存器重新初始化为相应的用户定义值。
图3所示为资源管理图形用户界面(GUI)。资源管理GUI 305包含一个或多个资源的类别、资源315、分区列表、分区302、资源指派372、可用测量370和下拉菜单选择375。资源315包括,但不限于:存储器总线362、I/O总线364、一致性总线366和可扩展端口368。分区302包括但不限于分区A 320、分区B 330和分区N 340(其中N是有限的数目)。
在一个实施方式中,至少一个资源指派与一个或多个设备或资源相关联。分区A 320、分区B 330和分区N 340与虚拟环境相关联,并且分区列表被输出到资源管理GUI 305。当分区被修改时(从虚拟环境增加或减少),分区列表被动态更新。诸如存储器总线362、I/O总线364、一致性总线366和可扩展端口368的资源315与每个分区相关联。与分区相关联的资源是预定义的和/或用户定义的。当从数据处理系统(图1的100)增加和/或减少一个或多个资源(315)时,资源管理GUI 305被动态更新。
在另一实施方式中,针对一个或多个设备而接收至少一个资源指派。资源管理GUI 305的资源指派372、可用测量370和下拉菜单选择375支持一个或多个用户定义的和/或预定义的输入被RPA工具140(图1)接收。例如,资源指派372是定量测量输入,其可以包括但不限于:设备带宽的百分比和/或在执行一个或多个事务中利用的设备数目。可用测量370描述了选择的预定义或缺省定量测量(与各自的资源和分区相关联),或自动选择的测量。当选择下拉菜单选择375时,显示可用测量370。当一个或多个修改在数据处理系统中被检测到和/或接收到时,资源315、分区302和可用测量370被动态更新。
在一个实施方式中,当接收到至少一个资源指派时,一个或多个设备被允许以小于或等于所述至少一个资源指派的能力执行一个或多个事务。资源管理GUI 305接收用户定义的用于一个或多个设备(资源315)的资源分配(资源指派)。例如,在一个或多个事务期间,存储器总线362以30%或以下操作用于分区A 320,并且存储器总线362以25%操作用于分区B 330。当资源管理GUI 305接收用于资源指派372的用户定义的输入时,一个或多个寄存器动态调节以执行用户定义的资源分配。执行用户定义的资源分配支持指定的设备(资源)以用户定义的能力(带宽)操作用于相关联的分区。资源管理GUI 305与虚拟机层175(图1的)直接关联。虚拟机层175控制/管理/提供对寄存器的访问(与分区302相关联),如资源管理GUI 305中输入的值所指定的。
图4所示为完成所示实施方式的以上过程的方法的流程图。虽然图4所示的方法可以是参考图1-图3所示的组件说明的,但是应理解这仅是为了方便以及当实现各种方法时可使用其可替换组件和/或配置。方法的关键部分可以通过DSP 100(图1)中处理器105上执行的以及控制DSP 100上的具体操作的RPA工具140实现,以及因此该方法从RPA工具140和DSP 100的观点来说明。
图4所示为当收到一个或多个资源指派时执行一个或多个事务请求的过程。图4的过程开始于启动框400并且进行到框402,在此一个或多个寄存器与每个分区中的操作系统相关联。在框404,针对每个分区而接收一个或多个用户定义(或缺省)的资源指派。在框406,一个或多个寄存器被动态设置以实现资源指派。在框408,接收一个或多个事务请求。
在框410,确定事务请求所需的带宽/能力是否超过一个或多个预设置的资源指派(或分配)。如果用于事务请求的带宽/能力超过了一个或多个资源指派,过程继续到框414。如果用于事务请求的带宽/能力没有超过一个或多个资源指派,过程继续到框412。在框414,确定是否存在来自其能力尚未被耗尽的分区的事务请求。当存在来自其能力尚未被耗尽的分区的事务请求时,过程继续到框416。在框416该请求被重新提交,并且过程继续到框408。如果不存在来自其能力未被耗尽的分区的事务请求,过程继续到框412。在框412,事务被执行,实现一个或多个资源指派。在框418,过程结束。
在以上流程图中,一个或多个方法体现在包含计算机可读代码的计算机可读介质中,这样当计算机可读代码(被处理单元)在计算设备上被执行时,执行一系列步骤。在一些实施方式中,不背离本发明的精神和范围,方法的某些过程被组合,同时执行或按不同顺序执行,或可能被省略。因此,虽然按特定序列说明和图示本方法过程,但是使用具体的过程序列并不隐含着对本发明的任何限制。可以不背离本发明的精神和范围对过程序列做出改变。因此,使用特定的序列不应被认为是限制,且本发明的范围延伸到所附权利要求及其等价物。
本领域技术人员将理解,本发明可体现为一种方法、系统和/或计算机程序产品。因此,本发明可采取完全硬件实施方式、完全软件实施方式(包括固件、驻留软件、微代码等等)或者组合此处一般称为“电路”、“模块”、“逻辑”或“系统”的软件和硬件方面的实施方式。此外,本发明可采取介质上含有计算机可用程序代码的计算机可用存储介质上的计算机程序产品的形式。
还要理解,本发明的实施方式中的过程可使用软件、固件、微代码或硬件来实现。作为在软件、编程代码(是软件或固件)中典型地将被存储在实现本发明的预备步骤被存储在一个或多个机器可读存储介质中,比如固定(硬)驱动器、软盘、磁盘、光盘、磁带半导体存储器,比如RAM、ROM、PROM等,因此根据本发明形成了一种产品。通过直接从存储设备执行代码、通过从存储设备将代码拷贝到另一存储设备比如硬盘、RAM等,或通过发送代码用于远程执行使用传输型介质比如数字和模拟通信链接,使用这种包含编程代码的产品。该介质可以是电的、磁的、光的、电磁的、红外的或半导体系统(或装置或设备)或传播介质。此外,该介质可以是可包含、存储、通信、传播或传输被执行系统、装置或设备使用或有关的程序的任何装置。本发明的方法可以通过组合包含根据所述实施方式的代码的一个或多个机器可读存储设备与执行其中包含的代码的适当处理硬件来实现。一种实现本发明的装置可以是包含或具有对根据本发明编码的程序的网络访问(通过服务器)的一个或多个处理设备以及存储系统。一般,术语计算机、计算机系统或数据处理系统可被广义地定义以包含具有执行来自存储器介质的指令/代码的处理器(或处理单元)的任何设备。
因此,虽然结合带有安装的(或执行的)软件的全功能的计算机(服务器)系统说明了本发明的所示实施方式,但是本领域技术人员将理解本发明的所示实施方式的软件方面可以作为多种形式的程序产品分发,以及本发明的所示实施方式同等地应用,无论用于实际实现分发的介质的特定类型。通过举例,介质类型的非穷举列表包括可记录类型(有形的)介质比如软盘、拇指驱动器、硬盘驱动器、CDROM、DVD和传输型介质比如数字和模拟通信链接。
虽然已结合示范实施方式说明了本发明,但是本领域技术人员将理解可以做出各种改变以及等价物可以替换其元件而不背离本发明的范围。而且,可以根据本发明的主旨做出很多修改以适配特定系统、设备或组件而不背离其实质范围。因此,本发明不限于被公开用于实现本发明的特定实施方式,但是本发明将包括落在所附权利要求范围中的所有实施方式。而且,使用术语第一、第二等等并不表示任何顺序或重要性,但是术语第一、第二等等用于区分一个元件和另一元件。
Claims (10)
1.一种用于将一个或多个共享设备的资源向具有至少一个处理器和虚拟层的数据处理系统中的虚拟环境的一个或多个分区分配的方法,所述方法包括:
接收针对一个或多个分区中的一个或多个设备的至少一个资源指派;
将所述至少一个资源指派与所述一个或多个分区相关联;
将访问计数与一个或多个寄存器相关联;
动态地支持一个或多个寄存器实现所述至少一个资源指派,其中所述至少一个资源指派支持当一个或多个事务在所述一个或多个分区中被执行时对设备使用的预定义定量测量;
响应于接收所述至少一个资源指派,支持所述一个或多个设备以小于或等于所述至少一个资源指派的能力来执行分区中的一个或多个事务;
每当所述一个或多个寄存器通过处理器总线执行事务请求时,递减所述一个或多个寄存器中每一个寄存器的所述访问计数,其中所述处理器总线支持对所述一个或多个设备的访问,
其中,所述方法还包括:
检查所述一个或多个寄存器的所述访问计数;
当所述访问计数不是0时,向所述处理器总线传输所述事务请求;
如果所述访问计数是0,阻止对所述处理器总线的访问;以及
在未来的总线周期中重试所述事务请求;
其中,所述方法还包括:
当访问计数已到达0时,仅当不存在来自访问计数大于0的其他分区的未决总线访问时,允许所述事务进行对所述总线的访问。
2.根据权利要求1所述的方法,还包括:
将一个或多个操作系统与所述一个或多个分区相关联;
将所述至少一个资源指派存储在一个或多个寄存器中;
将所述一个或多个寄存器与所述一个或多个分区相关联;以及
通过一个或多个寄存器来执行所述资源指派,其中所述一个或多个资源指派管理所述一个或多个设备的使用。
3.根据权利要求1所述的方法,还包括:
将对设备使用的所述定量测量与以下之一相关联:
一个或多个设备的带宽能力;以及
一个或多个设备的数目。
4.根据权利要求1所述的方法,还包括:
在图形用户界面处接收所述一个或多个预定义的资源指派;以及
将一个或多个接收到的资源指派与一个或多个分区所关联的一个或多个设备的使用相关联。
5.根据权利要求4所述的方法,还包括:
当分区被修改时,动态更新分区的列表;以及
当所述一个或多个资源被增加和减少之一时,动态更新所述图形用户界面。
6.一种用于将一个或多个共享设备的资源向具有至少一个处理器和虚拟层的数据处理系统中的虚拟环境的一个或多个分区分配的系统,所述系统包括:
用于接收针对一个或多个分区中的一个或多个设备的至少一个资源指派的装置;
用于将所述至少一个资源指派与所述一个或多个分区相关联的装置;
用于将访问计数与一个或多个寄存器相关联的装置;
用于动态地支持一个或多个寄存器实现所述至少一个资源指派的装置,其中所述至少一个资源指派支持当一个或多个事务在所述一个或多个分区中被执行时对设备使用的预定义定量测量;
用于响应于接收所述至少一个资源指派,支持所述一个或多个设备以小于或等于所述至少一个资源指派的能力来执行分区中的一个或多个事务的装置;
用于每当所述一个或多个寄存器通过处理器总线执行事务请求时,递减所述一个或多个寄存器中每一个寄存器的所述访问计数,其中所述处理器总线支持对所述一个或多个设备的访问的装置,
其中,所述系统还包括:
用于检查所述一个或多个寄存器的所述访问计数的装置;
用于当所述访问计数不是0时,向所述处理器总线传输所述事务请求的装置;
用于如果所述访问计数是0,阻止对所述处理器总线的访问的装置;以及
用于在未来的总线周期中重试所述事务请求的装置;
其中,所述系统还包括:
用于当访问计数已到达0时,仅当不存在来自访问计数大于0的其他分区的未决总线访问时,允许所述事务进行对所述总线的访问的装置。
7.根据权利要求6所述的系统,还包括:
用于将一个或多个操作系统与所述一个或多个分区相关联的装置;
用于将所述至少一个资源指派存储在一个或多个寄存器中的装置;
用于将所述一个或多个寄存器与所述一个或多个分区相关联的装置;以及
用于通过一个或多个寄存器来执行所述资源指派的装置,其中所述一个或多个资源指派管理所述一个或多个设备的使用。
8.根据权利要求6所述的系统,还包括:
用于将对设备使用的所述定量测量与以下之一相关联的装置:
一个或多个设备的带宽能力;以及
一个或多个设备的数目。
9.根据权利要求6所述的系统,还包括:
在图形用户界面处接收所述一个或多个预定义的资源指派;以及
将一个或多个接收到的资源指派与一个或多个分区所关联的一个或多个设备的使用相关联。
10.根据权利要求9所述的系统,还包括:
用于当分区被修改时,动态更新分区的列表的装置;以及
用于当所述一个或多个资源被增加和减少之一时,动态更新所述图形用户界面的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/495,842 US8756608B2 (en) | 2009-07-01 | 2009-07-01 | Method and system for performance isolation in virtualized environments |
US12/495,842 | 2009-07-01 | ||
PCT/EP2010/058884 WO2011000748A2 (en) | 2009-07-01 | 2010-06-23 | Resource allocation in virtualized environments |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102473106A CN102473106A (zh) | 2012-05-23 |
CN102473106B true CN102473106B (zh) | 2015-04-08 |
Family
ID=43218434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080030138.6A Active CN102473106B (zh) | 2009-07-01 | 2010-06-23 | 虚拟环境中的资源分配 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8756608B2 (zh) |
EP (1) | EP2449464A2 (zh) |
JP (1) | JP5607732B2 (zh) |
KR (1) | KR101385827B1 (zh) |
CN (1) | CN102473106B (zh) |
BR (1) | BRPI1015578B1 (zh) |
WO (1) | WO2011000748A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11818223B2 (en) | 2020-02-18 | 2023-11-14 | UiPath, Inc. | Inter-session automation for robotic process automation (RPA) robots |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101394365B1 (ko) | 2011-12-27 | 2014-05-14 | 서강대학교산학협력단 | 가상화 환경에서 프로세서를 할당하는 장치 및 방법 |
US9183054B2 (en) * | 2012-06-30 | 2015-11-10 | International Business Machines Corporation | Maintaining hardware resource bandwidth quality-of-service via hardware counter |
US9183022B2 (en) | 2012-06-30 | 2015-11-10 | International Business Machines Corporation | Maintaining hardware resource bandwidth quality-of-service via hardware counter |
TW201426348A (zh) * | 2012-12-19 | 2014-07-01 | Hon Hai Prec Ind Co Ltd | 虛擬機標籤分類系統及方法 |
US10229043B2 (en) * | 2013-07-23 | 2019-03-12 | Intel Business Machines Corporation | Requesting memory spaces and resources using a memory controller |
US10261813B2 (en) * | 2013-09-25 | 2019-04-16 | Arm Limited | Data processing system for dispatching tasks from a plurality of applications to a shared resource provided by an accelerator |
US20160092287A1 (en) * | 2014-09-26 | 2016-03-31 | Intel Corporation | Evidence-based replacement of storage nodes |
US9921977B2 (en) * | 2015-03-11 | 2018-03-20 | International Business Machines Corporation | Privilege based memory pinning mechanism |
CN105630604A (zh) * | 2015-12-18 | 2016-06-01 | 国云科技股份有限公司 | 一种基于sla的多租户虚拟机资源分配方法 |
CN106020943B (zh) * | 2016-05-04 | 2020-06-19 | 北京小米移动软件有限公司 | 应用程序双开启方法及装置 |
US10678690B2 (en) * | 2017-08-29 | 2020-06-09 | Qualcomm Incorporated | Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems |
KR20200065489A (ko) * | 2018-11-30 | 2020-06-09 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 내 자원 사용에 대응하여 데이터 패스를 동적 할당하는 방법 및 장치 |
US10884959B2 (en) * | 2019-02-13 | 2021-01-05 | Google Llc | Way partitioning for a system-level cache |
US10654166B1 (en) * | 2020-02-18 | 2020-05-19 | UiPath, Inc. | Automation windows for robotic process automation |
US11392477B2 (en) | 2020-07-09 | 2022-07-19 | UiPath, Inc. | Automation of a process running in a first session via a robotic process automation robot running in a second session |
US11693940B2 (en) * | 2021-06-23 | 2023-07-04 | Intel Corporation | Partitioned platform security mechanism |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0936615A2 (en) * | 1998-02-09 | 1999-08-18 | Matsushita Electric Industrial Co., Ltd. | Disk use scheduling and non-linear video editing systems |
US20020156824A1 (en) * | 2001-04-19 | 2002-10-24 | International Business Machines Corporation | Method and apparatus for allocating processor resources in a logically partitioned computer system |
US20040003063A1 (en) * | 2002-06-27 | 2004-01-01 | International Business Machines Corporation | Procedure for dynamic reconfiguration of resources of logical partitions |
US20050165987A1 (en) * | 2004-01-26 | 2005-07-28 | Shigehiro Asano | Systems and methods for bandwidth shaping |
CN101266559A (zh) * | 2007-03-13 | 2008-09-17 | 国际商业机器公司 | 将单微处理器核划分为多个小核的可配置微处理器和方法 |
US7453804B1 (en) * | 2005-02-08 | 2008-11-18 | Packeteer, Inc. | Aggregate network resource utilization control scheme |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10326253A (ja) * | 1997-05-23 | 1998-12-08 | Nec Corp | バス調停回路 |
-
2009
- 2009-07-01 US US12/495,842 patent/US8756608B2/en active Active
-
2010
- 2010-06-23 KR KR1020127001430A patent/KR101385827B1/ko active IP Right Grant
- 2010-06-23 BR BRPI1015578-3A patent/BRPI1015578B1/pt active IP Right Grant
- 2010-06-23 WO PCT/EP2010/058884 patent/WO2011000748A2/en active Application Filing
- 2010-06-23 CN CN201080030138.6A patent/CN102473106B/zh active Active
- 2010-06-23 EP EP10725784A patent/EP2449464A2/en not_active Withdrawn
- 2010-06-23 JP JP2012516711A patent/JP5607732B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0936615A2 (en) * | 1998-02-09 | 1999-08-18 | Matsushita Electric Industrial Co., Ltd. | Disk use scheduling and non-linear video editing systems |
US20020156824A1 (en) * | 2001-04-19 | 2002-10-24 | International Business Machines Corporation | Method and apparatus for allocating processor resources in a logically partitioned computer system |
US20040003063A1 (en) * | 2002-06-27 | 2004-01-01 | International Business Machines Corporation | Procedure for dynamic reconfiguration of resources of logical partitions |
US20050165987A1 (en) * | 2004-01-26 | 2005-07-28 | Shigehiro Asano | Systems and methods for bandwidth shaping |
US7453804B1 (en) * | 2005-02-08 | 2008-11-18 | Packeteer, Inc. | Aggregate network resource utilization control scheme |
CN101266559A (zh) * | 2007-03-13 | 2008-09-17 | 国际商业机器公司 | 将单微处理器核划分为多个小核的可配置微处理器和方法 |
Non-Patent Citations (2)
Title |
---|
ABCs of z/OS System Programming Volume 10;Paul Rogers等;《http://www.redbooks.ibm.com/redbooks/pdfs/sg246990.pdf》;20080930;329-367 * |
Sharing I/O in Strongly Partitioned Real-Time Systems;Ravi Shah1等;《EMBEDDED SOFTWARE AND SYSTEMS LECTURE NOTES IN COMPUTER SCIENCE;LNCS,SPRINGER》;20051231;502-507 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11818223B2 (en) | 2020-02-18 | 2023-11-14 | UiPath, Inc. | Inter-session automation for robotic process automation (RPA) robots |
Also Published As
Publication number | Publication date |
---|---|
BRPI1015578B1 (pt) | 2020-10-27 |
CN102473106A (zh) | 2012-05-23 |
BRPI1015578A2 (pt) | 2017-01-17 |
US8756608B2 (en) | 2014-06-17 |
WO2011000748A3 (en) | 2011-02-24 |
JP2012531643A (ja) | 2012-12-10 |
JP5607732B2 (ja) | 2014-10-15 |
US20110004875A1 (en) | 2011-01-06 |
KR20120030557A (ko) | 2012-03-28 |
EP2449464A2 (en) | 2012-05-09 |
KR101385827B1 (ko) | 2014-04-16 |
WO2011000748A2 (en) | 2011-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102473106B (zh) | 虚拟环境中的资源分配 | |
JP5159884B2 (ja) | 論理区分の間におけるネットワーク・アダプタ・リソース割振り | |
US7464191B2 (en) | System and method for host initialization for an adapter that supports virtualization | |
EP1851627B1 (en) | Virtual adapter destruction on a physical adapter that supports virtual adapters | |
EP2616935B1 (en) | Dynamic balancing of io resources on numa platforms | |
JP5039947B2 (ja) | 多数の論理パーティションにわたって仮想入力/出力操作を分散させるためのシステム及び方法 | |
CN1774699B (zh) | 共享资源的并发访问方法和设备 | |
US8112524B2 (en) | Recommending moving resources in a partitioned computer | |
US20070192518A1 (en) | Apparatus for performing I/O sharing & virtualization | |
US20060193327A1 (en) | System and method for providing quality of service in a virtual adapter | |
US7103763B2 (en) | Storage and access of configuration data in nonvolatile memory of a logically-partitioned computer | |
JP2001331333A (ja) | 計算機システム及び計算機システムの制御方法 | |
US20100229175A1 (en) | Moving Resources In a Computing Environment Having Multiple Logically-Partitioned Computer Systems | |
US20090307432A1 (en) | Memory management arrangements | |
EP1851626A1 (en) | Modification of virtual adapter resources in a logically partitioned data processing system | |
US7793051B1 (en) | Global shared memory subsystem | |
US20060080514A1 (en) | Managing shared memory | |
US20050154928A1 (en) | Remote power-on functionality in a partitioned environment | |
US20140237149A1 (en) | Sending a next request to a resource before a completion interrupt for a previous request |
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 |