增强时效器有效性的方法和手段的制作方法

文档序号:6407021阅读:201来源:国知局
专利名称:增强时效器有效性的方法和手段的制作方法
本申请的主题与下列申请有关,它们与本申请并存并且被赋予同一受托人由S.Parikh递交的美国申请S.N.07/872,732号,题为“页时效多位矢量”(IBM纪要DA9-92-028号);由S.Parikh递交的申请S.N.07/872,935号,题为“有效处理页表条目的方法和设备(IBM纪要DA9-92-027号);由S.Parikh的申请S.N.07/872,221,题为“多位矢量历程列表”(IBM纪要DA9-92-032);以及由S.Parikh递交的申请S.N.07/872,733,题为“从实际存储器换出预定页的方法和设备”(IBM纪要DA9-92-035号)。
上述共同未定(CO-Pending)申请列入这里作为参考。
本发明概括地讲是涉及存储器管理,具体地说是关于以页为基础的存储器管理中提高时效器(ager)有效性的方法和设备。
在现代微处理器中,虚拟存储器的概念是和实际存储器一起使用的。虚拟存储器允许以大的和/或多个应用程序来使用较小量的实际存储器(由于费用的原因,这一点很重要)。这是可能的,这是由于这样的事实,即在任何时刻只需要特定应用程序的较小部分放在实际存储器中。所以,在同时运行几个应用程序的计算机系统中,有可能只把当前运行的应用程序所需要的数据和程序代码放在实际存储器中,而将不用的数据和程序代码或者留在虚拟存储器中或者存储于硬盘驱动器中。
以页为基础的存储器管理使用页的概念,每一页通常包括4K(千字节)存储器地址。虚拟存储器使应用程序相信可以得到4G(千兆字节)存储器(对于32位寻址结构),然而实际上是在通常小于最多1M(兆字节)的实际存储器上的某个地方。这样,就必须能够将一些页从实际存储器“换”到另一个位置(如磁盘/第二存储器)。
为了允许在以页为基础的存储器管理(例如“INTEL”公司的386和486微处理器,下文中称作“i386/i486”)中进行交换,通常提供一个分页系统用于映射和定位每个单页。通过建立和维持页表来实现映射,该表将每一页的位置列入一个页表条目(PTE)。这样,当应用程序需要某一特定页时,便可以通过扫描一个页表来得到这一页的位置。PTE包含页地址以及指示最近使用情况的被访问/未被访问标记。
为了试图最高效率地换入和换出实际存储器,给操作系统提供了一个时效器(ager)。时效器的目的是当需要空间时将近期最少使用过的页换出去。那些在最近不曾使用过的页将首先被指定列入“闲”页清单,然后在必要时被替换出去。这样,如果有一些页没有被使用,那么更有效的办法是将它们放到(外)存储器(即磁盘)中而不是让它们占用实际存储器中的那些可能被需要的空间。所以,时效器和分页系统联合工作以跟踪一页的位置并将实际需要的那些页保持在实际存储器中。
基本操作系统性能的一个关键性决定因素是以分页为基础的存储器管理的性能,因为它能直接影响工作区(workingset)、响应时间和容量(Capacity)各方面系统的其他性能。这样,认真设计基本存储器管理是绝对必要的。在现代微处理机中,存在对分页存储器管理的支持,但都是有限的。
分页存储器管理的效率直接受下列因素的影响(1)“时效(aging)”的有效性和效率,(2)正确识别不再属于工作区内的各页,以及(3)时效周期的长度。通过缩短时效周期,通常将使工作区也出现成比例的减小。对于提交任务过多的系统,必须使时效器足够有效,因为缺少这种有效性将使错误页面占据实际存储器。
在“i386/i486”之类某些现代微处理器的以分页为基础的存储器管理体系结构中,存在有对应于存储器中每一页的PTE,如前面已经描述过的那样。页表条目存于页表中,每个过程有它自己单独的一组页表和PTE。每次一页的内容被访问时,便由基本硬件在对应于该页的PTE中置“被访问”标志。这个标志告知时效器自从对那个页表的最后一次时效服务(agingservice)或周期以来该页已被访问过(或未被访问过)。时效器在扫描PTE后便清除该标志。通常,时效器必须扫描系统中所有过程的全部页表以完成一个时效周期。时效器周期性地扫描所有PTE,检查各位的状态,并采取相应的动作,这些动作可能包括将近期未被访问的页划分出去(Pagingout)。在“i386/i486”微处理器中,对于识别确切的页访问图象(包括访问的确切顺序)所给予的支持只限于PTE中的“被访问/未被访问”位。在基本硬件中,没有提供告知分页存储器管理子系统页访问确切顺序的页计时标记。
精心地利用分配给时效器的时间是很重要的(1)在其选择的识别要被划分出去的下一组页面这个任务方面,时效器应该是高效率的,(2)在识别需要被划分出去的页面方面时效器应该是准确的。在这方面的不正确决定能显著增加将页面错误地划分出去的情况,增加对实际存储器的需求,并最终降低系统的竞争力。时效器所消耗的中央处理单元(CPU)时间以占用系统中其他过程的时间为代价,而一个完整的时效周期能占用几个CPU时间片(timeslice)。为了有效地利用被时效器消耗的资源(例如CPU时间),时效器将这些可得到的资源适当地分配给不同的过程是重要的。
除了时效器功能的效率之外,利用优越的选择方法来选择列入“闲页清单”从而在其后将被划分出去的页面也是重要的。当前的系统利用一种“近期最少使用过(leastrecentlyused)(LRU)方法”近似来将一页换出存储器。这种方法经常能导致错误的决定,特别是对于高度动态和委托任务过多的系统更是如此。如前面描述过的那样,一旦设置了对应于两个实际页的访问标记,操作系统没有办法确定哪一页是先访问的。此外,一旦对应于两个不同页的两个PTE的被访问标志被复位,则操作系统无法确定哪一个是最后被访问的。这样,完全有可能时效器选择一个不正确的页(即最近使用过的页),使其被换出去。
例如,当扫描PTE时,时效器可能选出两个访问标志复位的PTE,对于时效器而言,这意味着自这些标志最后一次复位后这些页未被访问过。时效器将把这两页统统指定列入闲页清单(即将被划分出去的潜在候选页清单)并最终将它们都划分出去,如果这些页不能在足够近的时间内被访问的话。换句话说,从时效器的角度来看,这两页是被同等对待的。然而,一页会是使用率很高的(例如包含使用率高的软件代码的一页),但它恰好在刚才的瞬间未被访问,而另一页可能是真正的使用率低的一页。然而,在未来第一页被访问的概率高于第二页。由于时效器的局限性,有可能在需要将一页划分出去时将第一页(即高使用率的那一页)选中,因为从时效器的有限观察能力来看,这两页看来是同样的。所以,如果第一页被换出去之后又需要被参照,便将发生页错(pagefault)。一个页错通常会引起处理时间的延迟,因为在对该页定位并将其换回到实际存储器时,在运行的过程必须暂停。
每当一页被访问时,便在相应的PTE中设置被访问位标志。时效处理过程按顺序扫描PTE以识别出已被访问/未被访问的页,最后将未被访问的页面列入闲页清单,这些页可能被划分出去。扫描过程先天地是费时间的。并不是一个页表中的所有PTE都需要被扫描,因为只有对应于这些PTE的页面的一个子集将存在于实际存储器中。通常,大量的PTE可能要被扫描仅只是为了找出与实际存储器中存在的一个页面相对应的一个条目。实质上非常大量的PTE可能要被扫描是为了确定与实际存储器中存在的各页对应的PTE的位置。
这样,需要一种在计算机系统中更有效地管理存储器的方法和设备。特别是,需要一种在以分页为基础的存储器管理中更有效地利用时效器的方法和设备。
这里公开的发明包括更有效地利用时效器的方法和设备,它基本上消除或减少了先有技术的时效器所存在的问题。这里所描述的方法和设备通过建立类别使各个过程安排到这些类别中来提高时效器的效率。
根据本发明的一个方面,提供了一种提高时效器效率的方法。在一个计算机系统中的所有过程被分类到一组类别中。然后,根据被访问/未被访问历程将取自这些过程的页潜在地换出实际存储器。
在一个实施例中,将过程放入四个不同类别之一。如果在一次时效服务之后该过程已接受的CPU时间片数目大于预定数目,该过程为1类。如果在一次时效服务之后该过程已接受的CPU时间片数目小于预定数目,该过程为2类。如果在一次时效服务之后该过程尚未接受过CPU时间片,该过程为3类。如果经过预定次数时效服务之后,该过程一直未曾接受过CPU时间片,该过程为4类。将必需确定可能要换出的页时,按照先是4类然后是1类然后是2类的顺序向各过程提供时效服务。
此外,可以建立一个表来维持对每个过程计划分配给它的每个CPU时间片。每次时效器“观察”那个过程或者说完成对该过程的一次时效服务,被分配时间片计数便被复位。
本发明的一个技术优点是将正确的下一个过程指定给时效器去进行时效服务。通过对过程分类,当时间很重要时,即当系统分配任务过多而现在需要实际存储器空间时,时效器将能够去观察正确的过程。
为了更全面地理解本发明及其优点,现在参考“详细描述”及其附图。其中

