虚拟存储器的设置技巧是什么

虚拟存储器的设置技巧是什么,第1张

虚拟存储器的概念是相对于物理存储器而言的,当系统的物理存储器空间入不敷出时, *** 作系统便会在硬盘上开辟一块磁盘空间当做存储器使用,这部分硬盘空间就叫虚拟存储器。Windows 98中采用Win386swp档的形式,而Windows 2000/XP则采用页面档pagefilesys的形式来管理虚拟存储器。 一、大小情况1一般情况一般情况下,建议让Windows来自动分配管理虚拟存储器,它能根据实际存储器的使用情况,动态调整虚拟存储器的大小。2关于最小值Windows建议页面档的最小值应该为当前系统物理存储器容量再加上12MB,而对于物理存储器容量小于256MB的用户,则建议将页面档的最小值设得更大些:①使用128MB或者更少存储器的用户,建议将当前物理存储器容量的175倍设置为页面档的最小值。②存储器大小在128MB到256MB之间的用户,建议将当前物理存储器容量的15倍设置为页面档的最小值。3关于最大值一般来说,页面档的最大值设置得越大越好,建议设置为最小值的2到3倍。4极端情况假如硬盘空间比较紧张,在设置页面档时,只需保证它不小于物理存储器的3/4即可。如果物理存储器很大(大于512MB),则可以将虚拟存储器禁用。5根据不同的任务环境设置①以3D游戏为主的环境3D游戏对CPU、显卡和存储器要求都很高,如果物理存储器小于256MB,建议把虚拟存储器预设得大一点,这对提高游戏的稳定性和流畅性很有帮助。②以播放视频为主的环境视频应用对硬盘空间的“胃口”很大,不过千万不要像在3D游戏环境中一样把虚拟存储器设得很大,尤其是Windows XP的用户。因为Windows XP不会自动把不需要的空间释放掉,也就是说那个Pagefilessys档会越来越大。如果你把虚拟存储器和Windows XP放在同一分区,播放RM、ASF等视频流档以后,系统经常会提示你虚拟存储器设得太小或是磁盘空间不足。查看此时的页面档,已经足有1GB大小了。所以建议经常欣赏视频档的Windows XP用户,把初始数值设小一点,或者将虚拟存储器转移到系统盘以外的分区。二、设置方法下面以在Windows XP下转移虚拟存储器所在盘符为例介绍虚拟存储器的设置方法:进入“打开→控制面板→系统”,选择“高级”选项卡,点击“性能”栏中的“设置”按钮,选择“高级”选项卡,点击“虚拟存储器”栏内的“更改”按钮,即可进入“虚拟存储器”窗口;在驱动器列表中选中系统盘符,然后勾选“无分页档”选项,再单击“设置”按钮;接着点击其他分区,选择“自定义大小”选项,在“初始大小”和“最大值”中设定数值,然后单击“设置”按钮,最后点击“确定”按钮退出即可。

传统存储管理

特征

时间局部性:如果执行了程序中的某条指令,那么不久后这条指令很有可能再次执行;如果某个数据被访问过,不久之后该数据很可能再次被访问(因为程序中存在大量循环)

