当前位置: 首页 > 专利查询>微软公司专利>正文

用于未经修改的应用的存储器管理模型和接口制造技术

技术编号:9769872 阅读:155 留言:0更新日期:2014-03-16 05:17
本文描述了一种存储器管理系统,它从各应用接收描述存储器正被如何使用的信息并且允许应用主机对使用存储器的应用请求施加更多控制。该系统提供应用存储器管理应用编程接口(API),该API允许应用指定与存储器分配有关的有助于稍后管理存储器的更多信息。该系统还提供以下能力:静态地和/或动态地分析传统应用以便向未被修改成与该系统一起工作的各应用给予参与更有效的存储器管理的一些能力。该系统提供应用主机改变以利用各应用所提供的信息并使用该信息和该应用的存储器使用中的挂钩来更有效地管理存储器。由此,该系统提供用于管理存储器的新模型,它改进了应用主机行为并允许各应用更有效地使用计算资源。

【技术实现步骤摘要】
【国外来华专利技术】用于未经修改的应用的存储器管理模型和接口背景计算机系统中的存储器管理指的是多个应用和操作系统对存储器的使用达成一致的方式。虽然每一计算机系统具有固定量的物理随机存取存储器(RAM)或其他存储器,但操作系统可向各应用和各操作系统组件呈现表示与物理存储器不同的存储器大小的虚拟存储器。在一些情况下,虚拟存储器允许操作系统约束每一应用访问存储器的特定部分以阻止一个应用通过无意地或有意地修改另一应用的存储器来干扰该另一应用的操作。操作系统一般提供用于响应于应用和操作系统组件请求来分配并释放存储器的一个或多个功能。操作系统可向应用提供存储器池,该应用可从该池中分配存储器块。如果一应用使用或者一组应用一起使用比所安装的物理存储器的量更多的虚拟存储器,则操作系统可以在被称为分页或盘交换(即,向盘存储和从中取回存储器的各页)的过程中使用较慢的基于盘的存储来通过交换文件扩展存储器的外观大小。除了所提供的分配和释放功能之外,操作系统具有对各应用如何使用存储器的非常少的洞察。许多计算设备包含围绕存储器的特定限制。例如,移动计算设备可包括与在台式计算机系统上通常可用的存储器量相比小得多的存储器量(或系统可能想要解除某存储器的动力以降低能耗),从而对该设备造成与多少应用可同时运行、每一应用可请求/消费多少存储器等等有关的限制。在特定计算系统内主存应用代码的其他计算环境也可对该环境的存储器使用施加限制或上限。主机,如VMware和MICROSOFT TM虚拟PC、系统管理程序、操作系统以及其他,可被分配有限的资源。在所有这些情况中,有效的存储器管理变得更加引人注目。新计算平台引入新技术或重新要求旧技术来解决各应用之间共享的有限存储器的问题。例如,移动电话操作系统可以创建每一应用的存储器快照,使得在该应用不在前台(例如,被主动使用)时,操作系统将它关闭并将该应用的存储器的镜像储存在较慢存储上(例如,闪存或其他存储)。在该应用被选择时,操作系统将所存储的镜像重新加载到存储器并开始该应用。该应用可能甚至不知道它被关闭过。虽然这些技术是有用的,但操作系统然而将遭受该应用对使用存储器的不透明请求的损害。当前做出的与动态存储器使用有关的大多数决策是基于在运行时期间找到的信息来做出的。这样的信息的示例包括对所分配的存储器段的引用的大小和数量。这一信息随后可被用来确定哪些分配将被分页到盘,被高速缓存到高性能存储器,或被某种自动存储器管理系统来释放。不幸的是,任何平台都受到可能许多年的传统应用的限制,所以在与存储器管理一样宽广的区域中采用新模型是困难的。概述本文描述了一种存储器管理系统,它从各应用接收描述存储器正被如何使用的信息并且允许应用主机对使用存储器的应用请求施加更多控制。当今,除了应用已做出了多少存储器请求和每一请求所请求的存储器大小之外,应用主机对该应用的存储器使用知之甚少。然而,应用主机不知道每一存储器分配的目的,哪些存储器分配将被很快使用,在应用主机需要更多存储器的情况下哪些存储器分配将被容易地重新创建,哪些存储器分配暂时不会被使用并且因此可被分页到盘而不影响该应用的性能,等等。不幸的是,虽然应用主机的任务是做出这些类型的决策,但应用拥有与有效做出这些决策有关的最多信息。存储器管理系统用若干方式克服了这些问题。首先,该系统提供应用存储器管理应用编程接口(API),该API允许该应用指定与存储器分配有关的有助于稍后管理存储器的更多信息。该API还可向应用主机提供通知该应用何时需要存储器以及在需要时在没有应用交互的情况下抢先释放并重新创建存储器分配的能力。其次,该系统提供以下能力:静态地和/或动态地分析传统应用以便向未被修改成与该系统一起工作的各应用给予参与更有效的存储器管理的某种能力。第三,该系统提供应用主机改变以利用各应用所提供的信息并使用该信息和该应用的存储器使用中的挂钩(hook)来更有效地管理存储器。由此,本存储器管理系统提供用于管理存储器的新模型,它改进了应用主机行为并潜在地允许各应用更高效地使用计算资源。提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的选择的概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。附图简述图1是示出在一个实施例中的存储器管理系统的各组件的框图。图2是示出在一个实施例中的存储器管理系统的操作环境的框图。图3是示出在一个实施例中的软件应用内的存储器管理系统请求分配和使用存储器的处理的流程图。图4是示出在一个实施例中的主机内的存储器管理系统接收分配和使用存储器的应用请求的处理的流程图。图5是示出在一个实施例中的存储器管理系统分析未被专门设计成提供存储器分配信息的应用的处理的流程图。图6是示出在一个实施例中的存储器管理系统静态地分析应用并提供增强的存储器信息的清单的处理的流程图。图7是示出一个实施例中的存储器管理系统响应于检测到的存储器压力来采取与存储器有关的动作的处理的流程图。图8是示出一个实施例中的存储器管理系统激活其存储器先前已被主机修改的应用的处理的流程图。详细描述本文描述了一种存储器管理系统,它从各应用接收描述存储器正被如何使用的信息并且允许应用主机对使用存储器的应用请求施加更多控制。当今,除了应用已做出了多少存储器请求和每一请求所请求的存储器大小之外,应用主机对该应用的存储器使用知之甚少。然而,应用主机不知道每一存储器分配的目的,哪些存储器分配将被很快使用,在应用主机需要更多存储器的情况下哪些存储器分配将被容易地重新创建,哪些存储器分配暂时不会被使用并且因此可被分页到盘而不影响该应用的性能,等等。不幸的是,虽然应用主机的任务是做出这些类型的决策,但应用拥有与有效做出这些决策有关的最多信息。这一冲突当今是通过应用主机提供基本水平的功能并猜测要采取哪些动作来解决的。在许多情况下,应用主机可能恰好在应用需要存储器之前将该存储器分页到盘,或者应用主机可能花费大量努力来管理对应用不重要的存储器。本存储器管理系统用本文进一步讨论的若干方式克服了这些问题。首先,该系统提供应用存储器管理应用编程接口(API),该API允许该应用指定与存储器分配有关的有助于稍后管理存储器的更多信息。该API还可向应用主机提供通知该应用何时需要存储器以及在需要时在没有应用的交互的情况下抢先释放并重新创建存储器分配的能力。其次,该系统提供以下能力:静态地和/或动态地分析传统应用以便向未被修改成与该系统一起工作的各应用给予参与更有效的存储器管理的某种能力。第三,该系统提供内核级操作系统(或主机)改变以利用各应用所提供的信息并使用该信息和该应用的存储器使用中的挂钩来更有效地管理存储器。因而,本存储器管理系统提供用于管理存储器的新模型,它改进了应用主机行为并潜在地允许各应用更高效地使用计算资源。如本文所描述的,应用主机可指的是执行应用的操作系统或另一类型的主机(例如,本身在操作系统上或虚拟化子系统上运行的应用),如SILVERLIGHT TM、.NET所提供的运行时,本机Win32主机,或VMware和虚拟PC所提供的其他主机或虚拟机。以上介绍的这三个区域中的每一个在以下各节中进一步详细描述。经修改的应用在许多情况下,软件开发人员修改软件应用以与存储器管理系统进本文档来自技高网...
用于未经修改的应用的存储器管理模型和接口