图1是虚拟存储器、实际存储器及外存储器相互关系的图形表示;
图2是根据先有技术的页表和页表条目;
图3是根据本发明使用的表格式;
图4是一个流程图,说明根据本发明的调度一分配程序(Scheduler-disPatcher)的流程。
图5是一个流程图,说明每次时效器得到一个CPU时间片时本发明的动作;以及图6是根据本发明的一个数据处理系统的示意图。
首先参考图1,存储器系统的图形表示总体上由参考数字10标识。当写一个计算机程序时,它是在理解成可寻址使用的可用存储器大于实际上物理存在的存储器的情况下写成的。通常,提供4千兆字节(G)虚拟(即不是实际存在的)可寻址存储器12。尽管实际存储器(RAM)14的容量随计算机系统而变化,但所能得到的实际存储器14总是小于虚拟存储器12。如图1所示,存储器14有nM(兆字节)存储器,这里n表示一个可变数,通常在5和64之间。这样,对计算机硬件可能提供一个外存储设备16,例如一个硬盘驱动器,和实际存储器14联合使用。
当一个过程(即一个计算机程序)在一个计算机系统中运行时(见图5),如参考数字18所指示的一个页面(包含4K数据)可以从虚拟存储器12传送到实际存储器14。各页面从虚拟存储器向实际存储器的传送没有特定的顺序,所以在虚拟存储器12中按顺序排列的页面可以不是实际存储器中按顺序排列的页面。
一旦在计算机系统上运行的过程已经用到该页,另一个过程可能需要实际存储器14中的物理空间。如果没有可使用的空间,则必须将实际存储器14中的一页从实际存储器14“换出”到存储设备16。再有,如果一个过程需要已被放入存储设备16中的一页,那么那一页必须从存储设备16换回到实际存储器14中。
一个以分页为基础的存储器管理的任务就是在虚拟存储器12、实际存储器14及存储设备16之间映射(map)和定位各个页面。参考图2,在以“i386/i486”为基础的微处理机中,以分页为基础的存储器管理通常使用一个页表30,它包括许多页表条目32。每个页表条目32由地址部分34和一系列信息位或标志36组成。信息标志36用于多种目的,例如,指示该页在实际存储器中是否存在。指示该页是否为读/写页等等,还包括一个被访问/未被访问标志,图中用参考数字38表示。标志38的目的是允许以分页为基础的存储器管理系统力图跟踪一个页面是否在最近已被使用或未被使用。标志38是在每次该页被访问时由基本硬件(i386/i486芯片)设置。
与以分页为基础的存储器管理相结合,使用一个时效器来辅助实际存储器14和存储设备16之间的交换。该时效器的目的是扫描被访问/未被访问标志38,并在实际存储器14中需要空间时将近期最少使用页(leastrecentlyusedpaqes)从实际存储器14换到存储设备16。由于时效器从单一的被访问/未被访问标志38所能得到的信息量有限,时效器选出错误的页从实际存储器14中换出是可能的。这种可能性是由于如下事实造成的一旦对不同的PTE设置了标志38,时效器无法知道哪一个标记38是最新近设置的。再有,一旦时效器扫描全部PTE,标志38被复位,因而无法确定哪一页是最后被访问的。
时效器以操作系统其余部分为代价来完成它的全部工作。如果该系统是空闲的,有大量时间供时效器去做它的事,如果不然,则时效器必从操作系统“偷”时间以保证有足够多页被列入“闲”清单(一个预定页数的清单,这些页最后一次时效器扫描以来未被访问过,每当必须从实际存储器换出一页时便使用这个清单)。
操作时,时效器必须走过每个过程的每个页表中的每个页表条目以发现哪一个在近期被访问过/未被访问过。如果标志38被置位,这一页是已被用过的。如果标志38未被设置,这一页是未曾被用过的,时效器能把该页列入闲页清单。
操作系统的一部分称作“调度程序”,它与时效器独立地工作。调度程序的任务是对正在运行的不同过程分配CPU时间。调度程序利用某种优先系统来给各个过程分配时间。因为时效器不与调度程序一起工作,时效器不知道一个过程在调度程序的优先清单中的位置。这样,一个在调度程序的清单上处于高优先级的过程有可能在得到CPU时间去运行该过程的那一页之前被时效器将该页换了出去。所以,会发生一个错误,造成时间和效率的损失。
时效器最好应该向那些自上一次对该过程完成时效周期以来被访问过或被给予过CPU时间的那些过程提供时效服务,也就是那些真有被访问的可能性的页。另外,系统中还将有一些过程,它们由于各种原因将不会得到任何CPU时间,因此应该成为被替换出去的“强有力候选者”。如果存在这类过程,时效器应给那些未用过程以较高优先级并把它们替换出去,因为有较大可能性它们在最近的将来不会被访问。
例如,使用先有技术的分页存储器管理时,那些未曾得到任何CPU时间的过程即使处于调度程序的高优先级上也会由于未被访问而受到不公正的处罚。N个运行于完全相同调度优先级的过程中可能有M个过程自上次时效周期以来未曾得到任何CPU时间。这样,只观察那些实际得到过CPU时间的(N-M)个过程可能是更正确的作法。
这样,为了只考察真正使用率低的那些过程或实际接收过CPU时间的过程,本发明在这里提供了多个不同的类别,所有的过程都能归到这些类别中。在一个最佳实施例中,这组类别的组成是1类-自上一次时效服务以来已经重复得到CPU时间片的那些过程;
2类-自上一个时效周期以来已经得到过一些CPU时间片但少于某一预先选择的门限值的那些过程;
3类-自上一个时效周期以来未曾得到任何CPU时间片的那些过程;以及4类-在若干个(由另一个门限值预先确定)时效周期期间一直未曾得到CPU时间片的那些过程。
参考图3,根据本发明构成一个格式化表50,对计算机系统中的每个过程在表中有一个条目。每个条目包括自上次时效服务以来该过程得到的CPU时间片数量的一个记录。每次一个过程从调度程序得到一个时间片,计数器C1(由参考数字54表示)中的计数便增加1。每次时效器对一个过程给予时效服务,计数器54便将复位。第二个计数器C2(由参考数字56表示)将记录时效器对那个过程检测出“未被分配时间”的次数。在计数器C1中的“0”值将指出那个过程“未被分配时间”。例如,如果对于两个相继周期时效器检测到该过程未曾得到任何CPU时间,则计数器C2将含有值“2”。当该过程收到一个CPU时间片时C2计数器便被复位。
如果一个过程的C1计数在一定的预定门限值范围内,而且C2计数为零,则该过程被分到2类。如果一个过程的C1计数为零而C2计数在一定的预定门限值范围内,则该过程被分到3类。对每个计算机系统通过调节和测量可以确定其准确的门限值。
C2计数器的高值(大于3类所采用的最大门限值)表明相应的过程未曾得到任何时间片,而且可能该过程的优先级很低或者是低使用率类型的过程,所以看作是页面要被划分出去的好候选者。这种过程被归于4类。
类似地,C1计数器的很高值(大于2类所采用的最大门限值)和C2计数器中的“0”值表明该过程未曾得到时效服务和一直得到大量CPU时间。C1计数器中的高值将表明“近期最少使用”信息会造成“模糊”,即难于确定实际页访问的顺序。有C1高值和C2“0”值的过程被归于1类。
这样,四类别为时效器扫描页表条目以得到替换出去的页面提供了建立一个顺序所需要的信息。在最佳实施例中,扫描的顺序是4类、1类、最后是2类。3类将不被扫描,因为那会有太高的概率使错误的页被替换出去。
现在参考图4和图5,图中显示了本发明的流程图。首先参考图4,图中显示出描述调度程序与本发明结合执行的流程图。在块60,识别出一个将要得到CPU时间片的过程。在块62,表50(见图3)中对应于该过程的计数器C1增加1。在块64,该流程继续以时间片给予在块60识别出的那个过程。
下面参考图5,图中给出每次时效器得到一个CPU时间片的本发明的过程的流程图。在块66时效器开始,接着是在块68选择表50(见图3)中的第一个条目。在决策块70,确定计数器C1是否为零。如果对决策块70的反应是“是”,则在块72使计数器C2加1。如果对决策块70的反应是“否”,则说明计数器C1大于零,于是在块74对计数器C2复位。在决策块76确定是否所有条目都被“光顾”过或者说服务过。如果对决策块76的反应为“否”,则在块78选择下一个条目,然后返回决策块70。如果对决策块76的反应为“是”,则在块80由时效器继续从表50(见图3)中选择第一个条目。在决策块82,确定计数器C1是否大于Z1(Z1是可调节的门限值)以及C2是否等于零。如果对决策块82的反应为“是”,在块84对该条目标记为1类。如果对决策块82的反应为“否”,则在决策块86确定计数器C1是否小于t1和大于t2(t2是第二个可调节门限值),以及是否计数器C2等于零。如果对决策块86的反应为“是”,则在块88对该条目标计为2类。如果对决策块86的反应为“否”,则在决策块90确定计数器C1是否等于零以及计数器C2是否大于t3(t3是第三个可调节门限值)和小于t4(t4是第四个可调节门限值)。可调节门限值t1、t2、t3和t4将随系统而变,而且依赖于工作负载特性。如果对决策块90的反应为“是”,则在块92对该条目标记为3类。如果对决策块90的反应为“否”,则决策块94确定计数器C1是否等于零及计数器C2是否大于t4。如果对决策块94的反应为“是”,则在块96对该条目标记为4类。如果对决策块94的反应为“否”,或者在块84、88、92及96之后,在决策块98确定是否所有条目都已被光顾过。如果对决策块98的反应为“否”,则在块130选择下一个条目,然后返回块82。如果对决策块98的反应为“是”,则首先在块132对所有标为4类的过程提供时效服务(当能得到CPU时间的时候)。然后在块134。由时效器对所有标为1类的过程提供时效服务(当能得到CPU时间的时候)。在块136,时效服务提供给所有标为2类的条目(当能得到CPU时间的时候)。在完成块136之后,时效器在块138退出,于是该周期结束。
下面参考图6,图中以框图形式给出根据本发明的一个数据处理系统,它总体上用参考数字100标识。系统100包括处理器102,它包括中央处理单元(CPU)104和存储器106。以硬盘存储器108形式的附加存储器和软盘设备110与处理器102相连。软盘设备接受软盘112,软盘112中记录有在系统100中实现本发明的计算机程序代码。系统100包括用户接口硬件,包括鼠标器114和键盘116让用户向处理器102输入以及显示器118用于向用户显示可见数据。系统100也可以包括打印机120。
虽然已经参考一个最佳实施例具体显示和描述了本发明,精通本领域技术的人们将会理解,可以在形式和细节上做各种改变而不偏离本发明的精神和范围。
权利要求
1.在一个可以运行多个过程的计算机系统的以分页为基础的存储器管理中提高时效器有效性的一种方法,其将点在于下列步骤将每个过程归类到一组类别中的一类;以及根据所述类别和被访问/未被访问历程将过程的一些页面指定列入闲页清单。
2.如权利要求1的方法,这里分类步骤的特点是用预先确定的判据评价各个过程以将这些过程放入四个不同类别之一。
3.如权利要求2的方法,其特点在于所述评价步骤包括如果在一次时效服务之后该过程已得到多个中央处理单元时间片,且其数目大于预定数目,则把该过程放入第一类;如果在一次时效服务之后该过程已得到的中央处理单元时间片数目小于预定数目,则把该过程放入第二类;如果在一次时效服务之后该过程未曾得到过中央处理单元时间片,则把该过程放入第三类;以及如果在预定次数时效服务之后该过程还不曾得到过中央处理单元时间片,则把该过程放入第四类。
4.如权利要求3的方法,其特点在于“指定”步骤包括首先向来自所述第四类的页面提供时效服务;如果需要,则接着向来自所述第一类的页面提供时效服务;以及如果需要,则接着向来自所述第二类的页面提供时效服务。
5.如权利要求1的方法,其特点在于下述步骤构成一个表,用以保持对每个过程分配到中央处理单元时间片的次数计数和对时效器检测到没有被分配到时间片的检测次数计数。
6.如权利要求5的方法,其特点在于下述步骤每次时效器对该过程提供服务时,将所述时间片计数复位。
7.在一个可以运行多个过程的计算机系统的以分页为基础的存储器管理中提高时效器有效性的一个系统,其特点在于一组类别,每个过程将被分类到这组类别中,所述类别建立起时效器提供服务的优先级。
8.如权利要求7的系统,这里所述一组类别的特点在于第一类接收的过程,是在一次时效服务后所收到的中央处理单元时间片数目大于一个预定数目的过程;第二类接收的过程,是在一次时效服务后所收到的中央处理单元时间片数目小于所述预定数目的过程;第三类接收的过程,是在一次时效服务后未曾收到中央处理单元时间片的过程;以及第四类接收的过程,是在预定次数时效服务后还未曾收到中央处理单元时间片的过程。
9.如权利要求7的系统,其特点在于一个表,用以保持对每个过程分配到中央处理单元时间片的次数计数和对时效器检测到没有被分配到时间片的检测次数计数。
10.有效地利用一个分页为基础的存储器管理中的时效器的计算机系统,其中可以运行多个过程,其特点是将每个过程分类到一组类别之一的装置;根据所述分类和被访问/未被访问历程将过程的一些页面指定分配到闲页清单的装置。
11.如权利要求10的系统,其特点在于所述分类装置包括以预定制据评价过程从而将过程放入四个不同类别之一的装置。
12.如权利要求11的系统,其特点在于所述评价的装置包括如果一个过程在一次时效服务后已得到的中央处理单元时间片的数目大于一个预定数目则将该过程放入第一类的装置;如果一个过程在一次时效服务后得到的中央处理单元时间片数目少于所述预定数目则将该过程放入第二类的装置;如果一个过程在一次时效服务后未曾得到过中央处理单元时间片则将该过程放入第三类的装置;以及如果一个过程在预定次数时效服务后还未曾得到过中央处理单元时间片则将该过程放入第四类的装置。
13.如权利要求12的系统,其特点在于上述的指定装置包括首先对来自所述第四类的页面提供时效服务的装置;如果需要则接着向来自所述第一类的页面提供时效服务的装置;以及如果需要则接着向来自所述第二类的页面提供时效服务的装置。
14.如权利要求10的系统,其特点是构成一个表的装置,该表用以保持对每个过程分配到中央处理单元时间片的次数计数和对时效器检测到没有被分配到时间片的检测次数计数。
15.如权利要求14的系统,其特点在于每次时效器访问一个过程时对所述被分配时间片的计算复位的装置。
全文摘要
本发明中建立了四个类别,用于对利用时效器和以分页为基础的存储器管理的计算机系统上的所有过程进行分类。第一类将包括自上次时效器服务以来反复接受中央处理单元(CPU)时间片的所有过程。第二类将包括自上次时效器服务以来接受CPU时间片数目少于某一预选门限值的所有过程。第三类将包括自上次时效器服务以来未曾接受过CPU时间片的所有过程。第四类将包括在时效器服务过某一预定次数期间未接受过CPU时间片的所有过程。
文档编号G06F12/02GK1094172SQ9310320
公开日1994年10月26日 申请日期1993年3月22日 优先权日1992年4月22日
发明者施瑞肯特·N·帕瑞科 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1