使用连续排序的交换文件的工作集合交换的制作方法

文档序号:6384199阅读:194来源:国知局
专利名称:使用连续排序的交换文件的工作集合交换的制作方法
使用连续排序的交换文件的工作集合交换
背景技术
计算系统采用主存储器(经常称作物理存储器)来执行包括软件程序或应用来内的处理。在现代系统中,该主存储器通常包括诸如随机访问存储器(RAM)的易失性存储器。操作系统(OS)可以向每个处理指定多个存储器页面以便该处理在物理存储器中执行时使用。然而,活动的处理可能会使用比系统上可用的更多的物理存储器。在这样的情况下,可以采用虚拟存储器来补充活动处理所使用的物理存储器,而不是在物理存储器中维持所有处理页面。虚拟存储器可以通过将用于处理的一个或多个页面写入次级存储(例如,硬盘驱动器)中的非易失性存储器中,并且按照需要将页面读回物理存储器来实施。例如,当数据没有被处理主动使用时,包含这样的数据的页面可以被写入次级存储因此释放物理存储器中的空间。这种在物理存储器和虚拟存储器之间读取和写入页面的处理通常被称作页式调度(paging),并且次级存储中用于写入页面的空间通常被称作页面文件。针对处理发生的该页式调度的速度和效率会影响到系统性能和用户体验。

发明内容
传统的页式调度操作趋于基于当前活动的处理的存储器要求将单独页面从物理存储器页出(page out)到次级存储,并且这可能会导致次级存储的破碎。本申请描述了通过使用往来于次级存储中连续排序位置的大型页面写入和读取而往来于用于处理的页面的工作集合高效地交换一个或多个页面的技术。由于读取和写入在它们能够在连续排序的和/或较大的存储器块上执行的情况下趋于更为高效,所以这里所描述的技术在交换操作期间往来于物理存储器中连续排序的位置而采用了大型页面读取和写入。当将页面从物理存储器交换至次级存储中时,页面可以根据其虚拟地址顺序而被写入专用交换文件中所保留的连续位置。这样的写入可以使得能够在把页面交换到大的连续排序的存储器块中,提供了更为高效的换入(inswapping)。提供该发明内容而以简化形式引入以下在具体实施方式
中进一步描述的一系列概念。该发明内容并非意在标识出所请求保护主题的关键特征或必要特征,也并非意在被用来对所请求保护主题的范围进行限制。