【技术保护点】
一种用于分析未被专门设计成提供存储器分配信息的应用并提取存储器分配信息的计算机实现的方法,所述方法包括:检测描述所述应用做出的存储器分配的信息对其不可用的应用;对所述应用执行分析以确定所述应用做出的存储器分配;将所述应用挂钩以便在该应用内的该应用分配存储器的各位置处提供分配信息;以及从所述应用接收分配存储器的请求以及经挂钩的应用代码所提供的相关联的分配信息,其中,前述步骤由至少一个处理器来执行。

【技术特征摘要】
【国外来华专利技术】2011.06.20 US 13/163,7451.一种用于分析未被专门设计成提供存储器分配信息的应用并提取存储器分配信息的计算机实现的方法,所述方法包括:检测描述所述应用做出的存储器分配的信息对其不可用的应用;对所述应用执行分析以确定所述应用做出的存储器分配;将所述应用挂钩以便在该应用内的该应用分配存储器的各位置处提供分配信息;以及从所述应用接收分配存储器的请求以及经挂钩的应用代码所提供的相关联的分配信息,其中,前述步骤由至少一个处理器来执行。2.如权利要求1所述的方法,其特征在于,检测所述应用包括在所述应用的二进制模块上检测指定所述应用是否参与增强的存储器模型的信息。3.如权利要求1所述的方法,其特征在于,检测所述应用包括确定先前高速缓存的应用分配信息是否可用。4.如权利要求1所述的方法,其特征在于,执行分析包括对所述应用应用静态二进制分析以标识应用二进制模块中的存储器相关行为。5.如权利要求1所述的方法,其特征在于,执行分析包括对所述应用应用动态分析以标识在所述应用的运行时的存储器相关行为。6.如权利要求1所述的方法,其特征在于,执行分析包括标识对用于分配、访问或释放存储器的一个或多个特定的主机应用编程接口(API)的调用。7.如权利要求1所述的方法,其特征在于,执行分析包括标识所述应用代码的存储器相关区域附近的分配元数据。8.如权利要求1所述的方法,其特征在于,将所述应用挂钩包括重定向应用二进制代码以便在所述应用代码中的一点处截取或扩充应用的标准存储器相关行为。9.如权利要求1所述的方法,其特征在于,将所述应用挂钩包括提供调用用于提供分配元数据的分配函数而不是调用所述应用最初调...

【专利技术属性】
技术研发人员:J·C·斯帕德林G·亨特A·F·托玛斯S·马耶
申请(专利权)人:微软公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1