进程工作集

 

    一个进程当前使用的页的集合叫做它的工作集(working set)。如果整个工作集都在内存中,在进入下一个运行阶段之前进程的运行不会引起很多页面故障。如果内存太小无法容纳整个工作集,进程运行将引起大量的页面故障并且速度十分缓慢。一个每隔几条指令就发生一次页面故障的程序被称为是在颠簸

    现代计算机系统中内存的访问速度远远高于外存的访问速度。如果系统中不产生缺页中断,则访问数据的时间约等于内存访问时间。但是如果发生缺页中断,则需要从外存中将该页调入,因此会大大降低系统性能。通过对缺页率的长期研究,Denning提出了工作集理论。由于程序在运行时对页面的访问是不均匀的(即局部性),如果能够预知程序在某段时间内要访问那些页面,并将它们提前调入内存,这将降低缺页率,提高CPU利用率。

进程工作集

    因为频繁的调页操作引起的磁盘I/O会大大降低程序的运行效率,因此对每一个进程,虚拟内存管理器都会将其一定量的内存页驻留在物理内存中。并跟踪其执行的性能指标,动态调整这个数量。Win32中驻留在物理内存中的内存页称为进程的"工作集"workingset),进程的工作集可以通过"任务管理器"查看,其中"内存使用"列即为工作集大小。

    工作集是会动态变化的,进程初始时只有很少的代码页和数据页被调入内存。当执行到未被调入内存的代码或者访问到尚未调入内存的数据时,这些代码页或者数据页会被调入物理内存,工作集也随之增长。但工作集不能无限增长,系统为每个进程都定义了一个默认的最小工作集(根据系统物理内存大小,此值可能为20~50 MB)和最大工作集(根据系统物理内存大小,此值可能为45~345 MB)。当工作集到达最大工作集,即进程需要再次调入新页到物理内存中时,虚拟内存管理器会将其原来的工作集中的某些页先置换出内存,然后将需要调入的新页调入内存。

    因为工作集的页驻留在物理内存中,因此对这些页的访问不涉及磁盘I/O,相对而言非常快;反之,如果执行的代码或者访问的数据不在工作集中,则会引发额外的磁盘I/O,从而降低程序的运行效率。一个极端的情况就是所谓的颠簸或抖动(thrashing),即程序的大部分的执行时间都花在了调页操作上,而不是代码执行上。

    如前所述,虚拟内存管理器在调页时,不仅仅只是调入需要的页,同时还将其附近的页也一起调入内存中。综合这些知识,对开发人员来说,如果想提高程序的运行效率,应该考虑以下两个因素。

    (1)对代码来说,尽量编写紧凑代码,这样最理想的情形就是工作集从不会到达最大阀值。在每次调入新页时,也就不需要置换已经载入内存的页。因为根据locality特性,以前执行的代码和访问的数据在后面有很大可能会被再次执行或访问。这样程序执行时,发生的缺页错误数就会大大降低,即减少了磁盘I/O,在图5-6中也可以看到一个程序执行时截至当时共发生的缺页错误次数。即使不能达到这种理想情形,紧凑的代码也往往意味着接下来执行的代码更大可能就在相同的页或相邻页。根据时间locality特性,程序80%的时间花在了20%的代码上。如果能将这20%的代码尽量紧凑且排在一起,无疑会大大提高程序的整体运行性能。

    (2)对数据来说,尽量将那些会一起访问的数据(比如链表)放在一起。这样当访问这些数据时,因为它们在同一页或相邻页,只需要一次调页操作即可完成;反之,如果这些数据分散在多个页(更糟的情况是这些页还不相邻),那么每次对这些数据的整体访问都会引发大量的缺页错误,从而降低性能。利用Win32提供的预留和提交两步机制,可以为这些会一同访问的数据预留出一大块空间。此时并没有分配实际存储空间,然后在后续执行过程中生成这些数据时随需为它们提交内存。这样既不浪费真正的物理存储(包括调页文件的磁盘空间和物理内存空间),又能利用locality特性。另外内存池机制也是基于类似的考虑。

    此外,工作集和驻留集不同,驻留集指当前在主存中的页面集,而工作集指不久后所需要的页面集。

    resident set, In a virtual memory system, a process' resident set is that part of a process' address space which is currently in main memory. If this does not include all of the process' working set, the system may thrash.

    working set, The working set of a program or system is that memory or set of addresses which it will use in the near future.This term is generally used when discussing miss rates at some storage level; the time scale of "near future" depends upon the cost of a miss. The working set should fit in the storage level; otherwise the system may thrash.

 

 