参考附图对具体实施方式
进行描述。在图中,附图标记最左侧的(多个)数位标识出该附图标记在其中首次出现的示图。相同的附图标记在不同示图中指示相似或相同的项目。图1A和IB图示了依据实施例的用于将页面从处理的工作集合写入交换文件的连续排序的位置的示例。图2是描绘依据实施例的示例计算系统的示意图。图3是依据实施例的示例操作系统组件的示意图。
图4A描绘了依据实施例的用于将页面从工作集合交换出去的说明性处理的流程图。图4B描绘了依据实施例的用于将交换出来的页面写入交换文件的说明性处理的流程图。图5描绘了依据实施例的用于将页面从交换文件交换出至工作集合的说明性处理的流程图。图6描绘了依据实施例的动态管理交换文件的说明性处理的流程图。
具体实施方式
概述
这里所描述的实施例使得能够通过使用往来于次级存储中连续排序位置的大的存储器块的写入和读取而从处理的工作集合进行更为高效的存储器页面交换。在诸如随机访问存储器(RAM)的物理存储器中执行的处理可能需要比系统上可用的更多的物理存储器。在这样的情况下,传统配置的存储器管理器或操作系统的其它组件可以实施页式调度以通过将处理的一个或多个存储器页面写入次级存储上的页面文件而释放一些物理存储器。在传统的页式调度中,处理的单独页面可以在需要时被写入(即,页出)以释放物理存储器,并且页面可以在处理想要访问它们时(例如,发生页面错误时)按照需要被页面返回至物理存储器中。这种单独页面按照需要进行的传统页式调度经常被称作按需页式调度,并且会导致随机并小型的次级存储输入/输出(I/O)操作,其中各个页面被存储在非连续存储空间中且并非以任何特定顺序进行存储。此外,计算系统中的I/O操作(例如,读和写)通常在以连续排序且大型的请求执行时更为高效。例如,在采用固态磁盘的系统中,与针对随机位置的请求相比,连续排序的I/O操作会导致两至三倍的效率增益。在许多情况下,大小较大的连续请求与大小较小的连续请求相比可以产生类似的增益。此外,在采用旋转磁盘的系统中,效率增益可能高达50倍。假定如此,这里所描述的实施例能够通过往来于交换文件中连续排序的位置使用针对读取和写入更大页面集群的I/O操作而使得能够进行高效交换。如这里所使用的,术语页面可以是指处理在其执行时所使用的存储器块。当处理活动时,页面可以处于可由处理可以访问的物理存储器中。存储器管理器或操作系统(OS)的其它组件可以移出物理存储器的一个或多个页面并且将它们写入次级存储。可以通过从次级存储复制回页面而将它们读回物理存储器中。在一个或多个实施例中,页面可以包括处理的私有页面。如这里所使用的,私有页面可以是指特定处理所拥有或专用而不被其它处理所使用的那些页面,诸如为处理所分配的堆(heap)。其它类型的页面可以包括多个处理所使用的可共享页面,诸如文件映射。一些实施例支持私有页面的高效交换。此外,一些实施例还可以支持页面文件所返回的共享页面的交换。这些类型的页面可以存储在单一位置中(例如,在页面文件中),并且可以通过句柄或指针进行引用。处理可以将这样的页面文件所返回的共享页面的句柄送至另一个处理,并且该页面只要处理保留针对其的句柄就可以存留在存储器中。如这里所使用的,术语工作集合可以是指用于处理的页面集合。实施例支持各种类型的工作集合。例如,工作集合可以包括处理在特定时间间隔期间所访问和/或引用的数据的页面。这样的工作集合可以提供可能由处理在近期(例如,下一个时间段期间)所访问的页面集合的近似估计以使得可能期望将该页面保持在物理存储器中以备由处理访问。然而,实施例并不局限于此并且可以支持作为工作集合的其它类型的页面汇总。例如,用于处理的工作集合可以是可不通过OS而从处理器直接访问的那些页面。如这里所使用的,术语交换文件可以是指在次级存储(例如,硬盘驱动器)上保留并且用于将页面换入换出物理存储器的空间。在一些实施例中,交换文件是与用于传统页式调度操作的页面文件相分离的专用交换文件。在一些实施例中,交换文件可以是页面文件的一部分。在一些实施例中,交换文件可以由存储器管理器或其它OS组件初始化,并且其大小可以如这里关于图6所描述的进行动态管理。实施例提供了从处理的工作集合进行页面换出(outswapping)并且将一个或多个换出页面从工作集合写入次级存储中的交换文件。如以上所讨论的,实施例通过往来于交换文件中连续排序的位置以大的集群提供页面的读取和/或写入而使得能够进行高效交换。图1A和IB图示了一个或多个实施例的换出和写入的示例。图1A示出了特定处理(处理X)的工作集合102以及次级存储中的交换文件104。可以确定来从物理存储器换出工作集合102的一个或多个页面。诸如存储器管理器的OS组件随后可以标识出工作集合102中作为用于换出的候选页面的一个或多个页面,诸如工作集合的私有页面。可以计算所标识的候选页面的总体大小。随后,在操作108中可以在交换文件104中保留出保留空间106,所保留空间足以存储候选页面。另外,每个候选页面的位置可以被保留在保留空间106中,该位置根据候选页面的虚拟地址顺序进行连续排序。此时,在一些实施例中,即使还没有候选页面被写入交换文件,候选页面也可以被视为已经被换出。图1B描绘了工作集合102中的一个或多个候选页面110。在一个或多个写入操作112中,一个或多个候选页面110被写入保留空间106。如图1B所示,每个所写入的候选页面可以被写入其特定的保留位置。在一些实施例中,虽然候选页面110在工作集合中可以是非连续的,但是如图1B所示,它们在交换文件中被写入连续位置。将候选页面写入连续的连续排序的保留空间106可以使得后续的读取操作在后续的换入操作期间能够在页面被读回工作集合102时读取交换文件中大的连续排序的块。因此,在一些实施例中,将候选页面写入交换文件中连续排序的位置使得能够进行大的和/或连续排序的高效的未来读取。页面的换出和写入关于图4进行更为详细的描述。实施例另外提供了页面的换入,其包括将页面从交换文件读入工作集合(即,将页面返回物理存储器以便由处理所使用)。页面的换入关于图5更为详细地进行描述。在一些实施例中,可以由策略管理器或OS的其它组件基于各种条件来进行从处理的工作集合换出或移除一个或多个页面的决策。例如,可以确定处理被中止、不活动或者出于一些原因而不如计算设备上的其它活动处理活跃(例如,访问较少的页面)。在这样的情况下,处理的一些或所有工作集合可以从工作集合中移除以释放更多的物理存储器供其它处理使用。然而,为了创建平滑的用户体验,在换入期间期望尽可能高效地将页面读回到工作集合中,以使得处理快速地变为活动。通过使用大的和/或连续的I/o操作的高效换入可以使得能够快速重新激活处理并且因此在活动处理之间进行切换的计算设备中提供有所提升的性能。
说明性计算设备架构
图2描绘了实施例可以在其中进行操作的示例计算机系统架构的示图。如所示出的,计算系统200包括处理单元202。处理单元202可以包含多个处理单元,并且可以被实施为硬件、软件或者其一些组合。处理单元202可以包括一个或多个处理器。如这里所使用的,处理器是指硬件组件。处理单元202可以包括以任意适当编程语言所编写以执行这里所描述的各种功能的计算机可执行、处理器可执行和/或机器可执行指令。计算设备200进一步包括系统存储器204,其可以包括诸如随机访问存储器(RAM)206、静态随机访问存储器(SRAM)、动态随机访问存储器(DRAM)等的易失性存储器。RAM206包括一个或多个执行的OS 208,以及一个或多个执行的处理210,其包括可由处理单元202加载并执行的组件、程序或应用。因此,在一些实施例中,RAM 206可以包括OS 208或处理210在其中执行的物理存储器。系统存储器204可以进一步包括非易失性存储器,诸如只读存储器(ROM) 212、闪存等。如所示出的,ROM 212可以包括用来引导计算系统200的基本输入/输出系统(BIOS)。虽然没有示出,但是系统存储器204可以进一步存储(多个)操作系统208和/或处理210在其执行期间所生成和/或采用的程序或组件的数据。系统存储器204还可以包括高速缓存存储器。如图2所示出的,计算设备200还可以包括非可移动存储230和/或可移动存储234,包括磁盘存储、光盘存储、磁带存储等,但是并不局限于此。磁盘驱动器以及相关联的计算机可读媒体可以提供计算机可读指令、数据结构、程序模块以及用于计算系统200操作的其它数据的非易失性存储。此外,非可移动存储230可以进一步包括硬盘驱动器232。在一些实施例中,硬盘驱动器232可以提供在这里所描述的交换操作中使用的次级存储。总体而言,计算机可读媒体包括计算机存储媒体和通信媒体。计算机存储媒体包括以用于存储诸如计算机可读指令、数据结构、程序模块和其它数据的信息的任意方法和技术所实施的易失性和非易失性、可移动和非可移动媒体。计算机存储媒体包括RAM、ROM、可擦除可编程只读存储器(EEPROM)、SRAM、DRAM、闪存或其它存储器技术、紧致盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其它光学存储、磁性卡带、磁带、磁盘存储或其它磁性存储设备,或者可以被用来存储信息以便由计算设备所访问的任意其它非传输介质,但是并不局限于此。与之相比,通信媒体可以在诸如载波或其它传输机制的调制数据信号中实现计算机可读指令、数据结构、程序模块或其它数据。如这里所定义的,计算机存储媒体并不包括通信媒体。计算系统200可以包括(多个)输入设备236,其包括键盘、鼠标、手写笔、游戏控制器、用于话音识别的语音输入设备、触摸输入设备等,但是并不局限于此。计算系统200可以进一步包括(多个)输出设备238,包括显示器、打印机、音频扬声器、触觉输出等,但是并不局限于此。计算设备200可以进一步包括(多个)通信连接240,其允许计算系统200通过一个或多个通信网络与其它计算设备242进行通信,所述其它计算设备242包括客户端设备、服务器设备、数据库和/或其它可用联网设备。图3提供了根据实施例的计算系统200和OS 208的示例描绘。如所示出的,在一些实施例中,OS 208包括诸如策略管理器302和存储器管理器304的一个或多个组件。在一些实施例中,策略管理器302确定页面何时被换出或换入用于在计算系统200的物理存储器中执行的处理的工作集合。在一些实施例中,策略管理器304可以被描述为OS 208的处理生命期管理器,其决策处理在各种条件下何时被中止、重新激活和/或终止。如图3所示,OS 208例如可以通过计算系统200的通信总线与硬盘驱动器232和RAM 206进行通信。硬盘驱动器232可以包括由OS 208在页式调度或交换操作中所使用的次级存储。在一些实施例中,硬盘驱动器232包括一个或多个页面文件318和/或一个或多个交换文件320。在一些实施例中,由存储器管理器304初始化(多个)页面文件318和/或(多个)交换文件320以便在页式调度或交换操作中使用。在所示出的示例中,(多个)交换文件320与(多个)页面文件318相分离。然而,在一些实施例中,(多个)交换文件320可以是(多个)页面文件318的一部分。RAM 206可以包括处理在其中执行的物理存储器,并且可以包括用于这样的处理的一个或多个工作集合322。此外,存储器管理器304可以包括操作来执行如这里所描述的页面交换的操作的一个或多个组件。在一些实施例中,存储器管理器304包括页面表格306,其将虚拟地址映射到物理存储器或用于页面调度操作的页面文件中的每个页面的位置。在候选页面被换出处理的工作集合时(如以下将参考图4A进一步描述的),一些实施例可以进一步采用页面表格306来存储候选页面在交换文件中的保留位置的信息。在一些实施例中,交换文件中的空间保留可以如于2011年3月7日提交并且通过引用结合于此的题为“PagefileReservations”的美国专利申请序列号13/042128中所描述的来进行。存储器管理器304还可以包括修改列表308和/或备用列表310。在一些实施例中,在候选页面已经从工作集合换出并且在交换文件中已经为它们保留了位置之后,在后续某时,那些候选页面可以从工作集合中移除并且可以被置于修改列表308上以便由写入器(例如,页面写入器312)进行写入。随后,在每个页面被写入交换文件320时,该页面的地址信息可以从修改列表308中移至备用列表310。在一些实施例中,备用列表310保持追踪还没有从物理存储器移除的页面,尽管它们已经被写入交换文件。在这样的情况下,如果处理试图访问这些页面,则它们仍然可以在物理存储器中被直接访问而不必被换入回来。然而,如果存储器管理器304需要物理存储器的更多页面用于其它处理,在其可以分配处于备用列表上的那些页面。在一些实施例中,存储器管理器304还包括页面写入器312,其操作来将页面从(多个)工作集合322写入(多个)页面文件318和/或(多个)交换文件320 (例如,换出页面),和/或将页面读回到(多个)工作集合322中(例如,换入页面)。说明性处理
图4A、4B、5和6描绘了示出依据各个实施例的示例处理的流程图。这些处理的操作在单独框中进行图示并且关于那些框而被概括。处理被图示为逻辑流程图,其中的每个操作可以表示可以以硬件、软件或者其组合实施的一个或多个操作。在软件环境中,操作表示存储在一个或多个计算机存储媒体上的计算机可执行指令,当被一个或多个处理器所执行时,所述计算机可执行指令使得一个或多个处理器执行所列举的操作。通常,计算机可执行指令包括执行特定功能或者实施特定抽象数据类型的例程、程序、对象、模块、组件、数据结构等。操作所描述的顺序并非意在被理解为限制,并且任意数量的所描述操作可以以任意顺序进行组合,细分为多个子操作和/或并行执行以实施所描述的处理。图4A描绘了依据实施例的从工作集合换出页面的示例处理。该换出处理可以由OS 208的一个或多个组件执行,诸如存储器管理器304或策略管理器302。在402,进行决策以将一个或多个页面从处理的工作集合换出到交换文件中。在一些实施例中,该决策可以由策略管理器302基于各种标准来做出。在一些情况下,针对换出的决策可以以确定处理被不活动或中止,与处理相关联的一个或多个线程在某个时间段内没有活动,处理已经处于后台达一段时间,处理在一个时间段期间没有使用某个数量的页面,或者计算系统整体已经被中止和/或处于不活动为基础。—旦做出了换出的决策,则在404,标识出一个或多个候选页面以便从处理的工作集合换出。在一些实施例中,存储器管理器将对工作集合的每个页面进行分析并且基于某个标准确定每个页面是否是换出的候选。在一些实施例中,换出的候选可以包括工作集合中的私有页面和/或页面文件所返回的共享页面。在一些实施例中,候选页面可以基于那些页面是否清洁(clean)而标识,即页面已经被写入页面文件但是自那之后还没有被修改,从而物理存储器中的当前页面版本与页面文件中的页面相同。污损页面是自被写入页面文件之后已经被改变过,或者还没有被写入页面文件的那些页面。另外,在一些实施例中,在决策页面是否是换出候选时可以考虑该页面是否在存储器中被锁定。在406,基于计算出的所标识候选页面的总体大小在交换文件中保留空间(例如,所保留空间106)。在408,在交换文件的保留空间中为每个候选页面分配或保留位置。在一些实施例中,位置根据工作集合中候选页面的虚拟地址而以虚拟地址顺序进行保留。因此,即使候选页面在工作集合内是非连续的,它们在交换文件中的位置也可以是连续的。候选页面在交换文件的保留空间中连续、连续排序的位置可以使得在未来能够从大的连续排序的块中从交换文件执行读取以提供高效换入。在一些实施例中,交换文件中的空间保留可以如于2011年3月7日提交并且通过引用结合于此的题为“Pagefile Reservations”的美国专利申请序列号13/042128中所描述的来进行。一旦已经在408为候选页面保留了位置,那些候选页面就可以被视为已经被换出。在410,所换出的候选页面的列表(或其它数据结构)被更新。在一些实施例中,该列表当在408保留位置时被更新。一旦已经保留了位置并且更新了列表,在后续某时,存储器管理器可以选择将一些或全部换出页面写入交换文件中它们所保留的位置。图4B描绘了根据实施例的用于写入换出页面的示例处理。在412,决策将一个或多个所标识的候选页面写入交换文件(例如,以便从工作集合换出页面)。在一些实施例中,该决策可以以确定导致决策换出(在402)的标准在其间仍然有效的某个阈值时间段已经过去为基础。例如,可能过去了某个时间段(例如5分钟),期间处理仍然不活动或中止。在一些实施例中,可以基于存储器管理器确定了需要更多物理存储器供一个或多个活动处理使用来决策。如果在412决策了将一个或多个候选页面写入交换文件,则在414,可以从工作集合移除一个或多个要被写入的候选页面。在一些实施例中,所有候选页面都被移除并且在一个或多个写入操作中被写入交换文件。在一些实施例中,部分候选页面被移除。在一些实施例中,所写入的候选页面可以基于存储器的压力来确定(例如,基于存储器管理器对更多物理存储器的需求)。在一些实施例中,候选页面被换出的决策可以基于那些页面最近何时被处理所访问。例如,存储器管理器可以选择换出最近最少使用并且在某个时间段内还没有被处理器所访问的那些页面。在一些实施例中,候选页面的移除可以通过以与候选页面的位置在交换文件中所保留的顺序相一致的顺序将它们从工作集合中移除而得以优化。例如,诸如在位置以虚拟地址顺序进行保留的情况下,候选可以以虚拟地址顺序从工作集合移除。在一些实施例中,虽然候选页面仍然基于虚拟地址顺序而被写入交换文件中连续排序的位置中,但是候选页面从工作集合的移除可以是任意的和/或随机的(例如,没有排序)。在一些实施例中,页面可以保留在物理存储器中的工作集合中(例如,即使在那些页面被写入交换文件之后)直至存储器管理器需要将那些页面用于活动处理。在416,候选页面被写入交换文件。在一些实施例中,候选页面根据其虚拟地址顺序(例如,根据页面在工作集合中的虚拟地址而以升序或降序)而被写入它们在交换文件中连续排序的保留位置。此外,通过将候选页面进行汇集以在尽可能大的存储器块中执行写入和/或以连续的虚拟地址顺序执行写入操作,写入操作自身可以而得以优化和/或更高效地执行。在一些实施例中,页面写入器312执行写入操作以将候选页面写入它们在交换文件中的保留位置。在候选页面还没有被分配保留位置的情况下,页面可以被写入页面文件。在一些实施例中,所写入页面的地址可以被存储器管理器保存在要用于从交换文件读入页面的数据结构中。在一些情况下,可以在412决策不写入换出页面。在这样的情况下,在418,所保留位置可以被保持直至发生换入(如图5所描述)。在一些实施例中,如果导致针对交换的初始决策(例如,在402)的条件在某个阈值时间段之后不再存在,则可以决策不将候选页面写入交换文件。例如,处理可以再次活动或者不再被中止。在其它情况下例如如果一个或多个候选页面被处理所访问,针对换入页面的条件可能在那些候选页面已经被写入交换文件之前出现(例如,如果那些页面还没有从物理存储器中移除则将会导致页面错误的条件)。—些实施例支持其中在402已经做出了换出决策之后的一个时间段内从工作集合移除页面的优化。另外,页面集群可以根据使用模式而被换出和/或写出到页面文件。例如,存储器管理器可以换出和/或写入处理最近期访问(例如,在过去五秒内访问过)的页面的第一群组,随后在一段时间之后换出和/或写入次近期访问(例如,在过去5秒和过去10秒之间访问过)的页面的第二群组,等等。在一些情况下,这样的群组可以另外从最不近期访问向最近期访问进行排序。在一些实施例中,页面的换出和/或写出可以以处理执行的特定活动或阶段为基础。例如,应用可以进入特定阶段或执行特定行为,并且与该阶段或行为相关(或者不与该阶段或表现相关)的页面可以被存储器管理器所换出。此外,实施例支持优化的各种组合。例如,页面的群组可以被交换出,并且随后类似的群组或不同地确定的群组可以被写入交换文件。作为另一个示例,页面的整个工作集合可以被换出,并且随后页面的群组被标识用于向交换文件写入,如这里所描述的。此外,在一些实施例中,一个或多个页面从处理的工作集合的换出可以被描述为将处理的当前状态保存至次级存储,以使得当存储器管理器换进被换出的页面时,该处理被恢复到其例如在被中止或变为不活动时所处的状态。在一些实施例中,正在执行的处理可能试图访问在被换进之前已经被换出的页面。在这样的情况下,存储器管理器可以确定换入所有被换出的页面,换入试图进行访问的那些页面,和/或换入在虚拟地址空间中与(多个)所请求页面临近的一个或多个页面。这可以包括在交换文件中释放所换入页面的保留位置。图5描绘了依据实施例的用于将页面从次级存储换入到处理的工作集合的示例处理。在一些实施例中,换入处理由OS 208的一个或多个组件来执行,诸如存储器管理器304或策略管理器302。在502,决策或确定来换入之前从用于处理的工作集合所换出的一个或多个页面。在一些实施例中,该决策由策略管理器302所作出,并且可以基于各种标准而作出。这样的标准可以包括接收到处理不再不活动或中止,或者处理试图访问未处于物理存储器中的一个或多个页面的指示(例如,已经发生了页面错误)。在一些实施例中,标准可以包括导致在402进行换出的决策的那些条件的中断。在504,一个或多个之前换出的页面被标识以便进行换入。在502进行换入决策的同时,一个或多个换出页面可能不再处于物理存储器中。例如,存储器管理器可能已经将一个或多个换出页面用于其它处理。因此,在504,标识用于换入的页面可以包括确定不再处于物理存储器中的那些换出页面。在一些实施例中,标识用于换入的页面可以基于其地址在它们换出时被存储器管理器保存在数据结构中的那些页面。在一些实施例中,处理对一个或多个页面所进行的失败访问尝试(例如,页面错误)可以导致那些页面被换入。在506,确定被标识为之前被换出的一个或多个页面是否已经如以上关于图4B所描述的那样被写入交换文件以及页面是否已经离开了物理存储器。在一些实施例中,在508,如果页面已经被写入交换文件并且已经离开了物理存储器,在被标识为用于换入的页面被从它们在交换文件中的位置读回到物理存储器中的工作集合中。在一些情况下,页面可能已经从工作集合中被移除但是还没有离开物理存储器(例如,如果页面被高速缓存在备用列表上)。在这样的情况下,这些高速缓存的页面可以从备用列表被添加回到工作集合中并且它们的保留位置被释放,但是无需从交换文件读取该页面。另外,工作集合的一些页面在换出之后可能已经离开物理存储器而其它页面则保持被高速缓存在备用列表上。在这样的情况下,已经离开物理存储器的那些页面可以从交换文件进行读取,并且连同高速缓存的页面一起被添加回到工作集合中。在一些实施例中,页面的读入可以与在处理的页面错误时所发起的读取类似地进行。然而,实施例支持以大的存储器块和/或以连续的虚拟地址顺序进行读取,因此其与从次级存储中的任意位置读取较小的块相比更为高效。例如,由于页面被写入交换文件中所保留的连续块(或者在一些情况下,如以下所描述的多个连续块)并且以连续的虚拟地址顺序进行写入,所以多个页面的集群可以随后以大的块并且以连续的虚拟地址顺序进行读取,提供更为高效的读取操作。在一些实施例中,对于系统性能和/或使用可能有益的是,假定用户可以等待之前不活动或中止的处理再次变得活跃(例如,诸如在处理是用户应用时),可以高效执行换出的页面的读入。假定如此,一些实施例可以支持这样的优化其中页面以基于它们在换出之前被访问的频繁程度的顺序而被读回到物理存储器中。例如,在将页面从工作集合换出之前,存储器管理器可以保持追踪哪些页面被处理更为频繁地访问或者在最近期访问,并且那些页面可以比其它页面更早地被换入。例如,页面的第一群组可以被确定为已经在某个时间段内(例如,应用中止之前的最近5秒钟)被访问,页面的第二群组可以被确定为已经在下一个时间段内(例如,5和10秒钟之间)被访问,第三群组可以被确定为已经在下一个时间段内(例如,10和15秒钟之间)被访问,等等。随后,当作出换入页面的决策时,第一群组可以被首先换入,第二群组可以在第一群组之后被换入,第三群组可以在第二群组之后被换入,等等。假定在换出之前最近被处理所访问的那些页面是首先被换入的那些页面,则这样的优化可以确保处理变为至少部分地活跃并且可更快地被用户所使用。在510,在交换文件中为换出页面所保留的位置得以被释放。在一些实施例中,在506确定了要被换入的页面还没有被写入它们在交换文件中所保留的位置的情况下也可以执行所保留位置的释放。图6描绘了根据实施例的用于动态管理交换文件的示例处理。在一些实施例中,该处理由OS 208的组件所执行,诸如存储器管理器304。在602,初始化交换文件。在一些实施例中,交换文件在计算系统引导时被初始化为具有预定大小(例如,256MB)。在其它实施例中,交换文件在存储器管理器确定要发生交换操作时初始化,并且可以被初始化为具有足以容纳所要交换的页面的初始大小。在存储器管理器(或其它OS组件)进行操作时,可以在604确定将一个或多个页面从物理存储器中所执行处理的工作集合中换出,如以上关于图4A所描述的。在606,如果所换出的页面被写入交换文件,则随后可以确定在交换文件中是否需要附加的空间以容纳它们。如果需要更多空间,则交换文件大小可以在608动态增加。在一些实施例中,给定交换文件的当前大小,增加交换文件大小的决策可以以存储器管理器接收到针对无法被容纳的页面交换的请求为基础。此外,一些实施例可以提供交换文件的最大大小。在一些实施例中,交换文件的初始大小和/或其大小的动态变化可以至少部分地由系统上所执行处理的大小和/或类型所确定。在610,如以上所描述地执行换出操作和/或写入操作。在随后某时,可以在612确定换入一个或多个所换出页面,并且在614释放交换文件中一个或多个页面的保留位置。换入和保留位置的释放可以如以上关于图5所描述的那样进行。在616,例如在612的换入操作和614的保留空间释放之后,可以决策交换文件需要较少空间。在这样的情况下,交换文件的大小可以在618动态减小。。在一些实施例中,减小交换文件的大小的决策可以基于确定了一个或多个处理的页面换入减少了对于交换文件空间的需求而作出。在一些实施例中,交换文件中的自由空间可以被存储器管理器重新用于所换出页面的后续写入,并且存储器管理器可以以使得碎片最小化的方式重新使用交换文件空间(例如,以使得页面优选地被保存在更大更为连续的块中和/或以连续虚拟地址顺序进行保存)。由于实施例试图以连续顺序的页面集群的大型读取和写入执行交换操作,所以其对于交换文件自身碎片更少并且在次级存储中更为连续而言会是有利的。为此,在一些实施例中,当存储器管理器确定需要更多交换文件空间时,其可以以大于交换文件缩小的量(例如,64MB)的某个块大小(例如,128MB)从操作系统请求附加空间。通过以更大的块请求附加空间,给定文件系统试图在次级存储中的连续空间(或空间较不连续的块)中找出所请求的附加交换文件空间,则实施例可以降低交换文件的外部碎片的概率。此外,给定连续的交换文件的期望,实施例采用与如图3所示的页面文件分隔开来的交换文件。使用单独的专用交换文件可以增加交换文件被创建和/或扩展为单个连续的块(或较不连续的块)的概率。虽然一些实施例支持将页面文件用于这里所描述的交换操作,但是给定采用页面文件的传统页式调度方法的任意且非连续的方式,则这样的情形会增加交换文件会在外部变得破碎并且因此较不服从大的连续I/o操作的概率。因此,给定通过使用单独的交换文件而增加了更大更为连续的I/o操作的机会,实施例支持使用单独的专用交换文件来提高I/o操作的效率。另外,实施例可以支持在次级存储中的某个数量的分段之间分布的单独但不连续的交换文件。一些实施例可以支持最大数量的这样的分段(例如,五个)以确保交换文件并不过度地非连续。在一些实施例中,可以采用单个交换文件来交换来自计算系统上所有处理的页面。在其它实施例中,可以将单独交换文件用于计算系统上的个体处理或用于处理群组。结论
虽然已经以特定于结构特征和/或方法操作的语言对技术进行了描述,但是所要理解的是,所附权利要求并不必局限于所描述的具体特征或操作。相反,具体特征和操作被公开为这样的技术的示例实施方式。
权利要求
1.一种计算机实施的方法,包括 从用于处理的页面的工作集合标识出用于交换的一个或多个候选页面(404); 在次级存储的交换文件中保留空间,所保留的空间对应于所述一个或多个候选页面的总体大小(406);并且 将所述一个或多个候选页面写入所述交换文件中所保留空间中的连续排序的位置(416,106)。
2.根据权利要求1的方法,进一步包括以连续地址顺序从所述工作集合中去除要被写入的一个或多个候选页面。
3.根据权利要求1的方法,其中所述连续排序的位置被连续并且以连续虚拟地址顺序分配给所述一个或多个候选页面(408,106)。
4.根据权利要求1的方法,进一步包括以连续地址顺序将至少一些所写入的候选页面的集群从所述交换文件的所保留空间读入用于处理的工作集合(508)。
5.根据权利要求1的方法,进一步包括在所述交换文件中连续保留位置(408,106)。
6.根据权利要求1的方法,其中以虚拟地址顺序连续执行所述一个或多个候选页面的写入(416,112)。
7.一种系统,包括 至少一个处理器(202); 存储器(204);和 存储器管理器(304),其由所述至少一个处理器执行并且进行操作以 从用于在存储器中执行的处理的页面的工作集合标识出用于交换的一个或多个候选页面(404); 在系统的次级存储的交换文件中保留空间,所保留的空间对应于所述一个或多个候选页面的总体大小(406);并且 将所述一个或多个候选页面写入所述交换文件中所保留空间中的连续排序的位置(416,106)。
8.根据权利要求7的系统,进一步包括策略管理器(302),其由所述至少一个处理器执行并且基于处理的检测到的状态确定交换用于处理的工作集合的至少一部分(402)。
9.根据权利要求7的系统,其中所述存储器管理器进一步操作来以连续地址顺序将一个或多个所写入的候选页面从所述交换文件中的所保留空间写入用于处理的工作集合(508)。
10.一个或多个存储指令的计算机可读存储媒体(232,234),当被至少一个处理器(202)执行时,所述指令指示所述至少一个处理器执行操作,所述操作包括 从用于处理的页面的工作集合标识出用于交换的一个或多个候选页面(404); 在次级存储的交换文件中保留空间,所保留的空间对应于所述一个或多个候选页面的总体大小(406);并且 将所述一个或多个候选页面写入所述交换文件中所保留空间中的保留位置,所述保留位置是以连续地址顺序的(416,106);并且 以连续地址顺序将至少一些所写入的候选页面的集群从所述交换文件的所保留空间读入用于处理的工作集合(508 )。
11.一种或多种其上存储计算机可执行指令的计算机可读存储媒体,所述指令当由计算设备执行时,使得所述计算设备实现如权利要求1 一 6中的任一个所述的方法。
全文摘要
本发明为使用连续排序的交换文件的工作集合交换。描述了使得能够通过使用往来于次级存储中连续排序位置的大型页面写入和读取而往来于用于处理的页面的工作集合进行高效的存储器页面交换的技术。当从处理的工作集合将页面写入次级存储时,该页面可以根据虚拟地址顺序或其它顺序而被写入专用交换文件中所保留的连续位置中。这样写入连续排序的位置使得能够在大的连续存储器块中读取页面集群,提供了更为高效的将页面返回物理存储器的读取操作。
文档编号G06F12/02GK103019948SQ20121054097
公开日2013年4月3日 申请日期2012年12月14日 优先权日2011年12月14日
发明者M.莱根, Y.贝克, L.王, A.U.基尚 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1