⑴ 简述虚拟化存储技术的三种实现方法及工作原理
从系统的观点看,有三种主要的存储虚拟化方法:
基于主机的虚拟存储;
基于存储设备的虚拟存储;
基于网络的虚拟存储。
方法1:基于主机的虚拟存储
基于主机的虚拟存储依赖于代理或管理软件,它们安装在一个或多个主机上,实现存储虚拟化的控制和管理。由于控制软件是运行在主机上,这就会占用主机的处理时间。因此,这种方法的可扩充性较差,实际运行的性能不是很好。基于主机的方法也有可能影响到系统的稳定性和安全性,因为有可能导致不经意间越权访问到受保护的数据。这种方法要求在主机上安装适当的控制软件,因此一个主机的故障可能影响整个SAN系统中数据的完整性。软件控制的存储虚拟化还可能由于不同存储厂商软硬件的差异而带来不必要的互操作性开销,所以这种方法的灵活性也比较差。
但是,因为不需要任何附加硬件,基于主机的虚拟化方法最容易实现,其设备成本最低。使用这种方法的供应商趋向于成为存储管理领域的软件厂商,而且目前已经有成熟的软件产品。这些软件可以提供便于使用的图形接口,方便地用于SAN的管理和虚拟化,在主机和小型SAN结构中有着良好的负载平衡机制。从这个意义上看,基于主机的存储虚拟化是一种性价比不错的方法。
方法2:基于存储设备的虚拟化
基于存储设备的存储虚拟化方法依赖于提供相关功能的存储模块。如果没有第三方的虚拟软件,基于存储的虚拟化经常只能提供一种不完全的存储虚拟化解决方案。对于包含多厂商存储设备的SAN存储系统,这种方法的运行效果并不是很好。依赖于存储供应商的功能模块将会在系统中排斥JBODS(Just a Bunch of Disks,简单的硬盘组)和简单存储设备的使用,因为这些设备并没有提供存储虚拟化的功能。当然,利用这种方法意味着最终将锁定某一家单独的存储供应商。
基于存储的虚拟化方法也有一些优势:在存储系统中这种方法较容易实现,容易和某个特定存储供应商的设备相协调,所以更容易管理,同时它对用户或管理人员都是透明的。但是,我们必须注意到,因为缺乏足够的软件进行支持,这就使得解决方案更难以客户化(customzing)和监控。
方法3:基于网络的虚拟存储
基于网络的虚拟化方法是在网络设备之间实现存储虚拟化功能,具体有下面几种方式:
1. 基于互联设备的虚拟化
基于互联设备的方法如果是对称的,那么控制信息和数据走在同一条通道上;如果是不对称的,控制信息和数据走在不同的路径上。在对称的方式下,互联设备可能成为瓶颈,但是多重设备管理和负载平衡机制可以减缓瓶颈的矛盾。同时,多重设备管理环境中,当一个设备发生故障时,也比较容易支持服务器实现故障接替。但是,这将产生多个SAN孤岛,因为一个设备仅控制与它所连接的存储系统。非对称式虚拟存储比对称式更具有可扩展性,因为数据和控制信息的路径是分离的。
基于互联设备的虚拟化方法能够在专用服务器上运行,使用标准操作系统,例如Windows、Sun Solaris、Linux或供应商提供的操作系统。这种方法运行在标准操作系统中,具有基于主机方法的诸多优势--易使用、设备便宜。许多基于设备的虚拟化提供商也提供附加的功能模块来改善系统的整体性能,能够获得比标准操作系统更好的性能和更完善的功能,但需要更高的硬件成本。
但是,基于设备的方法也继承了基于主机虚拟化方法的一些缺陷,因为它仍然需要一个运行在主机上的代理软件或基于主机的适配器,任何主机的故障或不适当的主机配置都可能导致访问到不被保护的数据。同时,在异构操作系统间的互操作性仍然是一个问题。
3. 基于路由器的虚拟化
基于路由器的方法是在路由器固件上实现存储虚拟化功能。供应商通常也提供运行在主机上的附加软件来进一步增强存储管理能力。在此方法中,路由器被放置于每个主机到存储网络的数据通道中,用来截取网络中任何一个从主机到存储系统的命令。由于路由器潜在地为每一台主机服务,大多数控制模块存在于路由器的固件中,相对于基于主机和大多数基于互联设备的方法,这种方法的性能更好、效果更佳。由于不依赖于在每个主机上运行的代理服务器,这种方法比基于主机或基于设备的方法具有更好的安全性。当连接主机到存储网络的路由器出现故障时,仍然可能导致主机上的数据不能被访问。但是只有联结于故障路由器的主机才会受到影响,其他主机仍然可以通过其他路由器访问存储系统。路由器的冗余可以支持动态多路径,这也为上述故障问题提供了一个解决方法。由于路由器经常作为协议转换的桥梁,基于路由器的方法也可以在异构操作系统和多供应商存储环境之间提供互操作性。
⑵ 连续分配方式不能实现虚拟存储管理,为什么
虚拟存储器的实现是将进程的部分内容调入内存,而暂时不用的部分暂时存放在外存。很明显,内外存的地址不可能连续啊。所以连续分配方式不可能实现虚拟存储管理
⑶ 实现虚拟存储器需要哪些硬件支持
实现虚拟存储器需要三方面的硬件支持:
1、请求分页/段的页表或段表机制;
请求分页存储管理是建立在分页存储管埋的基础上,并结合虚拟存储系统原理实现的,是目前常用的一种实现虚拟存储器的方式
2、缺页/段中断机构;
作用就是就是要访问的页不在主存,需要操作系统将其调入主存后再进行访问。在这个时候,被内存映射的文件实际上成了一个分页交换文件。
3、地址变换机构。
当进程要访问某个逻辑地址中的数据时,分页地址变换机构会自动地将有效地址(相对地址)分为页号页内地址两部分,再以页号为索引去检索页表。查找操作由硬件执行。在执行检索之前,先将页号与页表长度进行比较,如果页号大于或等于页表长度,则表示本次所访问的地址已超越进程的地址空间。于是,这一错误将被系统发现并产生一地址越界中断。若未出现越界错误,则将页表始址与页号和页表项长度的乘积相加,便得到该表项在页表中的位置,于是可从中得到该页的物理块号,将之装入物理地址寄存器中。与此同时,再将有效地址寄存器中的页内地址送入物理地址寄存器的块内地址字段中。这样便完成了从逻辑地址到物理地址的变换。
⑷ 虚拟存储器技术主要用于解决什么问题简述虚拟存储器的基本工作原理。
虚拟存储器技术主要解决电脑内存不够的问题,电脑中所运行的程序均需经由内存执行,若执行的程序占用内存很大或很多,则会导致内存消耗殆尽。
为解决该问题,Windows中运用了虚拟内存技术,即匀出一部分硬盘空间来充当内存使用。当内存耗尽时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。若计算机运行程序或操作所需的随机存储器(RAM)不足时,则 Windows 会用虚拟存储器进行补偿。
工作原理
1、中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。
2、如该组号已在主存内,则转而执行④;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将这组信息调入主存。
3、从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登录在地址变换表中。
4、从地址变换表读出与逻辑组号a对应的物理组号a。
5、从物理组号a和组内字节地址b得到物理地址。
6、根据物理地址从主存中存取必要的信息。
(4)虚拟存储技术不能配什么配合扩展阅读:
相关概念
1、实地址与虚地址
用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间;而计算机物理内存的访问地址则称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间。程序进行虚地址到实地址转换的过程称为程序的再定位。
2、虚拟内存的访问过程
虚存空间的用户程序按照虚地址编程并存放在辅存中。程序运行时,由地址变换机构依据当时分配给该程序的实地址空间把程序的一部分调入实存。
每次访存时,首先判断该虚地址所对应的部分是否在实存中:如果是,则进行地址转换并用实地址访问主存;否则,按照某种算法将辅存中的部分程序调度进内存,再按同样的方法访问主存。
3、异构体系
从虚存的概念可以看出,主存-辅存的访问机制与cache-主存的访问机制是类似的。这是由cache存储器、主存和辅存构成的三级存储体系中的两个层次。cache和主存之间以及主存和辅存之间分别有辅助硬件和辅助软硬件负责地址变换与管理,以便各级存储器能够组成有机的三级存储体系。
⑸ 虚拟存储技术与什么不能配合使用
楼主问题有点模糊。
我的理解是,虚拟存储与什么硬件存储设备不能配合使用。
这个问题要想理解,就需要明白虚拟存储技术是怎样通过硬件实现的。
现在的虚拟存储技术平台有很多,竞争也非常激烈,像IBM、EMC、HDS等重视存储技术研发的厂商,在该领域的建树都是非常深的。
下面我就将虚拟存储的硬件实现为楼主讲解一下:
简单说来,在磁盘阵列等存储设备与主机之间加“一台”装有“磁盘管理软件”,且具备很高IO带宽的服务器。就能实现虚拟存储。
所有存储设备均接在“虚拟存储服务器”上,再由该服务器将所有认到的磁盘重新条带化,分区,最后分配给所需要的主机。这样便实现了虚拟存储统一管理其他异构存储设备的功能了。
因此,再回答楼主的问题就简单了:
只要“虚拟存储服务器”能认到存储空间的设备就都能配合虚拟存储技术。如果认不到,就不能!
⑹ 什么是虚拟存储技术
虚拟内存
内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。举一个例子来说,如果电脑只有128MB物理内存的话,当读取一个容量为200MB的文件时,就必须要用到比较大的虚拟内存,文件被内存读取之后就会先储存到虚拟内存,等待内存把文件全部储存到虚拟内存之后,跟着就会把虚拟内里储存的文件释放到原来的安装目录里了。下面,就让我们一起来看看如何对虚拟内存进行设置吧。
虚拟内存的设置
对于虚拟内存主要设置两点,即内存大小和分页位置,内存大小就是设置虚拟内存最小为多少和最大为多少;而分页位置则是设置虚拟内存应使用那个分区中的硬盘空间。对于内存大小的设置,如何得到最小值和最大值呢?你可以通过下面的方法获得:选择“开始→程序→附件→系统工具→系统监视器”(如果系统工具中没有,可以通过“添加/删除程序”中的Windows安装程序进行安装)打开系统监视器,然后选择“编辑→添加项目”,在“类型”项中选择“内存管理程序”,在右侧的列表选择“交换文件大小”。这样随着你的操作,会显示出交换文件值的波动情况,你可以把经常要使用到的程序打开,然后对它们进行使用,这时查看一下系统监视器中的表现值,由于用户每次使用电脑时的情况都不尽相同,因此,最好能够通过较长时间对交换文件进行监视来找出最符合您的交换文件的数值,这样才能保证系统性能稳定以及保持在最佳的状态。
找出最合适的范围值后,在设置虚拟内存时,用鼠标右键点击“我的电脑”,选择“属性”,弹出系统属性窗口,选择“性能”标签,点击下面“虚拟内存”按钮,弹出虚拟内存设置窗口,点击“用户自己指定虚拟内存设置”单选按钮,“硬盘”选较大剩余空间的分区,然后在“最小值”和“最大值”文本框中输入合适的范围值。如果您感觉使用系统监视器来获得最大和最小值有些麻烦的话,这里完全可以选择“让Windows管理虚拟内存设置”。
调整分页位置
Windows 9x的虚拟内存分页位置,其实就是保存在C盘根目录下的一个虚拟内存文件(也称为交换文件)Win386.swp,它的存放位置可以是任何一个分区,如果系统盘C容量有限,我们可以把Win386.swp调到别的分区中,方法是在记事本中打开System.ini(C:\Windows下)文件,在[386Enh]小节中,将“PagingDrive=C:WindowsWin386.swp”,改为其他分区的路径,如将交换文件放在D:中,则改为“PagingDrive=D:Win386.swp”,如没有上述语句可以直接键入即可。
而对于使用Windows 2000和Windows XP的,可以选择“控制面板→系统→高级→性能”中的“设置→高级→更改”,打开虚拟内存设置窗口,在驱动器[卷标]中默认选择的是系统所在的分区,如果想更改到其他分区中,首先要把原先的分区设置为无分页文件,然后再选择其他分区。
或者,WinXP一般要求物理内存在256M以上。如果你喜欢玩大型3D游戏,而内存(包括显存)又不够大,系统会经常提示说虚拟内存不够,系统会自动调整(虚拟内存设置为系统管理)。
如果你的硬盘空间够大,你也可以自己设置虚拟内存,具体步骤如下:右键单击“我的电脑”→属性→高级→性能 设置→高级→虚拟内存 更改→选择虚拟内存(页面文件)存放的分区→自定义大小→确定最大值和最小值→设置。一般来说,虚拟内存为物理内存的1.5倍,稍大一点也可以,如果你不想虚拟内存频繁改动,可以将最大值和最小值设置为一样。
⑺ 常见的虚拟化技术
虚拟化技术有哪些
1、CPU虚拟化
虚拟化在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。简单说来,CPU的虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显着提高计算机的工作效率。
2、网络虚拟化
网络虚拟化是目前业界关于虚拟化细分领域界定最不明确,存在争议较多的一个概念。微软眼中的“网络虚拟化”,是指虚拟专用网络(VPN)。VPN对网络连接的概念进行了抽象,允许远程用户访问组织的内部网络,就像物理上连接到该网络一样。网络虚拟化可以帮助保护IT环境,防止来自Internet的威胁,同时使用户能够快速安全的访问应用程序和数据。
3、服务器虚拟化
与网络虚拟化不同,服务器虚拟化却是虚拟化技术最早细分出来的子领域。根据2006年2月ForresterResearch的调查,全球范围的企业对服务器虚拟化的认知率达到了75%。三分之一的企业已经在使用或者准备部署服务器虚拟化。这个产生于20世纪60年代的技术日益显示出其重要价值。由于服务器虚拟化发展时间长,应用广泛,所以很多时候人们几乎把服务器虚拟化等同于虚拟化。
4、存储虚拟化
随着信息业务的不断运行和发展,存储系统网络平台已经成为一个核心平台,大量高价值数据积淀下来,围绕这些数据的应用对平台的要求也越来越高,不光是在存储容量上,还包括数据访问性能、数据传输性能、数据管理能力、存储扩展能力等等多个方面。可以说,存储网络平台的综合性能的优劣,将直接影响到整个系统的正常运行。因为这个原因,虚拟化技术又一子领域——虚拟存储技术,应运而生。
5、应用虚拟化
前面几种虚拟化技术,主要还专注于对硬件平台资源的虚拟优化分配,随着IT应用的日益广泛,应用虚拟化作为虚拟化家族的明日之星登上了历史舞台。2006年7月由Forrester咨询公司在美国对各种不同行业的高层IT管理人员所做的一项研究显示,当今的机构现在将应用虚拟化当作是业务上的一个必由之路,而不是一个IT决策。据统计,全世界目前至少有超过18万个机构在利用应用虚拟化技术进行集中IT管理、加强安全性和减少总体成本。
⑻ 虚拟存储技术的虚拟存储的特点
虚拟存储具有如下特点:
(1)虚拟存储提供了一个大容量存储系统集中管理的手段,由网络中的一个环节(如服务器)进行统一管理,避免了由于存储设备扩充所带来的管理方面的麻烦。例如,使用一般存储系统,当增加新的存储设备时,整个系统(包括网络中的诸多用户设备)都需要重新进行繁琐的配置工作,才可以使这个“新成员”加入到存储系统之中。而使用虚拟存储技术,增加新的存储设备时,只需要网络管理员对存储系统进行较为简单的系统配置更改,客户端无需任何操作,感觉上只是存储系统的容量增大了。
(2)虚拟存储对于视频网络系统最有价值的特点是:可以大大提高存储系统整体访问带宽。存储系统是由多个存储模块组成,而虚拟存储系统可以很好地进行负载平衡,把每一次数据访问所需的带宽合理地分配到各个存储模块上,这样系统的整体访问带宽就增大了。例如,一个存储系统中有4个存储模块,每一个存储模块的访问带宽为50MBps,则这个存储系统的总访问带宽就可以接近各存储模块带宽之和,即200MBps。
(3)虚拟存储技术为存储资源管理提供了更好的灵活性,可以将不同类型的存储设备集中管理使用,保障了用户以往购买的存储设备的投资。
(4)虚拟存储技术可以通过管理软件,为网络系统提供一些其它有用功能,如无需服务器的远程镜像、数据快照(Snapshot)等。
⑼ 什么是虚拟存储技术
1 虚拟存储技术的产生
虚拟化技术并不是一件很新的技术,它的发展,应该说是随着计算机技术的发展而发展起来的,最早是始于70年代。由于当时的存储容量,特别是内存容量成本非常高、容量也很小,对于大型应用程序或多程序应用就受到了很大的限制。为了克服这样的限制,人们就采用了虚拟存储的技术,最典型的应用就是虚拟内存技术。随着计算机技术以及相关信息处理技术的不断发展,人们对存储的需求越来越大。这样的需求刺激了各种新技术的出现,比如磁盘性能越来越好、容量越来越大。但是在大量的大中型信息处理系统中,单个磁盘是不能满足需要,这样的情况下存储虚拟化技术就发展起来了。在这个发展过程中也由几个阶段和几种应用。首先是磁盘条带集(RAID,可带容错)技术,将多个物理磁盘通过一定的逻辑关系集合起来,成为一个大容量的虚拟磁盘。而随着数据量不断增加和对数据可用性要求的不断提高,又一种新的存储技术应运而生,那就是存储区域网络(SAN)技术。SAN的广域化则旨在将存储设备实现成为一种公用设施,任何人员、任何主机都可以随时随地获取各自想要的数据。目前讨论比较多的包括iSCSI、FC Over IP 等技术,由于一些相关的标准还没有最终确定,但是存储设备公用化、存储网络广域化是一个不可逆转的潮流。
2 虚拟存储的概念
所谓虚拟存储,就是把多个存储介质模块(如硬盘、RAID)通过一定的手段集中管理起来,所有的存储模块在一个存储池(Storage Pool)中得到统一管理,从主机和工作站的角度,看到就不是多个硬盘,而是一个分区或者卷,就好象是一个超大容量(如1T以上)的硬盘。这种可以将多种、多个存储设备统一管理起来,为使用者提供大容量、高数据传输性能的存储系统,就称之为虚拟存储。
⑽ 内存扩充之虚拟存储技术
传统存储管理
特征
时间局部性:如果执行了程序中的某条指令,那么不久后这条指令很有可能再次执行;如果某个数据被访问过,不久之后该数据很可能再次被访问(因为程序中存在大量循环)
空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元很有可能被访问(因为很多数据在内存中是连续存放的,并且程序的指令也是顺序地在内存中存放的
寄存器
高速缓存
内存
外存(如磁盘、磁带等)
越往上容量越小,访问速度越快,成本越高
越往下容量越大,访问速度越慢,成本越低
高速缓存技术的思想:将近期会频繁访问到的数据放到更高速的存储器中,暂时用不到的数据放在更低速存储器中
快表机构就是将近期常访问的页表项副本放到更高速的cache中
基于局部性原理,在程序装入时,可以将程序中很快就会用到的部分装入内存,暂时用不到的部分留在外存,就可以让程序开始执行
在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序
若内存空间不够,由操作系统将内存中暂时用不到的信息换出到外存
因此,在操作系统的管理下,在用户看来似乎有一个比实际内存大得多的内存,这就是虚拟内存
操作系统虚拟性的一个体现,实际的物理内存大小没有变,只是在逻辑上进行了扩充
虚拟内存的最大容量是由计算机的地址结构(CPU寻址范围)确定的
虚拟内存的实际容量 = min(内存外存容量之和,CPU寻址范围)
虚拟内存有以下三个主要特征
虚拟内存技术,允许一个作业多次调入内存。如果采用连续分配方式,会不方便实现。因此,虚拟内存的实现需要建立在离散分配的内存管理方式基础上
传统的非连续分配存储管理
基本分页存储管理
基本分段存储管理
基本段页式存储管理
虚拟内存的实现
请求分页存储管理
请求分段存储管理
请求段页式存储管理
主要区别:在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存
操作系统要提供请求调页/段功能、页面/段置换功能
请求分页存储管理和基本分页存储管理的主要区别
页表机制
页表项:内存块号、状态位、访问字段、修改位、外存地址,页号时隐含的
内存块号是页面在内存中对应的页框号,如果状态位为0,则内存块号为无
状态位表示是否已被调入内存
访问字段记录最近被访问过几次,或者上次访问时间,由此操作系统能够提供置换算法
修改位记录页面被调入内存后是否被修改过,如果没有,就不需要浪费时间写回外存
外存地址是页面在外存中的存放位置
缺页中断机构
在请求分页系统中,每当要访问的页面不在内存时,便会产生一个缺页中断,然后由操作系统的缺页中断处理程序处理中断(内中断)
此时缺页的进程阻塞,放入阻塞队列,调页完成后再将其唤醒,放回就绪队列
如果内存中有空闲块,则为进程分配一个空闲块,将所缺页面装入该块,并修改页表中相应的页表项
如果内存中没有空闲块,则由页面置换算法选择一个页面淘汰,若该页面在内存期间被修改过,则要将其写回外存,为修改过的页面不用写回外存
一条指令再执行期间可能产生多次缺页中断( 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替换
最多会进行四轮扫描
驻留集:请求分页管理中给进程分配的物理块的集合
在采用了虚拟存储技术的系统中,驻留集大小一般小于进程的总大小
驻留集太小,导致缺页频繁,系统要花大量时间处理缺页,实际用于进程推进的时间很少
驻留集太大,会导致多道程序并发度下降,资源利用率降低
固定分配:操作系统为每个进程分配一组固定数目的物理块,在进程运行期间不再改变
可变分配:先为每个进程分配一定数目的物理块,在进程运行期间,可根据情况作适当的增加或减少
局部置换:发生缺页时只能选进程自己的物理地址块进行置换
全局置换:可以将操作系统保留的空闲物理块分配给缺页进程,也可以将别的进程持有的物理块置换到外存,再分配给缺页进程
不存在固定分配全局置换的策略,因为全局置换意味着一个进程拥有的物理块数量必然改变
其他三种组合存在
固定分配局部置换:系统为每个进程分配一定数量的物理块,在整个运行期间都不改变。若进程在运行中发生缺页,并且需要进行页面置换,则只能从该进程在内存中的页面中选出一页换出,然后再调入需要的页面
缺点:很难在刚开始就确定应为每个进程分配多少个物理地址块才算合理(采用这种策略的系统可以根据进程大小、优先级、或是根据程序员给出的参数来确定为一个进程分配的内存块数
可变分配全局置换:刚开始会为进程分配一定数量的物理块。操作系统会保持一个空闲物理块队列,当某进程发生缺页时,从空闲物理块中取出一块分给该进程;若无空闲物理块,则选择一个未锁定的页面换出到外存,再将该物理块分配给缺页的进程。采用这种策略时,只要某进程发生缺页,都将获得新的物理块,仅当空闲物理块用完时,系统才选择一个未锁定的页面调出。被选择调出的页面可能是系统中任何一个进程的页面,因此这个被选中的进程拥有的物理块会减少,缺页率会增加
只要缺页就给该进程分配新的物理块
可变分配局部置换:刚开始会为每个进程分配一定数量的物理块,当某进程发生缺页时,只允许从该进程自己的物理块中选出一个进行页面置换。如果进程在运行过程中频繁缺页,系统会为该进程多分配几个物理块,直至该进程缺页率趋于适当程度;反之,如果缺页率太低,就是当减少分配给该进程的内存块数
要根据发生缺页的频率来动态增加或减少进程的物理块
何时调入页面
从何处调入页面
对换区:读写速度更快,采用连续分配方式
文件区:读写速度更慢,采用离散分配方式
抖动/颠簸现象:刚刚换出的页面马上要换入内存,刚刚换入的页面马上要换出外存,这种频繁的页面调度行为称为抖动/颠簸
主要原因是进程频繁访问的页面数目高于可用的物理块数(分配给进程的物理块不够)
为进程分配物理块太少会使进程发生抖动现象,为进程分配的物理块太多会降低系统的并发度降低某些资源的利用率。因此提出了“工作集”的概念
工作集:在某段时间间隔里,进程实际访问页面的集合
驻留集:请求分页存储管理中给进程分配的内存块的集合
驻留集不能小于工作集,否则进程运行过程中将频繁缺页