CN101233490B - 提高支持可分页客户机的计算环境中的处理的方法和系统 - Google Patents

提高支持可分页客户机的计算环境中的处理的方法和系统 Download PDF

Info

Publication number
CN101233490B
CN101233490B CN2006800275898A CN200680027589A CN101233490B CN 101233490 B CN101233490 B CN 101233490B CN 2006800275898 A CN2006800275898 A CN 2006800275898A CN 200680027589 A CN200680027589 A CN 200680027589A CN 101233490 B CN101233490 B CN 101233490B
Authority
CN
China
Prior art keywords
client
client computer
main frame
piece
state information
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
Application number
CN2006800275898A
Other languages
English (en)
Other versions
CN101233490A (zh
Inventor
英戈·阿德伦格
崔钟赫
休伯塔斯·弗兰克
莉萨·赫勒
威廉·霍尔德
雷·曼塞尔
达米安·奥西塞克
兰德尔·菲利
马丁·施维德夫斯基
古斯塔夫·西特曼三世
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN101233490A publication Critical patent/CN101233490A/zh
Application granted granted Critical
Publication of CN101233490B publication Critical patent/CN101233490B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • G06F9/5016Allocation 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 the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/45583Memory management, e.g. access or allocation

Abstract

提高支持可分页客户机的计算环境中的处理的方法和系统。处理用许多种方法提高,该方法包括但不限于:将客户机和主机状态信息与存储的客户机块相关联;将状态信息维持在主机存储器中的控制块中;允许状态的改变,其中改变所述客户机状态信息导致与存储器的块相关联的主机状态信息被改变;以及在管理决定中利用所述状态信息。在一个具体例子中,客户机状态包括存储器内容对客户机的有用性和重要性的指示,并且主机状态反映对存储器内容的访问的容易。所述主机和客户机状态信息用于管理主机和/或客户机的存储器。

Description

提高支持可分页客户机的计算环境中的处理的方法和系统
技术领域
本发明一般涉及支持可分页客户机(guest)的计算环境,尤其涉及提高在这样的环境中的处理。
背景技术
在支持可分页客户机的计算环境中,处理通常被多层资源管理变得复杂。已经实现这种复杂的处理的一个方面在于存储器管理方面。为了在这样的环境中管理存储器,通常让可分页客户机和它们相关联的主机管理它们各自的存储器,引起导致性能降级的冗余。
作为一个例子,在主机实现成百上千的可分页客户机的环境中,主机通常过度提交(over-commit)存储器。而且,在每个客户机中运行的分页操作系统可能过度消耗并且也过度提交它的存储器。这种过度提交引起客户机的存储器印记(footprint)增长到如此程度:主机经历过高的分页率。由管理它们各自的存储器的主机和客户机消耗的开支可能导致严重的客户机性能降级。
因此,存在对提高支持可分页客户机的计算环境中的处理的能力的需求。在一个具体例子中,存在对在支持可分页客户机的那些环境中、提高更有效的存储器管理的能力的需求。
发明内容
本发明要解决的技术问题是提高支持可分页客户机的计算环境中的处理的能力。
本发明的第一个方面,提供了一种提高在支持可分页客户机的计算环境中的处理的方法。在本发明的第一个方面中,所述方法包括:将计算环境的客户机的客户机状态信息与客户机的存储器块相关联,所述客户机是由计算环境的虚拟机执行的可分页客户机,所述虚拟机由耦合到所述虚拟机的主机管理;以及将客户机状态信息维持在主机的存储器的一个或多个控制块中;由客户机改变维持在一个或多个控制块的至少一个控制块中的客户机状态信息,该一个或多个控制块维持在主机存储器中,其中执行所述改变而不涉及主机;其中改变所述客户机状态信息导致与存储器的块相关联的主机状态信息被改变。
在另外的实施例中,所述客户机状态信息被用于管理计算环境的存储器。而且,所述一个或多个控制块提供主机状态信息,其也可以用于客户机存储器管理。
其中主机的主机状态信息由主机存储器中的一个或多个控制块提供,并且其中所述方法还包括提供由客户机对主机状态信息的访问。
该方法还包括基于对所述客户机可访问的主机状态信息,管理客户机的存储器。
其中经由由客户机发出的指令执行所述改变。
该方法还包括由所述主机访问客户机状态信息,以便使得主机能够基于所述客户机状态信息管理计算环境的存储器。
该方法还包括由所述主机回收存储器的一个或多个备份帧,其中所述回收导致改变在主机的存储器中的一个或多个控制块中维持的客户机状态信息。
其中所述主机部分基于客户机状态信息,选择一个或多个备份帧回收。
其中所述客户机状态信息包括易失状态,其中存储器的块的内容对该客户机是有意义的,但是在通知所述客户机的情况下,能够被所述主机丢弃,因为所述客户机能够重新创建该内容。
其中所述通知在客户机试图引用丢弃的内容时被中断。
该方法还包括响应于客户机接收所述通知,由客户机重新创建被丢弃的块的内容。
其中所述重新创建包括在替换的块中重新创建被丢弃的块的内容。
该方法还包括将丢弃的块与替换的块交换,其中所述交换包括用替换的块的翻译和状态信息替换丢弃的块的翻译和状态信息。
其中所述客户机状态信息包括潜在易失状态,其中存储器的块的内容对该客户机是有意义的,但是如果所述内容没有变化,则能够被所述主机丢弃,因为所述客户机能够重新创建无变化的内容。
该方法还包括:基于客户机状态信息确定备份辅助存储中的存储器块的内容可以被丢弃;以及跟踪存储器的该块,用于随后从该备份辅助存储删除。
其中所述跟踪包括将存储器的块的客户机地址包括在由主机可访问的数据结构中。
在此还描述并要求保护对应于上面总结的方法的系统和计算机程序产品。
一种提高在支持可分页客户机的计算环境中的处理的系统,所述系统包括:执行可分页客户机的计算环境的虚拟机;以及主机,其耦合到所述虚拟机以管理所述可分页客户机,所述主机包括用于维持一个或多个控制块的存储器,所述一个或多个控制块维持与可分页客户机的存储器的块相关联的客户机状态信息,所述客户机状态信息包括资源使用信息;其中可分页客户机发出服务,以便改变在一个或多个控制块的至少一个控制块中维持的客户机状态信息,其中执行所述改变而不涉及主机;其中改变所述客户机状态信息导致与存储器的块相关联的主机状态信息改变。
其中所述主机的存储器中的一个或多个控制块还提供所述主机的主机状态信息,并且其中所述系统还包括具有对主机状态信息访问的可分页客户机。
其中所述可分页客户机适于基于对所述可分页客户机可访问的主机状态信息,管理可分页客户机的存储器。
其中所述主机具有对客户机状态信息访问,以使得主机能够基于所述客户机状态信息管理计算环境的存储器。
其中所述主机的回收一个或多个计算环境的存储器的备份帧,其中所述回收导致改变在主机的存储器中的一个或多个控制块中维持的客户机状态信息。
所述的系统还包括:用于基于客户机状态信息、确定备份辅助存储中的存储器的块的内容可以被丢弃的装置;以及数据结构,用于跟踪存储器的该块,用于随后从该备份辅助存储删除。
一种提高在支持可分页客户机的计算环境中的处理的制造产品,包括:关联装置,用于将计算环境的客户机的客户机状态信息与客户机的存储器块相关联,所述客户机状态信息包括资源使用信息,所述客户机是由计算环境的虚拟机执行的可分页客户机,所述虚拟机由耦合到所述虚拟机的主机管理;以及维持装置,用于维持在主机存储器中的一个或多个控制块中的客户机状态信息;改变装置,由客户机改变维持在一个或多个控制块的至少一个控制块中的客户机状态信息,该一个或多个控制块控制块维持在主机存储器中,其中执行所述改变而不涉及主机;其中改变所述客户机状态信息导致与存储器的块相关联的主机状态信息改变。
其中主机的主机状态信息由主机存储器中的一个或多个控制块提供,并且该制造产品还包括提供装置,用于提供由客户机对主机状态信息的访问。
所述的制造产品还包括管理装置,用于基于对所述客户机可访问的主机状态信息管理客户机的存储器。
所述的制造产品还包括访问装置,用于由所述主机访问客户机状态信息,以使得主机能够基于所述客户机状态信息管理计算环境的存储器。
所述的制造产品还包括回收装置,用于由所述主机回收一个或多个存储器的备份帧,其中所述回收导致改变在主机的存储器中的一个或多个控制块中维持的客户机状态信息。
所述的制造产品还包括:确定装置,用于基于客户机状态信息确定备份辅助存储中的存储器块的内容可以被丢弃;以及跟踪装置,用于跟踪存储器的该块,以便随后从该备份辅助存储删除。
其中所述跟踪装置包括由主机可访问的数据结构,其包括存储器的块的客户机地址。
作为本发明的另一个方面,提供了在计算环境中执行指令的系统。所述指令包括例如操作代码,其指示要执行的操作,所述操作包括如下的至少一个:从在所述主机的存储器中维持的一个或多个控制块中,提取与存储器块有关的主机状态信息、和一个或多个可分页客户机的客户机的存储器块的一个或多个客户机状态信息,并且设置与存储器块相关联的客户机状态信息。所述计算环境包括:第一寄存器,响应于指示提取的操作代码,将客户机状态信息和主机状态信息中的至少一个提取到该第一寄存器中;以及第二寄存器,其包括存储器块的客户机地址,按照所述操作代码为该客户机地址处理客户机状态信息和主机状态信息中的至少一个。
另外的特征和优点通过本发明的技术实现。本发明的其它实施例和方面在此详细描述并且被认为是要求保护的本发明的一部分。
附图说明
下面参照附图,通过示例的方式更详细描述了本发明的各实施例,在附图中:
图1a描绘并入并且使用本发明的一个或多个方面的计算环境的一个实施例;
图1b按照本发明的一个方面、描绘图1a的输入/输出(I/O)子系统的进一步的细节;
图2按照本发明的一个方面、图示在解释执行状态描述和协同存储器管理备份(backing)回收日志(CBRL)之间的关联性;
图3按照本发明的一个方面、描绘页状态表项目(PGSTE)的一个例子;
图4按照本发明的一个方面、描绘页表项目(PTE)的一个例子;
图5按照本发明的一个方面、图示PTE与PGSTE的对应;
图6按照本发明的一个方面、描绘提取及设置存储属性(ESSA)指令的格式的一个例子;以及
图7按照本发明的一个方面、描绘用于提取及设置存储属性指令的有限状态机的一个例子。
具体实施方式
按照本发明的一个方面,提高了支持可分页客户机的计算环境中的处理。用许多方法提高了处理,该方法包括但不限于:将客户机和主机状态信息与存储器或存储(在此存储和存储器可互换使用)的客户机块相关联;将状态信息维持在主机存储器的客户机块中;允许由客户机改变状态信息;以及在管理决定中使用状态信息。在一个具体的示例中,状态信息用于管理主机和/或客户机的存储器。
参照图1a描述了并入并且使用本发明的一个或多个方面的计算环境的一个实施例。计算环境100基于例如由国际商业机器公司(Armonk,纽约)提供的z/架构。在标题为“z/架构的操作原理(z/Architecture Principles ofOperation)”(
Figure GA20177983200680027589801D00051
出版物No.SA22-7832-02,2003年6月)的
Figure GA20177983200680027589801D00052
出版物中描述了该z/架构,在此通过引用并入其全部内容。(
Figure GA20177983200680027589801D00053
是国际商业机器公司(Armonk,纽约,美国)的注册商标。在此使用的其它名称可能是国际商业机器公司或其它公司的注册商标、商标或产品名称)。在一个例子中,基于z/架构的计算环境包括由国际商业机器公司(Armonk,纽约)提供的eServer zSeries。
计算环境100包括例如中央处理器联合体(CPC)102,其提供虚拟机支持。CPC 102包括例如一个或多个虚拟机104、一个或多个中央处理器106、至少一个主机108(例如,控制程序,如管理程序(hypervisor))、和输入/输出子系统110,其每个将在下文描述。主机和一个或多个虚拟机由中央处理器从物理存储器114的范围中执行。
CPC的虚拟机支持提供了操作大量虚拟机的能力,每个能够容纳客户机操作系统112,如Linux。每个虚拟机104能够用作分开的系统。也就是说,每个虚拟机能够独立地重置、执行客户机操作系统并且用不同程序操作。在虚拟机上运行的操作系统或应用程序看起来能够访问全部完整的系统,而实际上,仅仅部分的实际系统对虚拟机可用。
在该特定的例子中,虚拟机模型是V=V(即,可分页)模型,其中虚拟机的存储器由主机的虚拟存储器而不是实际存储器备份。每个虚拟机具有虚拟的线性存储器空间。物理资源由主机108拥有,并且共享的物理资源由所述主机根据需要分配给客户机操作系统,以便满足它们的处理要求。该V=V虚拟机模型假定:在客户机操作系统和物理共享机器资源之间的交互由主机控制,因为大量的客户机典型地将主机从对配置的客户机简单分区并且分配固定的硬件资源排除。因此,例如,包括虚拟机的存储器最近引用的部分的主机分页,可能保持驻留在物理存储器中,而最近引用较少的部分被分页出到主机辅助存储,允许对超过物理存储器容量的虚拟机的总存储器要求的过度提交。V=V模型的一个或多个方面还在标题为“z/VM:Running GuestOperating Systems”(
Figure GA20177983200680027589801D00061
出版物No.SC24-5997-02,2001年10月)的
Figure GA20177983200680027589801D00062
出版物中描述,在此通过引用并入其全部内容。
中央处理器106是可分配给虚拟机104的物理处理器资源。例如,虚拟机104包括一个或多个虚拟处理器,其每个表示可以动态分配给虚拟机的所有或部分物理处理器资源106。虚拟机104由主机108管理。作为例子,该主机可以以运行在处理器106上的固件实现,或者可以是在所述机器上执行的主机操作系统的一部分。在一个例子中,主机108是VM管理程序,如由国际商业机器公司(Armonk,纽约)提供的
Figure GA20177983200680027589801D00063
的一个例子在标题为“z/VM:General Information Manual”(
Figure GA20177983200680027589801D00064
出版物No.SC24-5991-04,2001年10月)的
Figure GA20177983200680027589801D00065
出版物中描述,在此通过引用并入其全部内容。
输入/输出子系统110指导设备和主存储之间的信息流。其耦合到中央处理器综合体,因为它可以是中央处理器综合体的部分或者从其分开。I/O子系统解除中央处理器与耦合到CPC的I/O设备直接通信的任务,并且允许数据处理与I/O处理并发地进行。在一个实施例中,I/O子系统110包括多个适配器120(图1b),其耦合到多个I/O设备122。特定的适配器可以耦合到一个或多个I/O设备,并且I/O设备可以被耦合到一个或多个适配器。
按照本发明的一个方面,提高了在计算环境100中的处理。可以提高处理的许多方面,但是作为一个例子,在此描述的实施例与提高存储器管理有关。具体来说,在此描述协同存储器管理工具(facility)(CMM)。然而,尽管在此描述了CMM,但是本发明的一个或多个方面可以涉及和/或有利于其它方面的处理。
协同存储器管理工具是提供用于在可分页客户机和其主机之间传达粒状(granular)分页状态信息的媒介(vehicle)的工具。在客户机和主机之间的信息的这种共享提供了下面的好处,例如:
·主机能够在选择分页帧回收(盗用)时作出更加明智的决定。
·对客户机已经指示其内容可丢弃的块消除了主机页写入开支(overhead)。
·主机存储器印记被降低,允许更大存储器过度提交。
·如果客户机正定义和管理用于其底层处理的虚拟存储器,则该客户机能够在在选择块回收(盗用)时作出更加明智的决定。在一个例子中,客户机基于主机状态信息作出这些决定。
·客户机能够在分配块时作出更明智的决定。在一个例子中,客户机基于主机状态信息作出这些决定。
·对主机已经指示包括0的块消除了客户机块清除开支(即,主机已经消除)。
为了在基于z/架构的环境中激活CMM,采用了状态描述200(图2)。该状态描述包括虚拟机状态,使得能够由适当设计的处理器直接执行虚拟机。还在标题为“IBM System/370Extended Architecture:Interpretive Execution”(
Figure GA20177983200680027589801D00071
出版物No.SA22-7095(1985))的
Figure GA20177983200680027589801D00072
出版物中描述了这样的解释执行能力的一个例子,在此通过引用并入其全部内容。
状态描述200包括用于CMM的启用控制位(C)202。当该位是1时,CMM工具对客户机可用,并且该客户机可以调用服务(例如,提取和设置存储属性(ESSA)指令)以询问和操作与每个客户机块相关联的块状态。响应于调用该服务,在一个实施例中,中央处理器经由例如解释执行(SIE)架构(即,启动解释执行(SIE)架构)解释性地执行ESSA指令。
当CMM启用控制位是0时,中央处理器不解释性地执行ESSA指令。因此,如果没有激活CMM的客户机试图发出ESSA指令,则指令拦截出现。这给予主机仿真ESSA指令或将操作异常程序中断提供给客户机的选项。
除了用来激活CMM的控制位202外,状态描述200还包括到被称作为CMM备份回收日志(CBRL)控制块206的指针204(CBRLO-CMM备份回收日志(CBRL)起点)。CBRL附属于状态描述,并且包括多个项目208(例如,511个8字节的项目)。CBRL中的下一个可用项目的偏置在210处的状态描述(NCEO-下一个CBRL项目偏置)。位于偏置之前的每个CBRL项目包括客户机块的客户机绝对地址,该客户机块的备份辅助存储能够由主机回收。
本发明的一个或多个方面的协同存储器管理工具包括例如下面的特征,其在此更详细地描述:
·客户机和主机状态信息与每个客户机块的关联。
·提取和设置存储属性(ESSA)客户机服务,其允许客户机直接确定客户机块的客户机和主机状态而不涉及主机。ESSA服务还允许客户机可选地改变所述块的客户机状态。ESSA服务通过直接访问包括状态信息的主机控制块做这些而不涉及主机。在某些情形中,块的客户机状态的改变还导致该块的主机状态的改变,并且可能在CBRL中记录所述块地址。
·增强的主机控制块,用于包括主机和客户机状态信息。
·由对客户机块状态的改变驱动的主机和客户机行为的增强。
客户机和主机状态信息与各客户机块的关联包括可用的主机状态的定义。例如,定义了下面的主机状态:
1.驻留(r)状态:客户机块存在于主机分页帧中。
主机分页帧(即,帧,分页帧)是用来包括、备份包括客户机块(即块)的主机分页的主机实际存储器的块(例如,4k字节)。主机分页或页是用来实现客户机存储器的块的虚拟存储器的页(例如,4k字节)。块(即,客户机块)是客户机看作其物理(或绝对)存储器的块的存储器(在例如4k字节的边界)的块(例如,4k字节)。
2.预留(p)状态:客户机块不存在于主机分页帧中,但是已经由主机预留在某些辅助存储中。
3.逻辑0(z)状态:客户机块不存在于主机分页帧中,并且客户机块的内容已知为0。
逻辑0(z)状态是初始的(或缺省的)主机状态。
客户机和主机状态信息的关联还包括可用的客户机状态的定义。例如,定义了下面的客户机状态:
1.稳定(S)状态:稳定块的内容保持与由客户机设置的相等。该主机负责将块的内容预留在稳定状态,如果备份分页帧被回收。
稳定状态是块的缺省客户机状态。当客户机将块的状态改变为不同于稳定的状态时,该客户机要将状态改变回稳定状态,以便确保由主机预留的内容。
2.未使用(U)状态:未使用块的内容对客户机没有意义。在客户机将块的状态设置为未使用状态时,主机可以在任何时间丢弃该块的内容并且回收备份分页帧。当主机丢弃块的内容时,它将主机状态改变为z。
客户机不引用处于未使用状态的块;否则,寻址异常可能出现。
3.易失(V)状态:易失块的内容对客户机是有意义的,但是主机可以在任何时间丢弃该块的内容并且回收备份分页帧。客户机能够容许该块内容的这样的损失,因为它有能力重新创建它们。如果主机回收备份分页帧,则主机将该块的主机状态改变为z。
客户机可以试图引用处于客户机易失状态的块的内容。这将成功如果该块的客户机/主机状态是Vr,或将导致块易失性异常如果该块的客户机/主机状态是Vz。
如果该块被丢弃,则客户机对处于客户机易失状态的块的内容可能进行的任何变化将丢失。
4.潜在易失(P)状态:潜在易失块的内容对客户机是有意义的,但是基于客户机改变历史,主机可以丢弃或者应该预留该块的内容。
如果与该块相关联的改变指示符指示该块还没有改变,则该主机可以在任何时间丢弃该块的内容并且回收备份分页帧。该客户机能够容许块内容的这样的丢失,因为它有能力重新创建它们。如果主机丢弃潜在易失块,则该主机将该块的客户机/主机状态改变为Vz。
如果与该块相关联的变化指示符指示该块已经改变,则该主机预留该块的内容。当主机将该内容预留在辅助存储上时,它将该块的客户机/主机状态从Pr改变为Sp。
P状态给V和S状态都提供好处。这允许客户机改变处于P客户机状态的块的内容,确保由主机预留块内容。对于没有被客户机改变的处于P客户机状态的那些块,主机可以有效地丢弃所述内容并且回收主机分页帧,而不招致与块内容预留相关联的开支。
按照本发明的一个方面,机器(例如不同于主机和客户机的固件)和主机确保客户机块的状态处于下面允许的客户机/主机块状态之一:Sr、Sp、Sz、Ur、Uz、Vr、Vz或Pr。
各客户机块的状态信息维持在例如描述客户机的存储器的主机分页表(PT)和分页状态表(PGST)中。这些表分别包括例如一个或多个分页表项目(PTE)和一个或多个分页状态表项目(PGST),它们将在下面更详细地描述。
参照图3描述了分页状态表项目300的一个例子。分页状态表项目300包括例如以下:
(a)Acc 302:访问控制密钥
(b)FP 304:提取保护指示符;
(c)页控制互锁(PCL)306:这是用于连续化对分页表项目(PTE)、和除了标记为保留的PGSTE状态区和PGSTE位之外的对应的PGSTE的更新的互锁控制。
(d)HR 308:主机引用备份指示符;
(e)HC 310:主机改变备份指示符;
(f)GR 312:客户机引用备份指示符;
(g)GC 314:客户机改变备份指示符;
(h)状态316:意图由主机程序使用。
(i)分页内容逻辑0指示符(Z)318:该位在相对应的PTE分页无效(PTE.I)位(下面描述)是1时有意义。
当Z是1时,由该PGSTE和相对应的PTE描述的分页的内容被认为是0。该分页的任何先前的内容没有必要预留,并且可以用0分页代替。
当Z是0时,由该PGSTE和相对应的PTE描述的分页内容不被认为是0。该分页的内容由主机预留。
当Z位是1并且相对应的PTE.I位是1时,主机状态是z。这意味着该分页内容可以由主机或者由主机分页管理帮助工具的功能替换,该主机分页管理帮助工具在于2004年5月27日提交的、标题为“Interpreting I/O operationRequests From Pageable Guests Without Host Intervention”(Easton等人,IBM标签号No.POU920030028US1)的美国序列No.10/855,200中描述,在此通过引用并入其全部内容。
当Z位是1、相对应的PTE.I位是1、并且分页内容被替换时,该分页应当通过将它与已经设置为0的帧相关联而被替换。
当Z位是0并且PTE无效位是1时,主机状态是P。
(i)页分类(PC)320:当为0时,由PGSTE和对应的PTE描述的分页是类0分页,并且用于类0分页的delta锁定(pin)分页计数数组(DPPCA)用于计数该分页的锁定和解锁操作。当为1时,由PGSTE和对应的PTE描述的分页是类1分页,并且用于类1分页的DPPCA用于计数该分页的锁定和解锁操作。
(j)锁定(pin)计数溢出(PCO)322:当为1时,锁定计数字段处于溢出状态。当为0时,锁定计数字段不处于溢出状态。在这种情况下,总的锁定计数由主机保持在不由该机器访问的另一个数据结构中。
(k)关于处理的帧描述符列表(FPL)的帧描述符324:当为1时,用于由PGSTE和对应的PTE描述的分页的帧描述符,在处理的帧描述符列表中。该帧描述符识别由该分页的HPMA解决主机分页功能使用的主机分页帧。
(l)分页内容替代请求(PCR)326:当为1时,在为由PGSTE和对应的PTE表示的分页调用HPMA解决主机分页功能时,请求分页内容替代。
(m)使用状态(US)328:指示客户机状态是否是S、U、V或P。
(n)状态330:意图用于主机程序使用
(o)锁定计数332:无符号二进制整数计数,用来指示由PGSTE和对应的PTE描述的主机虚拟分页的内容,是否锁定在由PTE的分页帧实际地址字段指定的实际主机分页帧中。当该字段的值大于0或分页计数溢出(PCO)位为1时,对应的分页被认为锁定。当该字段的值是0并且PCO位是0时,对应的分页被认为未锁定。
在分页被主机或CPU锁定时,该字段应该增加1。在分页被主机或CPU解锁时,该字段应该减1。
当锁定计数字段的值大于0或PCO位是0时,对应的PTE.I(分页无效)位是0。否则,不可预料的结果可能出现。
在分页被锁定时,主机程序不应该改变PTE或分段表项目(STE)中的PTE分页帧实际地址(PFRA)字段的内容、PTE分页无效(I)位的设置或分页保护(P)位的设置。否则,不可预料的结果可能出现。
为了完整提供了如上所述的一个或多个PGSTE字段,但其不是本发明的一个或多个方面必需的。
PGSTE对应分页表项目(PTE),参照图4描述了其例子。分页状态表项目400包括例如:
(a)分页帧实际地址(PFRA)402:该字段提供了实际(在此情形中,主机实际)存储地址的最左的各位。当这些位与右边的虚拟地址的字节索引字段连接时,获得实际地址。
(b)分页无效指示符(I)404:该字段控制与分页表项目相关联的分页是否可用。当指示符是0时,通过利用分页表项目进行地址翻译。而且,主机状态是r。当指示符是1时,分页表项目不能被用于翻译,并且主机状态是p或z,由PGSTE.Z确定。
(c)分页保护指示符406:该字段控制存储访问是否被允许进入该分页。
有关分页表项目和分页表以及在此提及的分段表项目的进一步的细节,在标题为“z/架构操作原理(z/Architecture Principles of Operation)”(出版物No.SA22-7832-02,2003年6月)的
Figure GA20177983200680027589801D00122
出版物中提供,在此通过引用并入其全部内容。而且,有关PGSTE的进一步细节在于2004年5月27日提交的、标题为“Interpreting I/O operation Requests From Pageable GuestsWithout Host Intervention”(Easton等人,IBM标签号No.POU920030028US1)的美国序列No.10/855,200中描述,在此通过引用并入其全部内容。
在一个实施例中,每个分页表有一个分页状态表,该分页状态表大小与分页表相同,分页状态表项目大小与分页表项目相同,并且该分页状态表位于离该分页表固定的位移处(在主机实际存储器中)。因此,在每个分页表项目和分页状态表项目之间存在一一对应。给出主机的分页虚拟地址,则机器和主机都能够容易地定位分页状态表项目,其对应于客户机块的分页表项目。这在图5中图示,在图5中PTO是分页表(PT)起点;I是PTE无效位;Z是PGSTE逻辑0位;而US是PGSTE使用状态字段。
为了让客户机从PGSTE提取当前的客户机和主机块状态、并且可选地设置该客户机状态,按照本发明的一个方面,提供了服务。该服务在此被称作为提取和设置存储属性(ESSA)服务。该服务能够以许多不同方法实现,包括但不限于:作为以硬件或软件实现的指令、作为管理程序服务调用等。在此描述的实施例中,作为一个例子,它实现为指令,其在客户机请求时由机器执行而不被主机干涉。
提取和设置存储属性指令对激活CMM工具的可分页客户机有效。参照图6描述了ESSA指令的格式的一个例子。提取和设置存储属性指令600包括:操作代码602,其指定这是ESSA指令;M3字段604(输入),指示要执行的操作;输出寄存器的指定606(R1),客户机和主机状态被提取到该寄存器中;以及输入寄存器的指定608(R2),其指定为其按操作代码提取并且可选地设置块状态的块的客户机绝对地址。利用该指令,由第二操作数(operand)指定的块的客户机状态和主机状态被提取到第一操作数位置。客户机状态和主机状态可以基于M3字段的值可选地设置。与指令执行异步,可以改变客户机状态和主机状态两者或者两者之一。
M3字段指定操作请求代码,其指定要执行的操作。示例操作包括:
提取块属性:提取指定块的当前客户机和主机状态。不对任一状态进行改变。
在其它实施例中,对于这里的任何操作,可以提取客户机或主机状态而没有另一个。
设置稳定状态:提取指定块的当前客户机和主机状态。在所述状态的提取之后,将客户机状态设置为稳定状态(S)。
通过提取主机状态,客户机能够识别主机状态何时为逻辑0,并且如果它是逻辑0,则旁路重新清除的页。
设置未使用状态:提取当前客户机和主机状态。在提取之后,将客户机状态设置为未使用状态(U)。而且,如果主机块状态是预留状态(p),则该块的内容被丢弃,客户机引用和改变位被设置为0,该块的地址被记录在CBRL中,并且该主机块状态被设置为逻辑0状态(z)。
将地址记录在CBRL中包括:例如将该地址存储在下一个可用项目中,如由CBRLO和NCEO指定的;以及将NCEO增加8。然而,如果NCEO已经在其极限(例如4088),指示CBRL已满,则代替地抑制ESSA指令的执行,并且拦截被提供给主机,允许主机清空CBRL。
设置易失状态:提取当前客户机和主机块状态。在提取之后,将客户机块状态设置为易失状态(V)。而且,如果主机块状态是预留状态(p),则该块的内容被丢弃,客户机引用和改变位被设置为0,该块的地址被记录在CBRL中(如上所述),并且该主机块状态被设置为逻辑0状态(z)。
或者,如果主机块状态是驻留(r),则内容不立即被丢弃,但是主机可以随后丢弃它们,将该主机块状态改变为逻辑0状态(z)。
设置潜在易失状态:提取当前客户机和主机块状态。在提取之后,将出现下列之一:
(1)如果主机块状态是驻留状态(r),则将该客户机块状态设置为潜在易失状态(P)。
(2)如果主机块状态是预留状态(p)并且该块已经被客户机改变,则客户机块维持稳定状态(S)(如图7所示、在以下所述,预留主机状态仅仅结合稳定客户机状态出现),并且主机状态维持预留状态。
(3)如果主机块状态是预留状态(p)并且该块还没有被客户机改变,则丢弃该块的内容,客户机引用和改变位被设置为0,该块的地址被记录在CBRL中,客户机状态被设置为易失状态(V),并且该主机块状态被设置为逻辑0状态(z)。
(4)如果主机块状态是逻辑0状态(z),则客户机状态被设置为易失状态(V)。
设置稳定并进行驻留:提取当前客户机和主机块状态,并且客户机状态被设置为稳定状态(S)。而且,如果主机块状态不处于驻留状态,则下列将出现:如果主机分页管理帮助工具(HPMA)被安装和激活,则它被调用来企图使块驻留。如果主机分页管理帮助工具没有被安装、没有被激活或者未能使块驻留,则指令拦截被识别,使原始的客户机和主机状态不改变。在此情形中,主机使得所述块稳定和驻留,其可能涉及从辅助存储中恢复所述块。(在于2004年5月27日提交的、标题为“Interpreting I/O operation Requests FromPageable Guests Without Host Intervention”(Easton等,IBM标签号No.POU920030028US1)的美国序列No.10/855,200中详细描述了主机分页管理帮助工具,在此通过引用并入其全部内容。)
如果驻留设置稳定:提取当前客户机和主机块状态。在提取之后,如果主机状态是驻留状态(r),则将客户机状态设置为稳定状态(S)。
在一个实施例中,设置操作在原子操作中完成提取和设置。在替换的实施例中,可以执行设置而不提取或者通过仅仅提取客户机或主机状态。
如上所述,如果程序发出提取和设置存储属性指令,该指令将导致客户机和主机状态的不允许的组合,则机器将用允许的组合来替代该不允许的组合。下面的表总结哪些组合是允许的,而哪些是不允许的。该表还示出替代不允许组合的状态组合(用括号)。
说明:
r-驻留主机状态
p-预留主机状态
z-逻辑0内容主机状态
S-稳定客户机状态
U-未使用客户机状态
V-易失客户机状态
P-潜在易失客户机状态
Y-是-允许
N-不允许
下面描述括号中所示的有关客户机/主机状态组合的脚注:
1.使用ESSA指令将处于预留状态的块的客户机状态设置为未使用状态,通过将该客户机状态改变为未使用状态并将主机状态改变为逻辑0状态,将导致丢弃该块内容。
2.使用ESSA指令将处于预留状态的块的客户机状态设置为易失状态,通过将客户机状态改变为易失状态并将主机状态改变为逻辑0状态,将导致丢弃该块内容。
3.使用ESSA指令将处于预留状态的块的客户机状态设置为潜在易失状态,如果所述块已经被改变,则将导致客户机状态维持稳定状态并且主机状态维持预留状态,或者如果所述块还没有改变,则通过将客户机状态改变为易失状态并将主机状态改变为逻辑0状态,将导致丢弃该块。
4.使用ESSA指令将处于逻辑0主机状态的块的客户机状态设置为潜在易失状态,将导致将客户机状态改变为易失状态,并且主机状态将维持逻辑0状态。
图7描绘了表示各种状态之间的变换的状态图。在一个例子中,建立了有限状态机来实现各状态和各状态之间的转换。上文描述了在状态图中图示的各状态。例如,Ur指示未使用客户机状态/驻留主机状态;Uz指示未使用客户机状态/逻辑零主机状态;Sr-稳定客户机状态/驻留主机状态;Sp-稳定客户机状态/预留主机状态;Sz-稳定客户机状态/逻辑零主机状态。Sz状态是分页的初始(缺省)客户机/主机状态。因为Sz是初始状态,所以没有调用ESSA服务的虚拟机使得其存储被管理,好像所有的客户机块处于稳定状态;Vr-易失客户机状态/驻留主机状态;Vz-易失客户机状态/逻辑零主机状态;Pr-潜在易失客户机状态/驻留主机状态。
在图中描绘的转换包括:主机发起的操作,如盗用备份驻留分页的帧、页进(page into)或页出(page out)辅助存储;通过ESSA服务或通过引用存储器位置的客户机发起的操作;以及隐操作,如丢弃分页内容或备份存储,其由显式主机和客户机操作引起。而且,在图中,如果客户机没有在备份存储上的内容的拷贝,则块被认为是“脏的(dirty)”(客户机分页改变)。同样,如果客户机有在备份存储上的内容的拷贝,则块是“干净的”(客户机分页未改变)。解决代表用实际驻留0填充的存储器块备份指示为Sz的块。
当ESSA指令完成时,由R1字段指定的通用寄存器包括在进行任何指定的状态变化之前的指定块的客户机状态和主机状态。作为一个例子,该寄存器包括客户机状态(即,块使用状态(US))和主机状态(即,块内容状态(CS))。客户机状态包括指示指定块的块使用状态的值,该块使用状态包括例如稳定状态、未使用状态、潜在易失状态和易失状态。所述主机状态包括指示指定块的块内容状态的值,该块内容状态包括例如驻留状态、预留状态和逻辑零状态。
当通过对客户机和主机状态的分析和请求的操作,ESSA指令识别在备份辅助存储中的块的内容可以被丢弃、并且该客户机的CBRL没有满时,该块的主机状态被设置为z,并且添加项目到包括该块的客户机地址的CBRL。随后,当处理器从客户机的解释执行退出时,主机处理该CBRL,并且回收记录在CBRL中的客户机块的相关联的备份辅助存储和备份分页帧。在该处理后,CBRL的项目为空(即主机将在状态描述中申请(file)的NCEO设置为0)。
当ESSA指令识别在备份辅助存储中的块的内容可以被丢弃并且CBRL是满的时,指令拦截出现,主机处理CBRL,如上所述,仿真ESSA指令或调整客户机状态,使得所述机器将重新执行它,接着重新派遣客户机。
在任何时间,主机都可能回收处于S客户机状态的块或已经被改变并且处于P客户机状态的块的帧。在这些情形中,主机在辅助存储中预留页并且将该主机状态改变为p,并且将客户机状态改变为S,如果还没有这样的话。
主机还可以回收处于U或V客户机状态的块或还未被改变并且处于P客户机状态的块的帧。在这些情形中,主机不预留块内容,而是将该页放置到z主机状态,并且如果它过去处于P客户机状态,则将客户机状态改变为V。为了最大存储器管理效率,主机应该在回收处于S客户机状态的块的帧之前,回收处于U客户机状态的块的帧。类似地,可能存在优先于S帧回收V或未改变的P帧的值。
总之,提取和设置存储属性服务为指定的客户机块分配主机PTE和PGSTE(指定为客户机绝对地址);获得页控制互锁(如对客户机存储键操作和HPMA操作所进行的),如果互锁已经被保持,则发出指令拦截;提取当前页属性:来自PGSTE.US字段的各位,加上PTE.I;可选地设置PGSTE中的属性;对于设置稳定并且进行驻留操作,调用HPMA解决主机分页功能,以便使页驻留,并且清除PTE.I(例如,设置PTE.I为0);立即丢弃用于设置未使用、设置易失的和设置潜在易失状态的页内容,如果预留了主机状态-经由CMM备份回收日志(CBRL)推迟的主机辅助存储回收;释放页控制互锁;并且返回输出寄存器中的旧的页属性。在例如客户机希望询问或者改变由客户机使用的存储器的块的状态时,客户机调用该服务。
主机能够访问PGSTE中的各客户机状态,并且基于这些状态作出存储器管理决定。例如,它能够确定哪些页要被首先回收,以及是否需要预留备份存储。该处理与ESSA的执行异步地出现。作为该处理的结果,客户机状态可以被主机改变。
利用CMM,各种异常可以被识别。这些异常的例子包括:块易失性异常,其在客户机引用处于Vz的客户机/主机状态的块时为客户机识别;以及寻址异常,其在客户机引用处于Uz状态的块时被识别。处于Vz或Uz状态的各块被对待好像它们不是非CPU实体的客户机配置的部分(例如,I/O通道子系统),导致适合于这些实体的异常状况。
在一个实施例中,响应于客户机接收块易失性异常(或其它通知),客户机重新创建被丢弃的块的内容。所述内容被重新创建到相同块或替代的块。重新创建可以通过例如经由客户机输入/输出(I/O)操作从存储介质读取内容或、通过其它技术执行。
作为一个例子,为了重新创建内容到替代的块,选择块并且将内容写入到选择的块中(例如,经由I/O操作或其它操作)。接着用选择的块与丢弃的块交换。
为了执行该交换,提供了服务,其由客户机用来交换两个块的主机翻译(或映射)。该服务可以用许多方法实现,该方法包括但不限于如用硬件或软件实现的指令,或如监控服务调用等。服务用重新创建的块的翻译和状态信息(例如PGSTE中主机和客户机状态信息和PTE的内容),自动替换被丢弃的块的PGSTE中的主机和客户机状态信息和PTE的内容(在此统称为翻译和状态信息),并且反之亦然。
在进一步的实施例中,重新创建的块的主机和客户机状态信息和PTE的内容替换被丢弃的块中的相对应的内容,而不让被丢弃的块的内容替换重新创建的块的内容。或者,重新创建的块能够例如被设置为Uz状态。
在上面详细描述的是在支持可分页客户机的计算环境中提高处理的能力。提高的处理的一个特定方面在于存储器管理方面。例如,提供了协同存储器管理工具,其激活主机、机器和其可分页客户机在管理它们各自的存储器之间的协同。它包括主机和客户机之间的通信块状态信息,以及基于该状态信息,主机和客户机采取一定的行动来更有效地管理存储器。在一个实施例中,有利地,提供的解决方案使得存储器印记、以及与n=许多虚拟服务器的执行相关联的分页率被减少,由此提供了相对应的客户机和主机性能改进。
根据本发明的一个或多个方面,更有效地实现和管理了第二级别的虚拟存储。作为例子,页状态信息可以与用来备份第二级别虚拟存储的客户机块相关联,并且由主机和客户机操纵和询问,以便每个能够更有效地管理其存储。在主机和客户机之间提供了相对于分页信息特别是页状态信息的动态协调。
在虚拟环境中,主机(例如管理程序)要如实地仿真底层架构。因此,在之前,不管客户机中的页的内容,主机应该备份该页。也就是说,主机假定(有时候不正确)所有客户机页的内容被客户机需要。然而,在按照本发明的一个方面,通过客户机给主机提供有关客户机状态和其重新生成内容的能力的某些信息,如果必要,该主机能够绕开某些操作,减少有关存储器分页操作的开支和延迟。
有利地,各种优点从本发明的一个或多个方面实现。这些优点包括例如:主机存储器管理效率,其中(例如,通过优先于备份其它页的那些回收备份未使用页的帧)存在对要回收的分页帧的更明智的选择、以及减少的回收开支(避免在可能的地方的页写入);以及客户机存储器管理效率,其中(通过识别所述页已经从逻辑零状态刚刚例示(instantiate))避免对重复使用的页的再次清除;并且(通过相对于目前未驻留的块的使用更喜欢重复使用已经驻留的块)在分配和/或回收块做出更明智的决定。此外,(通过修整未使用块)减少了客户机存储器印记到更少影响客户机,允许更大的存储器过度提交比率。
尽管在此描述了各种例子和实施例,这些仅仅是些例子。对这些例子的许多修改被包括在本发明的范围内。例如,在此描述的计算环境仅仅是一个例子。许多其它的环境可以包括本发明的一个或多个方面。例如,可以采用不同类型的处理器、客户机和/或主机。而且,其它类型的架构可以采用本发明的一个或多个方面。
尽管在主机和客户机操作系统的环境中已经描述了本发明,但是这些技术也可以应用于在单个操作系统和复杂的应用之间的协同,该复杂的应用管理其自己的存储器池,如数据库或联网软件的缓冲器池。许多其它的变化也是可能的。
而且,在此描述的数据结构的例子中,存在许多变化,包括但不限于不同数量的位;不同顺序的位;比在此描述更多、更少或不同的位;更多、更少或不同的字段;不同顺序的字段;不同的字段大小等。而且,这些字段仅仅作为例子被提供,并且可以包括许多变化。而且,在此描述的指示符和/或控件可以具有许多不同的形式。作为另一个例子,客户机状态信息可以包括块内容对该客户机的重要程度的更微粒的指示,作为对主机分页选择决定的进一步引到。
而且,客户机和/或主机状态信息可以由不同于PGSTE和PTE的控制块维持或提供。
正如在此使用的,术语“页”被用来指固定大小或预定大小的区域的存储。页的大小能够变化,尽管在此提供的例子中,页是4K。类似地,存储块是一块存储,并且如在此使用的等效于存储页。然而,在其它实施例中,可以存在不同大小的存储块和/或页。许多其它的替换是可能的。而且,尽管在此使用了术语如“表”等,但是也可以使用任何类型的数据结构。而且,在此提及的这些仅仅是举例。
本发明的一个或多个方面的能力能够以软件、固件、硬件或它们的一些组合实现。
本发明的一个或多个方面能够包括在制造产品(例如,一个或多个计算机程序产品)中,其具有例如计算机可用的介质。该介质在其中具有例如计算机可读的程序代码装置或逻辑(例如,指令、代码、命令等),用于提供和提高本发明的各能力。该制造产品能够包括作为计算机系统的部分或分开出售。
此外,能够提供至少一个由机器可读的程序存储设备,其包括至少一个指令的程序,该程序可由该机器执行以执行本发明的各能力。
在此描绘的流程图仅仅是例子。可以对在此描述的这些图或步骤(或操作)进行许多变化,而不脱离本发明的精神。例如,各步骤可以按不同顺序执行,或者可以添加、删除或修改步骤。所有这些变化被认为是要求保护的本发明的部分。
尽管在此详细描述和描绘了优选实施例,但是对相关领域的技术人员明显的是,能够进行各种修改、添加和替换等而不偏离本发明的精神,并且这些因此被认为在权利要求中定义的本发明的范围内。

Claims (28)

1.一种提高在支持可分页客户机的计算环境中的处理的方法,所述方法包括:
将计算环境的客户机的客户机状态信息与客户机的存储器块相关联,所述客户机状态信息包括资源使用信息,所述客户机是由计算环境的虚拟机执行的可分页客户机,所述虚拟机由耦合到所述虚拟机的主机管理;以及
将客户机状态信息维持在主机存储器中的一个或多个控制块中;
由客户机改变维持在一个或多个控制块的至少一个控制块中的客户机状态信息,该一个或多个控制块维持在主机存储器中,其中执行所述改变而不涉及主机;
其中改变所述客户机状态信息导致与存储器的块相关联的主机状态信息被改变。
2.如权利要求1所述的方法,其中主机的主机状态信息由主机存储器中的一个或多个控制块提供,并且其中所述方法还包括提供由客户机对主机状态信息的访问。
3.如权利要求2所述的方法,还包括基于对所述客户机可访问的主机状态信息,管理客户机的存储器。
4.如权利要求1所述的方法,其中经由由客户机发出的指令执行所述改变。
5.如前面权利要求的任何一个所述的方法,还包括由所述主机访问客户机状态信息,以便使得主机能够基于所述客户机状态信息管理计算环境的存储器。
6.如权利要求5所述的方法,还包括由所述主机回收存储器的一个或多个备份帧,其中所述回收导致改变在主机的存储器中的一个或多个控制块中维持的客户机状态信息。
7.如权利要求6所述的方法,其中所述主机部分基于客户机状态信息,选择一个或多个备份帧回收。
8.如权利要求1到4中任何一个所述的方法,其中所述客户机状态信息包括易失状态,其中存储器的块的内容对该客户机是有意义的,但是在通知所述客户机的情况下,能够被所述主机丢弃,因为所述客户机能够重新创建该内容。
9.如权利要求8所述的方法,其中所述通知在客户机试图引用丢弃的内容时被中断。
10.如权利要求8或权利要求9所述的方法,还包括响应于客户机接收所述通知,由客户机重新创建被丢弃的块的内容。
11.如权利要求10所述的方法,其中所述重新创建包括在替换的块中重新创建被丢弃的块的内容。
12.如权利要求11所述的方法,还包括将丢弃的块与替换的块交换,其中所述交换包括用替换的块的翻译和状态信息替换丢弃的块的翻译和状态信息。
13.如权利要求1到4中任何一个所述的方法,其中所述客户机状态信息包括潜在易失状态,其中存储器的块的内容对该客户机是有意义的,但是如果所述内容没有变化,则能够被所述主机丢弃,因为所述客户机能够重新创建无变化的内容。
14.如权利要求1到4中任何一个所述的方法,还包括:
基于客户机状态信息确定备份辅助存储中的存储器块的内容可以被丢弃;以及
跟踪存储器的该块,用于随后从该备份辅助存储删除。
15.如权利要求14所述的方法,其中所述跟踪包括将存储器的块的客户机地址包括在由主机可访问的数据结构中。
16.一种提高在支持可分页客户机的计算环境中的处理的系统,所述系统包括:
执行可分页客户机的计算环境的虚拟机;以及
主机,其耦合到所述虚拟机以管理所述可分页客户机,所述主机包括用于维持一个或多个控制块的存储器,所述一个或多个控制块维持与可分页客户机的存储器的块相关联的客户机状态信息,所述客户机状态信息包括资源使用信息;
其中可分页客户机发出服务,以便改变在一个或多个控制块的至少一个控制块中维持的客户机状态信息,其中执行所述改变而不涉及主机;
其中改变所述客户机状态信息导致与存储器的块相关联的主机状态信息改变。
17.如权利要求16所述的系统,其中所述主机的存储器中的一个或多个控制块还提供所述主机的主机状态信息,并且其中所述系统还包括具有对主机状态信息访问的可分页客户机。
18.如权利要求17所述的系统,其中所述可分页客户机适于基于对所述可分页客户机可访问的主机状态信息,管理可分页客户机的存储器。
19.如权利要求16至18的任何一个所述的系统,其中所述主机具有对客户机状态信息访问,以使得主机能够基于所述客户机状态信息管理计算环境的存储器。
20.如权利要求19所述的系统,其中所述主机的回收一个或多个计算环境的存储器的备份帧,其中所述回收导致改变在主机的存储器中的一个或多个控制块中维持的客户机状态信息。
21.如权利要求16至18的任何一个所述的系统,还包括:
用于基于客户机状态信息、确定备份辅助存储中的存储器的块的内容可以被丢弃的装置;以及
数据结构,用于跟踪存储器的该块,用于随后从该备份辅助存储删除。
22.一种提高在支持可分页客户机的计算环境中的处理的制造产品,包括:
关联装置,用于将计算环境的客户机的客户机状态信息与客户机的存储器块相关联,所述客户机状态信息包括资源使用信息,所述客户机是由计算环境的虚拟机执行的可分页客户机,所述虚拟机由耦合到所述虚拟机的主机管理;以及
维持装置,用于维持在主机存储器中的一个或多个控制块中的客户机状态信息;
改变装置,由客户机改变维持在一个或多个控制块的至少一个控制块中的客户机状态信息,该一个或多个控制块控制块维持在主机存储器中,其中执行所述改变而不涉及主机;
其中改变所述客户机状态信息导致与存储器的块相关联的主机状态信息改变。
23.如权利要求22所述的制造产品,其中主机的主机状态信息由主机存储器中的一个或多个控制块提供,并且该制造产品还包括提供装置,用于提供由客户机对主机状态信息的访问。
24.如权利要求23所述的制造产品,还包括管理装置,用于基于对所述客户机可访问的主机状态信息管理客户机的存储器。
25.如权利要求22至24的任何一个所述的制造产品,还包括访问装置,用于由所述主机访问客户机状态信息,以使得主机能够基于所述客户机状态信息管理计算环境的存储器。
26.如权利要求25所述的制造产品,还包括回收装置,用于由所述主机回收一个或多个存储器的备份帧,其中所述回收导致改变在主机的存储器中的一个或多个控制块中维持的客户机状态信息。
27.如权利要求22至24的任何一个所述的制造产品,还包括:
确定装置,用于基于客户机状态信息确定备份辅助存储中的存储器块的内容可以被丢弃;以及
跟踪装置,用于跟踪存储器的该块,以便随后从该备份辅助存储删除。
28.如权利要求27所述的制造产品,其中所述跟踪装置包括由主机可访问的数据结构,其包括存储器的块的客户机地址。
CN2006800275898A 2005-07-15 2006-07-13 提高支持可分页客户机的计算环境中的处理的方法和系统 Active CN101233490B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/182,570 2005-07-15
US11/182,570 US8387049B2 (en) 2005-07-15 2005-07-15 Facilitating processing within computing environments supporting pageable guests
PCT/EP2006/064227 WO2007009940A1 (en) 2005-07-15 2006-07-13 Facilitating processing within computing environments supporting pageable guests

Publications (2)

Publication Number Publication Date
CN101233490A CN101233490A (zh) 2008-07-30
CN101233490B true CN101233490B (zh) 2012-02-01

Family

ID=37165985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800275898A Active CN101233490B (zh) 2005-07-15 2006-07-13 提高支持可分页客户机的计算环境中的处理的方法和系统

Country Status (7)

Country Link
US (5) US8387049B2 (zh)
EP (1) EP1904926B1 (zh)
CN (1) CN101233490B (zh)
AT (1) ATE460704T1 (zh)
DE (1) DE602006012843D1 (zh)
PT (1) PT1904926E (zh)
WO (1) WO2007009940A1 (zh)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8387049B2 (en) 2005-07-15 2013-02-26 International Business Machines Corporation Facilitating processing within computing environments supporting pageable guests
US8327353B2 (en) * 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
US7877485B2 (en) * 2005-12-02 2011-01-25 International Business Machines Corporation Maintaining session states within virtual machine environments
US8539137B1 (en) * 2006-06-09 2013-09-17 Parallels IP Holdings GmbH System and method for management of virtual execution environment disk storage
US8117417B2 (en) * 2008-01-11 2012-02-14 International Business Machines Corporation Dynamic address translation with change record override
US8103851B2 (en) * 2008-01-11 2012-01-24 International Business Machines Corporation Dynamic address translation with translation table entry format control for indentifying format of the translation table entry
US8037278B2 (en) * 2008-01-11 2011-10-11 International Business Machines Corporation Dynamic address translation with format control
US8417916B2 (en) * 2008-01-11 2013-04-09 International Business Machines Corporation Perform frame management function instruction for setting storage keys and clearing blocks of main storage
US8041922B2 (en) * 2008-01-11 2011-10-18 International Business Machines Corporation Enhanced dynamic address translation with load real address function
US8041923B2 (en) 2008-01-11 2011-10-18 International Business Machines Corporation Load page table entry address instruction execution based on an address translation format control field
US8019964B2 (en) * 2008-01-11 2011-09-13 International Buisness Machines Corporation Dynamic address translation with DAT protection
US8335906B2 (en) * 2008-01-11 2012-12-18 International Business Machines Corporation Perform frame management function instruction for clearing blocks of main storage
US8082405B2 (en) * 2008-01-11 2011-12-20 International Business Machines Corporation Dynamic address translation with fetch protection
US8151083B2 (en) * 2008-01-11 2012-04-03 International Business Machines Corporation Dynamic address translation with frame management
US8677098B2 (en) 2008-01-11 2014-03-18 International Business Machines Corporation Dynamic address translation with fetch protection
US8086811B2 (en) * 2008-02-25 2011-12-27 International Business Machines Corporation Optimizations of a perform frame management function issued by pageable guests
US8176280B2 (en) * 2008-02-25 2012-05-08 International Business Machines Corporation Use of test protection instruction in computing environments that support pageable guests
US8095773B2 (en) 2008-02-26 2012-01-10 International Business Machines Corporation Dynamic address translation with translation exception qualifier
US8234655B2 (en) 2008-07-29 2012-07-31 International Business Machines Corporation Detection of duplicate memory pages across guest operating systems on a shared host
US8458284B2 (en) * 2009-06-12 2013-06-04 International Business Machines Corporation Systems and methods for efficient live application migration within bandwidth constrained networks
JP5601516B2 (ja) * 2010-10-06 2014-10-08 日本電気株式会社 コンピュータ装置及びメモリリソース割当て方法
US8813071B2 (en) * 2011-01-31 2014-08-19 Symantec Corporation Storage reclamation systems and methods
US9280486B2 (en) * 2011-07-28 2016-03-08 Red Hat, Inc. Managing memory pages based on free page hints
US9286101B2 (en) * 2011-07-28 2016-03-15 Red Hat, Inc. Free page hinting
CN103164290B (zh) * 2011-12-14 2017-08-04 腾讯科技(深圳)有限公司 应用内存管理方法和装置
US9104481B2 (en) * 2013-02-13 2015-08-11 International Business Machines Corporation Resource allocation based on revalidation and invalidation rates
US9053068B2 (en) 2013-09-25 2015-06-09 Red Hat Israel, Ltd. RDMA-based state transfer in virtual machine live migration
US9965311B2 (en) 2015-11-10 2018-05-08 Red Hat Israel, Ltd. Application of a pattern to inactive pages in guest memory
US9930029B2 (en) 2016-02-25 2018-03-27 Nutanix, Inc. Hypervisor agnostic bidirectional secure channel for guest agent transport
US10454771B2 (en) 2016-04-06 2019-10-22 Alcatel Lucent Virtual infrastructure
US10547511B2 (en) * 2016-05-04 2020-01-28 Alcatel Lucent Infrastructure resource states
US10305788B2 (en) 2016-06-30 2019-05-28 Alcatel Lucent Near-real-time and real-time communications
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10162764B2 (en) 2016-07-18 2018-12-25 International Business Machines Corporation Marking page table/page status table entries to indicate memory used to back address translation structures
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10282305B2 (en) 2016-07-18 2019-05-07 International Business Machines Corporation Selective purging of entries of structures associated with address translation in a virtualized environment
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US10169243B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing over-purging of structures associated with address translation
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10241924B2 (en) 2016-07-18 2019-03-26 International Business Machines Corporation Reducing over-purging of structures associated with address translation using an array of tags
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US9672062B1 (en) 2016-12-01 2017-06-06 Red Hat, Inc. Batched memory page hinting
US10496292B2 (en) * 2017-01-19 2019-12-03 International Business Machines Corporation Saving/restoring guarded storage controls in a virtualized environment
US10579439B2 (en) 2017-08-29 2020-03-03 Red Hat, Inc. Batched storage hinting with fast guest storage allocation
US10956216B2 (en) 2017-08-31 2021-03-23 Red Hat, Inc. Free page hinting with multiple page sizes
US10474382B2 (en) 2017-12-01 2019-11-12 Red Hat, Inc. Fast virtual machine storage allocation with encrypted storage
US10909010B2 (en) 2018-04-10 2021-02-02 Nutanix, Inc. Efficient data restoration
JP7151530B2 (ja) * 2019-02-13 2022-10-12 日本電信電話株式会社 サーバ基盤および物理cpu割当プログラム
US11436141B2 (en) 2019-12-13 2022-09-06 Red Hat, Inc. Free memory page hinting by virtual machines

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1015063A (en) 1973-05-31 1977-08-02 Honeywell Information Systems Inc. Hardware virtualizer
JPH0198030A (ja) 1987-10-09 1989-04-17 Nec Corp 仮想計算機の主記憶制御方式
JP2825550B2 (ja) 1989-09-21 1998-11-18 株式会社日立製作所 多重仮想空間アドレス制御方法および計算機システム
US5381535A (en) 1990-10-24 1995-01-10 International Business Machines Corporation Data processing control of second-level quest virtual machines without host intervention
US5809551A (en) * 1991-08-23 1998-09-15 International Business Machines Corporation Pending page release
EP0610583A1 (en) 1993-02-08 1994-08-17 International Business Machines Corporation Multizone relocation facility computer memory system
US5555385A (en) * 1993-10-27 1996-09-10 International Business Machines Corporation Allocation of address spaces within virtual machine compute system
US6023712A (en) * 1997-07-30 2000-02-08 Quarterdeck Corporation Method and apparatus for brokering memory resources
US20020108025A1 (en) * 1998-10-21 2002-08-08 Nicholas Shaylor Memory management unit for java environment computers
JP2000215071A (ja) 1999-01-21 2000-08-04 Hitachi Ltd 仮想計算機システム
JP2001051900A (ja) 1999-08-17 2001-02-23 Hitachi Ltd 仮想計算機方式の情報処理装置及びプロセッサ
US6886085B1 (en) 2000-04-19 2005-04-26 International Business Machines Corporation Method and apparatus for efficient virtual memory management
US6651132B1 (en) 2000-07-17 2003-11-18 Microsoft Corporation System and method for emulating the operation of a translation look-aside buffer
US20020099753A1 (en) 2001-01-20 2002-07-25 Hardin David S. System and method for concurrently supporting multiple independent virtual machines
JP4152604B2 (ja) * 2001-05-24 2008-09-17 株式会社リコー 給紙装置、シート搬送装置および画像形成装置
US6941436B2 (en) 2002-05-09 2005-09-06 International Business Machines Corporation Method and apparatus for managing memory blocks in a logical partitioned data processing system
US6895491B2 (en) 2002-09-26 2005-05-17 Hewlett-Packard Development Company, L.P. Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
JP4119239B2 (ja) 2002-12-20 2008-07-16 株式会社日立製作所 計算機資源割当方法、それを実行するための資源管理サーバおよび計算機システム
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US8079034B2 (en) * 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
US20050183077A1 (en) * 2004-02-12 2005-08-18 International Business Machines Corporation System and method for JIT memory footprint improvement for embedded java devices
US7454756B2 (en) * 2004-03-05 2008-11-18 Intel Corporation Method, apparatus and system for seamlessly sharing devices amongst virtual machines
US7401230B2 (en) * 2004-03-31 2008-07-15 Intel Corporation Secure virtual machine monitor to tear down a secure execution environment
US8024730B2 (en) * 2004-03-31 2011-09-20 Intel Corporation Switching between protected mode environments utilizing virtual machine functionality
US7788461B2 (en) * 2004-04-15 2010-08-31 International Business Machines Corporation System and method for reclaiming allocated memory to reduce power in a data processing system
US7421533B2 (en) * 2004-04-19 2008-09-02 Intel Corporation Method to manage memory in a platform with virtual machines
US7141511B2 (en) 2004-04-27 2006-11-28 Micron Technology Inc. Method and apparatus for fabricating a memory device with a dielectric etch stop layer
US8214622B2 (en) * 2004-05-27 2012-07-03 International Business Machines Corporation Facilitating management of storage of a pageable mode virtual environment absent intervention of a host of the environment
US7941799B2 (en) * 2004-05-27 2011-05-10 International Business Machines Corporation Interpreting I/O operation requests from pageable guests without host intervention
US7886126B2 (en) * 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US7370160B2 (en) * 2005-06-29 2008-05-06 Intel Corporation Virtualizing memory type
US8387049B2 (en) * 2005-07-15 2013-02-26 International Business Machines Corporation Facilitating processing within computing environments supporting pageable guests
US8307360B2 (en) * 2008-01-22 2012-11-06 Advanced Micro Devices, Inc. Caching binary translations for virtual machine guest
US20090204718A1 (en) * 2008-02-08 2009-08-13 Lawton Kevin P Using memory equivalency across compute clouds for accelerated virtual memory migration and memory de-duplication
US8176280B2 (en) * 2008-02-25 2012-05-08 International Business Machines Corporation Use of test protection instruction in computing environments that support pageable guests
US8387948B2 (en) 2009-12-21 2013-03-05 Whirlpool Corporation Mechanically energized substance communication coupling system

Also Published As

Publication number Publication date
ATE460704T1 (de) 2010-03-15
US8387049B2 (en) 2013-02-26
US20190087132A1 (en) 2019-03-21
US20070016904A1 (en) 2007-01-18
WO2007009940A1 (en) 2007-01-25
US8752053B2 (en) 2014-06-10
CN101233490A (zh) 2008-07-30
PT1904926E (pt) 2010-07-15
EP1904926B1 (en) 2010-03-10
US10684800B2 (en) 2020-06-16
EP1904926A1 (en) 2008-04-02
US9183027B2 (en) 2015-11-10
US10133515B2 (en) 2018-11-20
US20160062703A1 (en) 2016-03-03
US20140289729A1 (en) 2014-09-25
DE602006012843D1 (de) 2010-04-22
US20130174159A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
CN101233490B (zh) 提高支持可分页客户机的计算环境中的处理的方法和系统
EP2234018B1 (en) Apparatus for backup and restore of thin provisioning volume
JP5346536B2 (ja) 情報バックアップ/リストア処理装置、及び情報バックアップ/リストア処理システム
CN101878471B (zh) 数据存储空间恢复系统和方法
DE112018004384B4 (de) Schützen von arbeitsspeicherinternen konfigurationsstatusregistern
US7640262B1 (en) Positional allocation
CN103761053B (zh) 一种数据处理方法和装置
US7743209B2 (en) Storage system for virtualizing control memory
TW201205286A (en) Controller, data storage device, and program product
JP2004342050A (ja) 複数のスナップショット維持方法及びサーバ装置及びストレージ装置
CN102177505A (zh) 用于优化包含增量映射表的闪速拷贝级联中的映射表的清理的方法
US11003555B2 (en) Tracking and recovering a disk allocation state
DE112018004364B4 (de) Vereinfachung einer verarbeitung in einer datenverarbeitungsumgebung durch gruppierung eines konfigurationsstatusregisters auf grundlage von funktionaler affinität
US9471366B2 (en) Virtual machine disk image backup using block allocation area
CN102597972A (zh) 虚拟计算机系统、区域管理方法及程序
US7644114B2 (en) System and method for managing memory
JP7190421B2 (ja) ストレージシステム及びボリューム複製方法
CN115168259B (zh) 一种数据存取方法、装置、设备和计算机可读存储介质
US9063656B2 (en) System and methods for digest-based storage
JP7304215B2 (ja) ストレージシステムおよび履歴情報管理方法
CN110199265B (zh) 存储装置和存储区域管理方法
WO2014064547A1 (en) In-memory continuous data protection
CN109800190B (zh) 内存的加速处理方法及装置、存储介质、处理器

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