计算;推算;计数设备的制造及其应用技术计算设备中的计算机存储器管理背景技术:1.在计算中,存储器管理是一种应用于计算机存储器的资源管理形式,例如计算设备中的随机存取存储器(“ram”)。例如,操作系统中的存储器管理器最初可以将一定量的存储器空间(通常称为“块”)分配给由计算设备中的处理器执行的程序或进程。然后,处理器可以利用分配的存储器空间来保存与执行的程序或进程相对应的对象和数据结构。一旦不再需要分配的存储器空间,例如,当程序或进程的执行完成时,存储器管理器可以解除分配或“释放”先前分配的存储器空间以供其他程序或进程重用。技术实现要素:2.提供本发明内容是为了以简化形式介绍概念的选择,这些概念将在下面的详细描述中进一步描述。本发明内容并非旨在识别所要求保护的主题的关键特征或基本特征,并非旨在限制所要求保护的主题的范围。3.在某些计算设备中,存储器管理器可以通过将计算机存储器细分为特定数据尺寸(例如,4kb)的多个存储器段或“页面”,来管理计算设备中的计算机存储器,例如ram。存储器管理器还可以在计算机存储器中保留一定数量的存储器空间(这里称为“元数据存储器”),用于保存每个存储器页面的元数据。元数据存储器可以包含指示对应的存储器页面是否被分配、解除分配或包含其他适当状态信息的元数据。4.在操作期间,当从程序或进程接收到对一定量的存储器(例如,1mb)的请求时,存储器管理器可以搜索元数据存储器并找到适合该请求的存储器页面(例如,256个存储器页面,每个4kb)。然后,存储器管理器可以通过将所分配的存储器页面通知给程序或进程,来执行多个存储器页面向程序或进程的分配。存储器管理器还可以修改对应元数据存储器中的元数据,以反映存储器页面已经分配给程序或进程。5.上述存储器管理技术在应用于具有大量计算机存储器的计算设备时存在一定的缺陷。一方面,元数据存储器可以代表计算设备中的显著开销,因为不能分配元数据存储器来支持程序或进程的执行。例如,云计算设施中的服务器可能具有数gb甚至数tb的计算机存储器。尽管元数据存储器占计算机存储器总尺寸的百分比通常约为1%,但当整个计算机存储器的尺寸很大时,元数据存储器的实际尺寸会变得很重要。例如,当计算设备具有1tb的计算机存储器时,元数据存储器可以具有大约10gb的尺寸。另一方面,在将大量存储器页面分配给请求程序或进程时更新元数据,可能导致高处理延迟,这会降低计算设备中的系统性能。例如,为了将1gb的存储器分配给请求程序或进程,存储器管理器要针对262,144个每个4kb的存储器页面分别更新元数据存储器中的元数据。这种更新处理会花费大量时间,从而降低存储器分配操作的响应。6.所公开技术的若干实施例可以解决上述缺陷的若干方面,这是通过实现在计算设备中的物理存储器上共存的多种功能类型的存储器,并且利用计算设备中的操作系统来并发地跟踪不同尺寸的存储器细分的状态。在某些实施方式中,具有总尺寸(例如,1tb)的物理存储器可以被划分为第一功能类型的第一存储器区域和第二功能类型的第二存储器区域。第一和第二存储器区域可以各自具有预配置的尺寸或总尺寸的百分比。在某些实施例中,第一和/或第二存储器区域的预配置尺寸或百分比可以由计算设备的用户设置,并且被持久地存储在计算设备的配置文件中。在其他实施例中,预先配置的尺寸或百分比可以具有默认值,可以在操作期间设置,或者以其他适当的方式设置。在进一步的实施例中,第一存储器区域的至少一部分可以在操作期间被转换为第二功能类型,或反之亦然,本文将更详细地讨论。7.在某些实施方式中,第一存储器区域可以被配置为可用于由计算设备的操作系统的分配。例如,第一存储器区域可以被细分为第一尺寸(例如,物理存储器中的存储器页面的尺寸,例如4kb)的多个存储器子区域,每个存储器子区域各自第一存储器区域中的指定的元数据存储器以用于保存该存储器子区域的元数据。第一存储器区域还可以被配置为支持第一组存储器管理操作。这种存储器管理操作的示例可以包括分配、释放、交换、存储器保护、分段、错误检查和其他适当任务的操作。在操作期间,计算设备处的操作系统可以将来自第一存储器区域的存储器分配给在计算设备处的操作系统之上执行的程序或进程。8.第二存储器区域可以被配置为可用于向虚拟机、容器或托管在计算设备上的其他适当的客户操作系统的分配,但不可用于向计算设备的操作系统的分配。在一个示例中,第二存储器区域可以被细分为第二尺寸(例如,1gb)的多个存储器子区域,第二尺寸大于第一功能类型的第一尺寸。还将认识到,并非所有存储器管理操作都适用于被分配给客户操作系统的存储器。这样,第二存储器区域也可以被配置为支持不同于第一组存储器管理操作的第二组存储器管理操作。例如,分配给虚拟机的存储器可能不需要除了分配和释放以外的操作。因此,第二组可以只支持从第二个存储器区域分配和释放存储器,但不支持第一组所支持的其他操作。9.在启动期间,计算设备可以根据配置文件将物理存储器初始化为具有共存的第一和第二存储器区域,并利用存储器管理器并发地跟踪第一和第二存储器区域中存储器细分的状态。在操作期间,当从操作系统中执行的程序或进程接收到对存储器的第一请求时,存储器管理器可以将第一存储器区域的一部分分配给程序或进程,并相应地更新相应的元数据存储器。在从例如虚拟机管理器(其用于将要在计算设备上实例化的虚拟机)接收到第二存储器请求时,存储器管理器可以被配置为分配第二存储器区域(而不是第一存储器区域)的一部分以供虚拟机使用。存储器管理器可以被配置为以各种方式区分第一和第二请求。在一个示例中,存储器管理器(或操作系统的其他组件)可以提供不同的应用编程接口(“api”),每个被配置为分别接收第一或第二请求。在其他示例中,存储器管理器可以被配置为基于包括在第一和第二请求中的元数据或以其他适当的方式来区分第一和第二请求。10.所公开技术的若干实施例可以显著降低计算设备中的存储器开销。通过根据大于第一尺寸的第二尺寸来细分第二存储器区域,并且利用存储器管理器并发跟踪不同尺寸的存储器子区域的状态,可以显著减少第二存储器区域的元数据量。例如,假设元数据存储器的开销为1%,将1tb的存储器细分为4kb的存储器页面,每个存储器页面将产生大约10gb的元数据存储器。另一方面,将1tb的存储器细分为1gb的存储器子区域会产生大约40kb的元数据存储器。通过降低存储器开销,物理存储器中的更多存储器空间可用于分配给虚拟机或容器以执行计算任务。此外,诸如搜索、锁定和/或更新元数据之类的计算操作可以变得更加高效,因为要解析的元数据小了很多。因此,可以降低在计算设备处从虚拟机或容器提供计算服务的成本。11.此外,将存储器从第二存储器区域分配给虚拟机、容器或其他适当类型的客户操作系统,其处理延迟可以远低于从第一存储器区域分配存储器的处理延迟。第二功能类型可以具有比第一功能类型大得多的存储器子区域。因此,与从第一存储器区域进行分配相比,在分配期间对元数据存储器的更新次数可以显著减少。例如,分配每个4kb的1tb存储器涉及更新大约10gb元数据存储器中的元数据。相比之下,分配每个1gb的1tb存储器包括更新大约40kb元数据存储器中的元数据。因此,计算系统性能(例如,用于实例化虚拟机或容器等操作)可以使用更少的能量并更快地执行。12.在某些实施例中,第一存储器区域的至少一部分可以转换为第二功能类型,反之亦然。例如,在初始化之后,计算设备的用户可以发出将第二存储器区域的一部分转换为第一功能类型的命令。作为响应,存储器管理器可以将映射到第二存储器区域的物理存储器的一部分重新映射或重新分配给第一功能类型。例如,存储器管理器可以将来自第二存储器区域的1gb存储器块重新指定为第一功能类型。然后,存储器管理器可以将1gb存储器块细分为多个4kb存储器页面,并将多个4kb存储器页面标记为可供操作系统分配。在其他实施例中,可以通过更新配置文件和重新初始化计算设备或通过其他适当的技术来修改第一和第二存储器区域的相对尺寸。13.在进一步的实施例中,计算设备可以包括多个物理存储器,这些物理存储器可以由计算设备本地访问或远程访问。例如,非统一存储器访问(“numa”)是一种计算机存储器设计,根据该设计,处理器可以访问本地存储器和非本地存储器(例如,另一个处理器的本地存储器或处理器之间共享的存储器)。每个本地或非本地存储器都可以形成一个numa节点。根据所公开技术的几个方面,每个numa节点可以具有从0%到100%的第一和第二存储器区域的相应比率。在一个示例中,一个numa节点可以仅包括第一存储器区域,而另一个numa节点仅包括第二存储器区域。在其他示例中,至少一些numa节点可以包括相同比率或不同比率的第一和第二存储器区域。14.所公开的技术的若干实施例还可以支持计算设备上操作系统的有效更新/重置,同时维护托管在计算设备上的虚拟机或容器的状态信息。例如,在内核软件重置(“ksr”)期间,存储器管理器可以被配置为维护第一和第二存储器区域的映射和分布。第一存储区域中的操作系统的数据继而可以被覆写和更新,而第二存储区域中的数据被保持。在重新初始化第一存储器区域中的操作系统之后,可以基于第二存储器区域中维护的状态信息在计算设备上恢复各种虚拟机或容器。这样,可以在保留虚拟机或容器的状态信息的同时,实现计算设备上操作系统的快速更新/重置。附图说明15.图1是示出根据所公开技术的实施例实现计算机存储器管理的分布式计算系统的示意图。16.图2是示出根据所公开技术的实施例的图1的分布式计算系统的某些硬件和软件组件的示意图。17.图3a-图3c是根据所公开技术的实施例在初始化主机中的存储器区域的阶段期间图1和2的主机的某些硬件/软件组件的示意图。18.图4a-图4d是根据所公开技术的实施例在主机中的存储器分配阶段期间图1和图2的主机的某些硬件/软件组件的示意图。19.图5是示出根据所公开技术的实施例的多个存储器节点的示意图。20.图6是示出根据所公开技术的实施例的存储器管理过程的流程图。21.图7是适用于图1中分布式计算系统的某些组件的计算设备。具体实施方式22.下面描述用于计算机存储器管理的系统、设备、组件、模块、例程、数据结构和过程的某些实施例。在以下描述中,包括组件的具体细节以提供对所公开技术的某些实施例的透彻理解。相关领域的技术人员也将理解,该技术可以具有额外的实施例。也可以在没有以下参照图1-图7描述的实施例的几个细节的情况下实践该技术。23.如本文所用,术语“分布式计算系统”通常指具有将多个主机相互或与外部网络(例如,互联网)互连的计算机网络的计算设施。这种计算设施的示例可以包括用于提供云计算服务的数据中心。计算网络可以包括多个网络设备。术语“网络设备”通常是指物理网络设备,其示例包括路由器、交换机、集线器、网桥、负载平衡器、安全网关或防火墙。24.如本文所使用的,“主机计算设备”或“主机”通常是指被配置为支持一个或多个应用或计算机程序的执行的计算设备。在某些实施例中,主机可以包括被配置为支持应用或计算机程序的执行的主机操作系统。在其他实施例中,主机还可以支持例如一个或多个虚拟机(vm)、容器或其他适当的虚拟化组件的实现。例如,主机可以包括具有被配置为支持一个或多个虚拟机、容器或其他适当类型的虚拟组件的管理程序的服务器。一个或多个虚拟机或容器可用于启动和执行适当的应用或计算机程序以提供相应的计算服务。25.同样在本文中使用的“主机操作系统”通常指的是被部署为直接与计算机设备(例如,服务器)的硬件组件交互并且可以准许或拒绝对主机操作系统提供的服务的系统级访问的操作系统。在某些实现中,管理程序(例如,托管的管理程序)可以在主机操作系统之上运行,而不是直接与计算设备的硬件组件交互。然后,管理程序可以创建、管理或以其他方式支持一个或多个vm或容器,每个vm或容器具有通过安全边界与主机操作系统分开的“客户操作系统”或“客户”。在某些实施方式中,客户操作系统可能与支持客户操作系统的主机操作系统不同。26.如本文所用,“管理程序”通常指的是在主机上创建、管理和运行一个或多个虚拟机的计算机软件、固件和/或硬件。“虚拟机”或“vm”是使用计算机软件模拟物理计算系统。可以配置不同的虚拟机以提供适当的计算环境,以便在单个主机上为相同或不同的用户执行不同的进程。在运行时,宿主机上的管理程序可以将具有虚拟运行平台的不同虚拟机呈现给宿主机上的硬件资源,并为虚拟机管理各种进程的执行。27.同样在本文中使用的术语“计算服务”或“云服务”通常是指通过诸如互联网的计算机网络提供的一个或多个计算资源。示例云服务包括软件即服务(“saas”)、平台即服务(“paas”)和基础设施即服务(“iaas”)。saas是一种软件分发技术,其中软件应用由云服务提供商托管在例如数据中心,并由用户通过计算机网络访问。paas通常是指通过计算机网络交付操作系统和相关服务,无需下载或安装。iaas通常是指用于支持存储、硬件、服务器、网络设备或其他组件的外包设备,所有这些都可以通过计算机网络访问。28.如本文所用,存储器区域通常是指物理存储器的一部分,其具有多个存储器子区域、块、页面或其他适当的细分。例如,存储器区域可以包括1tb的物理存储器,其被划分为1000个每个1gb的存储器子区域。每个存储器子区域还可以包括一定数量的指定存储器用于存储相应存储器子区域的元数据(这里称为“元数据存储器”)。元数据可以包含指示存储器子区域状态的信息,例如,分配状态、刷新状态等。29.在某些计算设备中,一个物理存储器可以细分为多个具有一定尺寸(例如,4kb)的存储器页面。在操作期间,当从程序或进程接收到对一定量的存储器(例如,1mb)的请求时,存储器管理器可以搜索元数据存储器并找到适合于该请求的存储器页面(例如,256个每个4kb的存储器页面)。然后,存储器管理器可以通过将所分配的存储器页通知给程序或进程,来执行多个存储器页向程序或进程的分配。存储器管理器还可以修改相应的元数据存储器中的元数据,以反映存储器页面已经分配给程序或进程。30.上述存储器管理技术在应用于具有大量计算机存储器的计算设备时存在一定的缺陷。在一方面,元数据存储器可以代表计算设备中的显著开销,因为元数据存储器不能被分配以支持程序或进程的执行。另一方面,在将存储器页面分配给请求程序或进程时更新大量存储器页面的元数据可能导致降低计算设备中系统性能的高处理延迟。31.所公开技术的若干实施例可以通过如下方式来解决上述缺陷的若干方面:实现在计算设备中的物理存储器上共存的多种功能类型的存储器,并且利用计算设备中的操作系统并发地跟踪不同尺寸的存储器细分的状态。例如,具有总尺寸(例如,1tb)的物理存储器可以被划分为第一功能类型的第一存储器区域和第二功能类型的第二存储器区域。第一和第二存储器区域可以各自具有总尺寸中的一个尺寸或者百分比。第一和第二存储器区域可以具有不同尺寸的存储器子区域,并支持不同的存储器管理操作。这样,当接收到对存储器的请求时,可以通过从第一或第二存储器区域分配存储器来适当地服务该请求,这将在下文参考图1-图7更详细地描述。32.图1是示出根据所公开技术的实施例的具有实现计算机存储器管理的主机106的分布式计算系统100的示意图。如图1所示,分布式计算系统100可以包括将多个主机106、用户101的多个客户端设备102和资源管理器110彼此互连的计算机网络(被示为“下层网络108”)。资源管理器110可以是集群控制器、结构控制器、数据库控制器和/或其他适当类型的控制器,其被配置为监视和管理主机106和/或分布式计算系统100中的其他组件的资源和操作。尽管图1中示出了计算系统100的特定组件,但在其他实施例中,计算系统100还可以包括网络存储设备、维护管理器和/或除图1中所示之外或者作为代替的其他适当组件(未示出)。33.如图1所示,下层网络108可以包括互连多个主机106和客户端设备102的多个网络设备112。在某些实施例中,主机106可以被组织成机架、动作区、组、集合或其他适当的分区。例如,在所示实施例中,主机106被分组成三个集群,分别标识为第一、第二和第三集群107a-107c。在所示实施例中,集群107a-107c中的每一个分别可操作地耦合到相应的网络设备112a-112c,它们通常被称为“架顶式”或“tor”网络设备。tor网络设备112a-112c继而可以可操作地耦合到附加网络设备112以形成分层、平面、网状或其他适当类型拓扑的网络。计算机网络可以允许主机106和客户端设备102之间的通信。在其他实施例中,多个主机机器集107a-107c可以共享单个网络设备112或者可以具有其他适当的布置。34.主机106可以单独配置为向各个用户101提供计算、存储和/或其他适当的云计算服务。例如,如下面参考图2更详细描述的,每个主机106可以启动和根据来自用户101的请求维护一个或多个虚拟机144(如图2所示)。用户101继而可以利用实例化的虚拟机144来执行适当的过程以执行计算、通信和/或其他适当的任务。在某些实施例中,主机106之一可以为多个用户101提供虚拟机144。在其他实施例中,多个主机106可以为一个或多个用户101a-101c托管虚拟机144。35.每个客户端设备102可以包括计算设备,其支持相应的用户101或管理员104通过下层网络108访问由主机106提供的计算服务。例如,在所示实施例中,客户端设备102各自包括台式计算机。在其他实施例中,客户端设备102还可以包括膝上型计算机、平板计算机、智能电话或其他适当的计算设备。尽管出于说明目的在图1中示出了三个用户101,但在其他实施例中,分布式计算系统100可以支持任何适当数目的用户101或管理员访问由主机106提供的云和/或其他适当类型的计算服务和/或分布式计算系统100中的其他组件。36.图2是示出根据所公开技术的实施例的可以在图1中的下层网络108上实现的上层网络108’的示意图。在图2中,为了清楚起见,仅示出了图1的下层网络108的某些组件。如图2所示,第一主机106a和第二主机106b可以各自包括可操作地彼此耦合的cpu 132、存储器134和网络接口136。cpu 132可以包括一个或多个处理器、微处理器、现场可编程门阵列和/或其他适当的逻辑设备。存储器134可以包括易失性和/或非易失性介质(例如,rom;ram、磁盘存储介质;光存储介质;闪存设备和/或其他适当的存储介质)和/或其他类型的计算机可读存储介质,其被配置为存储从cpu 132接收的数据以及用于cpu 132的指令(例如,用于执行下面参考图6讨论的方法的指令)。网络接口136可以包括网络接口卡、连接转换器和/或其他适当类型的输入/输出设备,其被配置为接受来自上层网络108’上的其他组件的输入并向其提供输出。37.第一主机106a和第二主机106b各自可以包含存储器134中的指令,这些指令是cpu 132可执行的以使个体主机106a和106b提供管理程序140(分别标识为第一和第二管理程序140a和140b)。管理程序140可以被独立配置为生成、监控、终止和/或以其他方式管理组织成租户站点142的一个或多个虚拟机144。例如,如图2所示,第一主机106a可以提供第一管理程序140a,其分别管理第一和第二租户站点142a和142b。第二主机106b可以提供第二管理程序140b,其分别管理第一和第二租户站点142a’和142b’。管理程序140在图2中被各自示为软件组件。然而,在其他实施例中,管理程序140也可以包括固件和/或硬件组件。38.租户站点142每个可以包括用于特定租户的多个虚拟机144。例如,第一主机106a和第二主机106b都可以托管用于第一用户101a的租户站点142a和142a’。第一主机106a和第二主机106b都可以托管用于第二用户101b的租户站点142b和142b’。每个虚拟机144可以正在执行对应于操作系统、中间件和/或适当应用的应用或进程147。所执行的应用或进程147可以各自对应于一个或多个计算服务或其他适当类型的计算服务。这种计算服务的示例可以包括平台服务、微服务、认证服务或其他适当类型的服务。39.还如图2所示,计算系统100可以包括上层网络108’,其具有一个或多个虚拟网络146,虚拟网络146跨第一和第二主机106a和106b互连租户站点142a和142b。例如,第一虚拟网络146a将第一主机106a和第二主机106b处的第一租户站点142a和142a’互连。第二虚拟网络146b将第一主机106a和第二主机106b处的第二租户站点142b和142b’互连。尽管单个虚拟网络146被示为对应于单个租户站点142,但是在其他实施例中,多个虚拟网络(未示出)可以被配置为对应于单个租户站点146。40.即使虚拟机144位于或托管在不同的主机106上,虚拟网络146上的虚拟机144可以通过下层网络108(图1)相互通信。每个虚拟网络146的通信可以与其他虚拟网络146隔离。在某些实施例中,可以通过安全网关或以其他方式,以受控方式允许从一个虚拟网络146跨越到另一个虚拟网络146的通信。虚拟网络地址可以对应于特定虚拟网络146中的虚拟机144之一。因此,不同的虚拟网络146可以使用一个或多个相同的虚拟网络地址。示例虚拟网络地址可以包括ip地址、mac地址和/或其他适当的地址。41.在操作中,主机106可以支持虚拟机和/或在虚拟机144中执行的应用之间的通信。例如,第一主机106a的cpu 132可以执行适当的网络通信操作,以支持第一虚拟机144a经由虚拟网络146a向第二虚拟机144b传输分组,这是通过遍历第一主机106a上的网络接口136、下层网络108(图1)和第二主机106b上的网络接口136。这样,第一主机106a上的租户站点142a的第一虚拟机144a可以与另一个服务器106b上的另一个虚拟机144b协作来执行适当的应用147或进程,以便为用户101提供适当的计算服务。42.为了托管虚拟机144,主机106可以为虚拟机144分配一定量的存储器空间。发明人已经认识到:对于为对虚拟机144或其他适当类型的客户操作系统提供存储器访问而言,在存储器134中具有固定尺寸(例如,4kb)的存储器页面可能不是有效的。例如,具有大量的4kb存储器页面会导致大量存储器134被指定为元数据存储器,从而增加存储器134中的操作开销。在另一个示例中,在分配期间,更新大量的4kb存储器页面中的每一个可能导致实例化虚拟机144时的高延迟。所公开技术的若干实施例可以通过如下方式来解决上述缺陷中的至少一些方面:在主机106的存储器134中实现多种存储器类型,并且利用操作系统来并发地跟踪不同尺寸的存储器细分的状态,使得可以减少与向虚拟机144分配存储器相关的存储器开销和操作延迟,这将在下文参考图3a-4d更详细地描述。43.图3a-图3c是根据所公开技术的实施例的在初始化主机106中的存储器区域的阶段期间图1和2的主机的某些硬件/软件组件的示意图。出于说明目的,图3a-3c中仅示出了主机106的某些组件。在其他实施例中,主机106可以包括附加的存储器134或其他适当的组件。44.如图3a所示,主机106的处理器132可以执行适当的指令以提供操作系统138,操作系统138支持彼此可操作地耦合的管理程序140和虚拟堆栈148。处理器132还可操作地耦合到物理存储器134以及保存存储器配置文件111的持久存储135。虚拟堆栈148可以被配置为补充管理程序140在运行客户操作系统(诸如图2汇总的虚拟机144)中的活动。例如,虚拟堆栈148可以包括模拟设备、管理服务和用户界面的软件库组件。45.配置文件111可以包括指示物理存储器134向多个存储器区域的分区设置的数据。在某些实施方式中,物理存储器134可具有一个总尺寸(例如,1tb),其可划分为第一功能类型的第一存储器区域134a(如图3b所示)和第二种功能类型的第二存储器区域134b(如图3b所示)。第一和第二存储器区域134a和134b可以各自具有物理存储器134的总尺寸中的预配置的尺寸或百分比。在某些实施例中,第一和/或第二存储器区域的预配置尺寸或百分比可以由主机106的用户101(图1)设置,并且被持久地存储在持久存储135的配置文件111中。在其他实施例中,预配置的尺寸或百分比可以具有默认值,可以在操作期间设置,或以其他适当的方式被设置。在进一步的实施例中,第一存储器区域134a的至少一部分可以在操作期间被转换成第二功能类型,或反之亦然,这将参考图3c更详细地讨论。46.如图3a所示,存储器管理器150包括可操作地彼此耦合的分区器152和分配器154。尽管在图3a中仅示出了存储器管理器150的前述组件,但是在其他实施例中,存储器管理器150可以包括除了前述图3a中示出的组件之外的其他适当的组件。47.分区器152可被配置为根据配置文件111将物理存储器134分区成多个存储器区域。例如,如图3a所示,响应于接收到启动命令120,存储器管理器150的分区器152可以被配置为从持久存储135取回配置文件111,并且相应地配置第一和第二存储器区域134a和134b。例如,分区器152可以被配置为将物理存储器134的预配置尺寸或百分比细分为第一和第二存储器区域134a和134b,每个具有根据配置文件111的预设尺寸的多个存储器子区域。48.在某些实施方式中,第一存储器区域134a可以被细分为第一尺寸(例如,4kb、1mb或2mb)的多个存储器子区域123a,其各自具有第一存储器区域134a中的指定的元数据存储器124a。元数据存储器124a可以被配置为保存存储器子区域123a的元数据。第一存储器区域134a还可以被配置为支持第一组存储器管理操作。这样的存储器管理操作的示例可以包括用于分配、解除分配、交换、存储器保护、分段、错误检查和其他适当任务的操作。在操作期间,主机106处的操作系统138可以将来自第一存储器区域134a的存储器分配给操作系统138上执行的程序或进程,这将在下文参考图4a-4b更详细地描述。49.第二存储器区域134b可以被细分为第二尺寸(例如,1gb)的多个存储器子区域123b,第二尺寸大于第一功能类型的第一尺寸。还认识到,并非所有存储器管理操作都可适于被分配给客户操作系统(例如图2中的虚拟机)的存储器。这样,第二存储器区域134b还可以被配置为支持不同于第一组存储器管理操作的第二组存储器管理操作。例如,分配给虚拟机144的存储器可能不需要除分配和解除分配之外的操作。这样,第二组可以仅支持来自第二存储器区域134b的存储器的分配和解除分配,但不支持第一组所支持的其他操作。在操作期间,主机106处的操作系统138可以将来自第二存储器区域134b的存储器分配给虚拟机144(或其他适当类型的客户操作系统),如下面参考图4c-4d更详细地描述的。50.如图3c所示,在某些实施方式中,可以在操作期间修改第一和第二存储器区域134a和134b的相对比例。例如,在接收到转换命令121后,分区器152可以被配置为将第一存储器区域的至少一部分转换为第二存储器功能类型,或反之亦然。在图3c所示的示例中,第一存储器区域134a的一部分被示为被转换为第二存储器区域134b的存储器子区域123b(以阴影表示为134’)。在其他示例中,第二存储器区域134b的一个或多个存储器子区域123b也可被转换为第一存储器区域134a的存储器子区域123a。分区器152还可以被配置为指定和/或更新元数据存储器124a或124b,以反映第一和第二存储器区域134a和134b之间的任何转换。在完成对物理存储器134的划分之后,存储器管理器150可以被配置为根据分配请求的特性,从第一和第二存储器区域134a和134b分配存储器,如下面参考图4a-图4d更详细地描述的。51.图4a-图4d是根据所公开技术的实施例在主机中的存储器分配阶段期间图1和2的主机的某些硬件/软件组件的示意图。如图4a和图4b所示,在操作期间,在从操作系统138中执行的程序或进程接收到对存储器的第一请求126后,存储器管理器150的分配器154可以被配置为向程序或进程分配第一存储器的一部分区域134a。这样,分配器154可以被配置为:向程序或进程提供第一响应128,其标识来自第一存储器区域134a的一个或多个存储器子区域123a;并且相应地更新对应的元数据存储器124a。52.如图4c和图4d所示,例如可以经由虚拟堆栈148从用于将在主机106上实例化的虚拟机144(图2)的虚拟机管理器(未示出)接收第二请求126’。作为响应,存储器管理器150的分配器154可以被配置为分配第二存储器区域134b而不是第一存储器区域134a的一部分,供虚拟机144使用。这样,分配器154可以被配置为:向虚拟机管理器提供第二响应128’,其标识来自第二存储器区域134b一个或多个存储器子区域123b;并且相应地更新对应的元数据存储器124b。53.存储器管理器150的分配器154可以被配置为以各种方式区分第一和第二请求126和126’。在一个示例中,存储器管理器150(或操作系统138的其他组件)可以提供不同的应用编程接口(“api”),每个应用编程接口被配置为分别接收第一或第二请求126和126’。这样,分配器154可以被配置为基于接收到第一或第二请求126或126’的api的标识,来选择第一或第二存储器区域134a和134b之一以用于分配存储器。在其他示例中,分配器154可以被配置为基于包括在第一和第二请求126和126’中的元数据或以其他适当的方式来区分第一和第二请求126和126’。例如,存储器管理器150可以被配置针对第一和第二存储器区域134a和134b中每一个维护已注册进程的列表。在接收到第一或第二请求126或126’后,存储器管理器150可被配置为识别对应的进程,并且从进程被注册时的第一或第二存储器区域134a和134b之一进行分配。否则,存储器管理器150可以被配置为从默认存储器区域(例如,第一存储器区域134a)进行分配。这种注册可以是每线程、每进程、每处理器或在其他适当的基础上进行。在其他实施方式中,管理程序140可以维护元数据表,并且使用元数据来基于调用者身份和元数据表中的列表确定分配第一或第二存储器区域134a和134b中的哪一个。54.所公开技术的若干实施例可以显著减少主机106中的存储器开销。通过根据大于第一尺寸的第二尺寸来细分第二存储器区域134b,与第二存储区134b也根据第一尺寸来细分相比,第二存储器区域134b的元数据量可以显著减少。例如,假设元数据存储器124a或124b的开销为1%,将1tb的存储器细分为每个4kb(即,单个存储器页面)的存储器子区域123a将导致大约10gb的元数据存储器124a。另一方面,将1tb的存储器细分为每个1gb的存储器块将产生大约40kb的元数据存储器124b。通过减少存储器开销,物理存储器134中的更多存储器空间可用于分配给虚拟机144或用于执行计算任务的容器。因此,从虚拟机144或主机106处的容器提供计算服务的成本可被降低。55.所公开技术的若干实施例还可以支持主机106上的操作系统138的有效更新/重置,同时保持虚拟机144(图2)或主机106上托管的容器的状态信息。例如,在内核软件重置(“ksr”)期间,存储器管理器150可以被配置为维持第一和第二存储器区域134a和134b的分布。例如,存储器管理器150可以维护第二存储器区域134b的哪些页面正被虚拟机144使用,并且选择性地保持/恢复正使用中页面的元数据。第一存储器区域134a中的操作系统138的数据随后可以被覆写和更新,而第二存储器区域134b中的数据被保持。在重新初始化第一存储器区域134a中的操作系统138之后,可以基于第二存储器区域134b中维护的状态信息,在计算设备上恢复各种虚拟机144或容器。因此,可以在保留虚拟机144或容器的状态信息的同时实现操作系统138的快速更新/重置。56.此外,将存储器从第二存储器区域134b分配给虚拟机144、容器或其他适当类型的客户操作系统的处理延迟可以远低于从第一存储器区域134a分配存储器的处理延迟。第二功能类型可以具有比第一功能类型大得多的存储器子区域。因此,与从第一存储器区域134a进行分配相比,在分配期间对元数据存储器124b的更新次数可以显著减少。例如,分配每个4kb的1tb存储器涉及更新元数据存储器124a中大约10gb的元数据。相反,分配每个1gb的1tb存储器包括更新元数据存储器124b中大约40kb的元数据。结果,可以在主机106中提高实例化虚拟机144或容器的速度和/或其他系统性能。57.尽管在图3a-图4d中仅示出了一个物理存储器134,但在其他实施例中,主机106可以具有多个物理存储器134,其或者是本地的,或者是处理器132远程能够访问的,如图5所示。例如,非统一存储器访问(“numa”)是一种计算机存储器设计,根据该设计,处理器可以访问本地存储器和非本地存储器(例如,另一个处理器的本地存储器或处理器之间共享的存储器)。每个本地或非本地存储器134、134’和134”都可以形成一个numa节点。根据所公开技术的若干方面,每个numa节点可以具有第一和第二存储器区域134a和134b的相应比率,从0%到100%。在一个示例中,如图5所示,一个numa节点(例如,存储器134)可以仅包括第一存储器区域134a,而另一个numa节点(例如,存储器134’)仅包括第二存储器区域134b。在其他示例中,至少一些numa节点(例如,存储器134”)可以以相同的比率或不同的比率包括第一和第二存储器区域134a和134b。58.图6是示出根据所公开技术的实施例的存储器管理的过程200的流程图。尽管以下在图3a-图4d中的主机106的上下文中描述了过程200,但是在其他实施例中,过程200可以在具有附加和/或不同组件的计算设备或系统中实现。如图6所示,过程200可以包括在阶段202接收分配请求。过程200然后可以包括决定阶段204,用以确定该请求是针对来自物理存储器134(图3a-图4d)的第一存储器区域134a还是第二存储器区域134b的分配。第一存储器区域134a具有多个第一尺寸的存储器子区域123a。第二存储器区域134b还可以具有第二尺寸的多个存储器子区域123b,第二尺寸大于第一存储器区域134a的第一尺寸,并且不可用于向操作系统138上的处理器执行的程序或进程的分配。相反,第二存储器区域134a可用于向虚拟机、容器或其他适当类型的客户操作系统的分配。响应于确定存储器分配请求是针对来自第一存储器区域134a的分配,过程200进行到在阶段206,以分配第一存储器区域134a的存储器子区域123a的一部分。如果存储器分配请求是针对来自第二存储器区域134b的分配,则过程200继续到阶段208,以分配第二存储器区域134b的存储器子区域123b的一部分。59.图7是适用于图1-图4d中的主机100的计算设备300。在非常基本的配置302中,计算设备300可以包括一个或多个处理器304和系统存储器306。存储器总线308可以用于在处理器304和系统存储器306之间进行通信。取决于期望的配置,处理器304可以是任何类型,包括但不限于微处理器(μr)、微控制器(μc)、数字信号处理器(dsp)或它们的任何组合。处理器304可以包括多级高速缓存,例如一级高速缓存310和二级高速缓存312、处理器核314和寄存器316。示例处理器核314可以包括算术逻辑单元(alu)、浮点单元(fpu)、数字信号处理内核(dsp内核)或其任意组合。示例存储器控制器318也可以与处理器304一起使用,或者在一些实施方式中存储器控制器318可以是处理器304的内部部分。60.取决于期望的配置,系统存储器306可以是任何类型的存储设备,包括但不限于易失性存储器(例如ram)、非易失性存储器(例如rom、闪存等)或它们的任何组合。系统存储器306可以包括操作系统320、一个或多个应用322和程序数据324。61.计算设备300可以具有附加特征或功能以及附加接口以支持基本配置302与任何其他设备和接口之间的通信。例如,总线/接口控制器330可用于支持基本配置302和一个或多个数据存储设备332之间经由存储接口总线334的通信。数据存储设备332可以是可移除存储设备336,不可移除存储设备338或其组合。可移除存储和不可移除存储设备的示例包括磁盘设备,例如软盘驱动器和硬盘驱动器(hdd),光盘驱动器,例如压缩盘(cd)驱动器或数字通用磁盘(dvd)驱动器,固态驱动器(ssd)和磁带驱动器等等。示例计算机存储介质可以包括以用于存储信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质,例如计算机可读指令、数据结构、程序模块或其他数据。术语“计算机可读存储介质”或“计算机可读存储设备”不包括传播信号和通信介质。62.系统存储器306、可移除存储设备336和不可移除存储设备338是计算机可读存储介质的示例。计算机可读存储介质包括但不限于ram、rom、eeprom、闪存或其他存储技术、cd-rom、数字多功能磁盘(dvd)或其他光存储、磁带、磁带、磁盘存储或其他磁存储设备,或任何其他可用于存储所需信息且可由计算设备300访问的介质。任何此类计算机可读存储介质都可以是计算设备300。术语“计算机可读存储介质”不包括传播信号和通信介质。63.计算设备300还可以包括接口总线340,用于支持从各种接口设备(例如,输出设备342、外围接口344和通信设备346)经由总线/接口控制器330到基本配置302的通信。示例输出设备342包括图形处理单元348和音频处理单元350,它们可以被配置为通过一个或多个a/v端口352与各种外部设备(例如显示器或扬声器)通信。示例外围接口344包括串行接口控制器354或并行接口控制器356,其可以被配置为与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如,打印机、扫描仪、等)通过一个或多个i/o端口358。示例通信设备346包括网络控制器360,其可以被布置为支持与一个或多个eo端口的通信。经由一个或多个通信端口364在网络通信链路上的更多其他计算设备362。64.网络通信链路可以是通信媒体的一个示例。通信介质通常可以由计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据来体现,例如载波或其他传输机制,并且可以包括任何信息传递介质。“调制数据信号”可以是具有一个或多个其特征的信号,其以在信号中编码信息的方式设置或改变。作为示例而非限制,通信媒体可以包括有线媒体,例如有线网络或直接有线连接,以及无线媒体,例如声学、射频(rf)、微波、红外线(ir)和其他无线媒体。此处使用的术语计算机可读介质可以包括存储介质和通信介质。65.计算设备300可以实现为小型便携式(或移动)电子设备的一部分,例如手机、个人数据助理(pda)、个人媒体播放器设备、无线网络手表设备、包括上述任何功能的个人耳机设备、专用设备或混合设备。计算设备300也可以实现为包括膝上型计算机和非膝上型计算机配置的个人计算机。66.出于说明的目的,上面已经描述了该技术的特定实施例。然而,可以在不偏离前述公开的情况下进行各种修改。此外,一个实施例的许多元素可以是除了或代替其他实施例的要素,本发明与其他实施例相结合。因此,该技术不受所附权利要求的限制。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
计算设备中的计算机存储器管理的制作方法 专利技术说明
作者:admin
2022-11-26 16:38:39
778
关键词:
计算;推算;计数设备的制造及其应用技术
专利技术