空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元很有可能被访问(因为很多数据在内存中是连续存放的,并且程序的指令也是顺序地在内存中存放的

寄存器

高速缓存

内存

外存(如磁盘、磁带等)

越往上容量越小,访问速度越快,成本越高

越往下容量越大,访问速度越慢,成本越低

高速缓存技术的思想:将近期会频繁访问到的数据放到更高速的存储器中,暂时用不到的数据放在更低速存储器中

快表机构就是将近期常访问的页表项副本放到更高速的cache中

基于局部性原理,在程序装入时,可以将程序中很快就会用到的部分装入内存,暂时用不到的部分留在外存,就可以让程序开始执行

在程序执行过程中,当所访问的信息不在内存时,由 *** 作系统负责将所需信息从外存调入内存,然后继续执行程序

若内存空间不够,由 *** 作系统将内存中暂时用不到的信息换出到外存

因此,在 *** 作系统的管理下,在用户看来似乎有一个比实际内存大得多的内存,这就是虚拟内存

*** 作系统虚拟性的一个体现,实际的物理内存大小没有变,只是在逻辑上进行了扩充

虚拟内存的最大容量是由计算机的地址结构(CPU寻址范围)确定的

虚拟内存的实际容量 = min(内存外存容量之和,CPU寻址范围)

虚拟内存有以下三个主要特征

虚拟内存技术,允许一个作业多次调入内存。如果采用连续分配方式,会不方便实现。因此,虚拟内存的实现需要建立在离散分配的内存管理方式基础上

传统的非连续分配存储管理

基本分页存储管理

基本分段存储管理

基本段页式存储管理

虚拟内存的实现

请求分页存储管理

请求分段存储管理

请求段页式存储管理

主要区别:在程序执行过程中,当所访问的信息不在内存时,由 *** 作系统负责将所需信息从外存调入内存,然后继续执行程序。若内存空间不够,由 *** 作系统负责将内存中暂时用不到的信息换出到外存

*** 作系统要提供请求调页/段功能、页面/段置换功能

请求分页存储管理和基本分页存储管理的主要区别

页表机制

页表项:内存块号、状态位、访问字段、修改位、外存地址,页号时隐含的

内存块号是页面在内存中对应的页框号,如果状态位为0,则内存块号为无

状态位表示是否已被调入内存

访问字段记录最近被访问过几次,或者上次访问时间,由此 *** 作系统能够提供置换算法

修改位记录页面被调入内存后是否被修改过,如果没有,就不需要浪费时间写回外存

外存地址是页面在外存中的存放位置

缺页中断机构

在请求分页系统中,每当要访问的页面不在内存时,便会产生一个缺页中断,然后由 *** 作系统的缺页中断处理程序处理中断(内中断)

此时缺页的进程阻塞,放入阻塞队列,调页完成后再将其唤醒,放回就绪队列

如果内存中有空闲块,则为进程分配一个空闲块,将所缺页面装入该块,并修改页表中相应的页表项

如果内存中没有空闲块,则由页面置换算法选择一个页面淘汰,若该页面在内存期间被修改过,则要将其写回外存,为修改过的页面不用写回外存

一条指令再执行期间可能产生多次缺页中断(copy A to B)

新增的步骤

页面的换入、换出需要磁盘IO,会有较大的开销,因此好的页面置换算法应该追求更少的缺页率

缺页中断≠页面置换

发生缺页中断会发生调页,只有内存块满了才发生页面置换

最佳置换算法OPT:每次淘汰以后永不使用或最长时间内不再被访问的页面

理想化的算法,很难实现

先进先出算法FIFO:每次淘汰最先进入内存的页面

实现:把调入内存的页面根据调入的先后顺序排成队列,页面置换时换出队头页面,新调入的页面排到队尾

优点:实现简单

缺点1:belady异常,为进程分配的物理块数增大时,缺页次数不减反增的异常现象。只有FIFO会产生belady异常。

缺点2:算法与进程实际运行时的规律不适应,因为先调入的页面有可能最经常被访问,因此算法性能差

最近最久未使用置换算法LRU:淘汰最近最久未使用的页面

实现方法:赋予每个页面对应的页表项中,用访问字段记录该页面自上次被访问以来所经历的时间t

优点:性能最接近OPT

缺点:实现困难、开销大

时钟置换算法CLOCK/NRU

简单NRU:为每一个页表项设置一个访问位,再将内存中的页面都通过连接指针连成一个循环队列,当某页被访问时,访问位为1,只需检查页的访问位。如果为0,就将该页换出,否则将其改为0,暂不换出,继续向后扫描,若第一轮扫描都是1,将这也页面的访问位改为0后,进行第二轮扫描,第二轮扫描中一定会有访问位为0的页面,将其换出。因此最多经过两轮扫描

改进NRU:如果淘汰的页面没有被修改过,就不需要执行IO *** 作,只有淘汰的页面被修改过时,才需要写回外存。因此,同时考虑最近有无访问和有无修改,在其他条件相同时,优先淘汰没有修改过的页面,避免IO *** 作

第一轮:找到第一个访问位和修改位都为0的页面进行替换,如果没有找到进行下一轮扫描

第二轮:查找第一个访问位为0,修改位为1的页面进行替换,本轮将所有被扫描过的访问位设置为0,如果没有进行下一轮扫描

第三轮:查找0,0替换否则下一轮

第四轮:查找0,1替换

最多会进行四轮扫描

驻留集:请求分页管理中给进程分配的物理块的集合

在采用了虚拟存储技术的系统中,驻留集大小一般小于进程的总大小

驻留集太小,导致缺页频繁,系统要花大量时间处理缺页,实际用于进程推进的时间很少

驻留集太大,会导致多道程序并发度下降,资源利用率降低

固定分配: *** 作系统为每个进程分配一组固定数目的物理块,在进程运行期间不再改变

可变分配:先为每个进程分配一定数目的物理块,在进程运行期间,可根据情况作适当的增加或减少

局部置换:发生缺页时只能选进程自己的物理地址块进行置换

全局置换:可以将 *** 作系统保留的空闲物理块分配给缺页进程,也可以将别的进程持有的物理块置换到外存,再分配给缺页进程

不存在固定分配全局置换的策略,因为全局置换意味着一个进程拥有的物理块数量必然改变

其他三种组合存在

固定分配局部置换:系统为每个进程分配一定数量的物理块,在整个运行期间都不改变。若进程在运行中发生缺页,并且需要进行页面置换,则只能从该进程在内存中的页面中选出一页换出,然后再调入需要的页面

缺点:很难在刚开始就确定应为每个进程分配多少个物理地址块才算合理(采用这种策略的系统可以根据进程大小、优先级、或是根据程序员给出的参数来确定为一个进程分配的内存块数

可变分配全局置换:刚开始会为进程分配一定数量的物理块。 *** 作系统会保持一个空闲物理块队列,当某进程发生缺页时,从空闲物理块中取出一块分给该进程;若无空闲物理块,则选择一个未锁定的页面换出到外存,再将该物理块分配给缺页的进程。采用这种策略时,只要某进程发生缺页,都将获得新的物理块,仅当空闲物理块用完时,系统才选择一个未锁定的页面调出。被选择调出的页面可能是系统中任何一个进程的页面,因此这个被选中的进程拥有的物理块会减少,缺页率会增加

只要缺页就给该进程分配新的物理块

可变分配局部置换:刚开始会为每个进程分配一定数量的物理块,当某进程发生缺页时,只允许从该进程自己的物理块中选出一个进行页面置换。如果进程在运行过程中频繁缺页,系统会为该进程多分配几个物理块,直至该进程缺页率趋于适当程度;反之,如果缺页率太低,就是当减少分配给该进程的内存块数

要根据发生缺页的频率来动态增加或减少进程的物理块

何时调入页面

从何处调入页面

对换区:读写速度更快,采用连续分配方式

文件区:读写速度更慢,采用离散分配方式

抖动/颠簸现象:刚刚换出的页面马上要换入内存,刚刚换入的页面马上要换出外存,这种频繁的页面调度行为称为抖动/颠簸

主要原因是进程频繁访问的页面数目高于可用的物理块数(分配给进程的物理块不够)

为进程分配物理块太少会使进程发生抖动现象,为进程分配的物理块太多会降低系统的并发度降低某些资源的利用率。因此提出了“工作集”的概念

工作集:在某段时间间隔里,进程实际访问页面的集合

驻留集:请求分页存储管理中给进程分配的内存块的集合

驻留集不能小于工作集,否则进程运行过程中将频繁缺页

以下是实现虚拟存储器的技术的有请求分页存储管理、请求分段存储管理、请求段页式存储管理。实现虚拟内存,需要以下3个条件:定容量的内存和外存:在载入程序的时候,只需要将程序的一部分装入内存,而将其他部分留在外存,然后程序就可以执行了。缺页中断:如果需执行的指令或访问的数据尚未在内存(称为缺页或缺段),则由处理器通知 *** 作系统将相应的页面或段调入到内存,然后继续执行程序。虚拟地址空间:逻辑地址到物理地址的变换。

虚拟内存的作用 内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。举一个例子来说,如果电脑只有128MB物理内存的话,当读取一个容量为200MB的文件时,就必须要用到比较大的虚拟内存,文件被内存读取之后就会先储存到虚拟内存,等待内存把文件全部储存到虚拟内存之后,跟着就会把虚拟内里储存的文件释放到原来的安装目录里了。

虚拟存储器的实现是根据程序的局部性原理,只将目前要用的的部分存于主存,而将其余暂时存于外存。很明显,内外存的地址不可能会连续。而连续分配方式是将进程的全部都存于一个地址连续的存储空间中。故而,连续分配方式无法实现虚拟存储管理。

以上就是关于虚拟存储器的设置技巧是什么全部的内容,包括:虚拟存储器的设置技巧是什么、内存扩充之虚拟存储技术、以下哪些是实现虚拟存储器的技术()等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9513672.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存