http://book.51cto.com/art/201006/203597.htm

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1 虚拟存储器原理:虚拟存储器是一种内存管理技术,它可以将计算机系统中可用的物理内存分割成多个虚拟内存空间,以减轻用户程序和操作系统之间的竞争,并为每个用户程序提供大量的虚拟内存。 2. 缺页中断:缺页中断是当操作系统尝试读取或修改一个内存页时发生的中断,这个内存页不在系统的虚拟内存页表中,这种中断可由程序出现错误而引起。 3. 请求分页管理系统:请求分页管理系统是一种内存管理技术,它可以根据用户程序的需要在内存和外存之间进行页面的交换,以满足用户程序的内存需求。 4. 页面置换算法:页面置换算法是操作系统用来管理内存空间的算法,它可以根据用户的内存需求,选择恰当的时机将内存中的某些页面置换到外存中,以便释放出更多的内存空间。 5. 什么是抖动(颠簸):抖动(颠簸)是指当系统处理大量小型任务时,会出现大量的内存页面置换,从而引起系统性能的下降。 6. 为什么会出现抖动:抖动主要是由于操作系统页面置换算法不够有效所导致的,当大量的小型任务交替执行时,操作系统效率低下,页面置换的频率增加,就会导致系统出现抖动。 7. 系统资源利用率与驻留内存的进程数之间的关系:系统资源利用率和驻留内存的进程数之间存在一定的关系,当系统资源利用率升高时,驻留内存的进程数也会增加,从而减少系统的可用内存。 8. 什么是进程工作进程工作是指在某个时刻,一个进程所需要的内存页面的合。它是由进程的程序代码、数据、堆栈、共享库等所组成,它们共同构成了进程的内存空间。 ### 回答2: 1. 虚拟存储器原理是一种操作系统技术,将物理内存和磁盘空间进行管理和调度,使得程序能够运行在一个比实际内存更大的虚拟内存空间中。它基于分页机制,将内存划分成固定大小的页面,对应于磁盘上的页面文件,通过页面置换算法将需要的页面从磁盘加载到内存中进行处理。 2. 缺页中断是指当CPU需要访问一个不在内存中的页面时,操作系统会产生一个中断来处理这个缺页事件。缺页中断会触发页面置换算法,将磁盘上的页面换入内存,并将不再需要的页面换出到磁盘,以满足程序对内存的需求。 3. 请求分页管理系统是一种内存管理技术,实现了虚拟存储器原理。它将程序的虚拟地址空间划分为固定大小的页面,当程序运行时,只有当前需要的页面才会加载到内存中。通过缺页中断和页面置换算法,实现了内存与磁盘的动态管理和调度。 4. 页面置换算法是用于虚拟存储器中缺页中断产生时选择要置换出去的页面的算法。常见的页面置换算法有最佳(OPT)算法、最近未使用(LRU)算法和先进先出(FIFO)算法等。这些算法根据不同的页面使用策略来选择置换页面,以最大程度地提高系统在有限内存下的性能。 5. 抖动(颠簸)是指系统频繁发生缺页中断并进行页面置换的现象。当系统内存不足时,频繁地从磁盘中加载页面到内存,然后再换出页面到磁盘,导致系统性能下降。 6. 抖动的出现有两个主要原因。一是系统的物理内存不足以容纳当前运行的程序所需的全部页面,导致频繁的页面置换;二是系统中运行的进程之间的资源竞争过于激烈,导致内存资源被不断激活,造成频繁的缺页中断。 7. 系统资源利用率与驻留内存的进程数之间存在关系。当进程数增加时,每个进程可获得的内存资源减少,导致系统资源利用率下降。同时,较多的进程数可能增加页面置换次数,导致系统抖动现象。因此,合理的进程数与系统的内存容量之间需要进行平衡,以保证系统资源的充分利用。 8. 进程工作是指进程在一段时间内访问的页面合。进程工作的大小决定了进程的内存需求,对于虚拟存储器来说,将工作中的页面尽可能保持在内存中,可以减少缺页中断的发生和页面置换的次数,提高系统的整体性能。 ### 回答3: 1. 虚拟存储器原理是指计算机操作系统将物理内存和磁盘存储结合起来,使得磁盘上的一部分空间可以被用作扩展内存,从而满足内存需求超过物理内存容量的情况。虚拟存储器将磁盘上的数据按照页面的形式划分,并与物理内存进行映射,当进程需要访问不在物理内存中的页面时,操作系统会将该页面从磁盘加载到内存中。 2. 缺页中断是指当进程需要访问的页面不在物理内存中时,操作系统会产生一个中断,即缺页中断。此时,操作系统会根据页面置换算法选择一个页面进行置换,腾出物理内存空间用于装载需要访问的页面。 3. 请求分页管理系统是一种处理虚拟存储器和页面置换的管理系统。它根据进程的访存需求,将访问请求分为两种:一种是缺页中断请求,表示页面不在物理内存中,需要从磁盘加载到内存;另一种是访问合法性验证请求,表示页面在物理内存中,可以直接访问。请求分页管理系统根据这些请求进行相应的操作,保证进程的正常运行。 4. 页面置换算法是为了解决物理内存空间不足而选择替换页面的方法。常见的页面置换算法有:最佳置换算法、最近最久未使用算法、先进先出算法等。这些算法根据一定的原则和策略来选择待置换页面,以达到尽量提高内存利用率和减少缺页中断次数的目的。 5. 抖动是指在系统资源紧缺的情况下,频繁地进行页面置换所导致的系统性能下降现象。当系统内存不足以容纳当前正在运行进程工作时,操作系统会频繁地进行页面置换,导致系统运行速度变慢,系统响应时间增加。 6. 出现抖动的原因是系统资源不足以满足进程的内存需求。当系统驻留内存中的进程数过多,每个进程工作都无法完全保存在物理内存中时,系统就会频繁地进行页面置换,这样会导致抖动。 7. 系统资源利用率与驻留内存的进程数之间存在一定关系。当系统驻留内存的进程数过多时,每个进程能够使用的内存空间就较少,可能会导致内存不足以容纳进程工作,进而引起频繁的页面置换,降低系统资源的利用率。 8. 进程工作是指进程当前正在使用的物理内存中的页面合。它包含了进程在运行过程中访问的页面,以及与这些页面相关的页面。进程工作的大小直接影响着页面置换算法的选择和效果,较大的工作可以减少缺页中断次数和页面置换的频繁性,提高系统性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值