虚拟存储器管理技术课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《虚拟存储器管理技术课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟 存储器 管理 技术 课件
- 资源描述:
-
1、Ch8 虚拟存储器管理技术l分页存储管理l分段存储管理l段页式存储管理第1页,共52页。8.1 基本概念 进程执行程序时访问的是程序的指令和数据的逻辑地址。进程在处理机上才能运行,通过处理机访问指令和数据的主存地址。严格区分及和及虚拟地址:把一个运行进程访问的地址称为“虚拟地址”虚拟地址空间:一个运行进程可访问的虚拟地址集合。实地址:处理机可直接访问的主存的地址称为“实地址”实地址空间:计算机主存称为“实地址空间”。:实现由虚拟地址到实际地址的转换。(把程序的指令和数据所在的虚拟地址放入主存实地址中去)第2页,共52页。虚拟地址空间(虚存)实地址空间(主存)取决于:l指令中的地址长度;l外存空
2、间的大小。:是一个地址空间,是进程访问的逻辑地址空间,而不是物理主存空间。最大虚拟地址空间往往取决于指令中的地址长度限制(因外存空间通常大于指令地址长度所限定的范围)。:由OS自动实现,对用户是透明的。l决定把作业虚拟地址空间的哪一部分装入主存;l放在主存的什么位置;l主存空间不够时把哪一部分置换出主存。第3页,共52页。8.2 分页存储管理 1.分页存储管理的基本规则 2.分页系统的地址转换 3.分页存储管理策略:4.分页存储管理技术性能分析 5.页的共享和保护 6.分页存储管理技术的软硬件实现第4页,共52页。1.分页存储管理基本规则:把主存划分成相同大小的存储块-页架(page fram
3、e),页架大小固定不变。页架从0编号-页架号。:逻辑地址空间划分成与页架大小相同的部分-页(逻辑页,虚页),不足一页的补齐一页。给页从0编号-页号。:虚拟地址A=数对(p,d),p-页面号;d-虚拟地址在页面号p内相对地址(页内地址)页面大小 L,则p=A/L;d=AMOD Lex:L=1000,A=3456=逻辑地址(3,456):系统以为单位把主存分给作业或进程,并且分给一个作业或进程的页架不一定是相邻和连续的。即作业可以按为单位零散地放在主存不连续的页架中。第5页,共52页。:系统系统在作业装入主存时建立进程的同时建立的,记录各页面的调度情况。页表表目也称为(page descripto
4、r),包括页号、状态、页架号、页面存储控制字段。页表起始地址b和表长L一般放在该作业进程的PCB中,当进程投入运行时先装入:虚拟地址(p,d)在指令场中的物理表示。Ex.IBM页号P 页内地址d 0 7 8 19 20 31p占12位,页面总数为212=4K;d占12位,则页面大小为4K.:便于由指令地址场中给出的逻辑地址计算出其页面号p及页内地址d。若页面大小2i,把地址场从第i位分成两部分,高位部分表示的数即页面号p,低位部分表示的数即为页内地址d。L=1K=1024=210,A=1005H,=p=4H;d=5H15 10 9 00 0 0 1 0 0 0 0 0 0 0 0 0 1 0
5、1第6页,共52页。页号 状态页架号0Y61Y70Y21Y52Y83N-4N-0Y31Y102N-3N-页面映象表(页表)0000操作1000系统2000作业 2 第 0 页3000作业 3 第 0 页4000空闲5000作业 2 第 1 页6000作业 1 第 0 页7000作业 1 第 1 页8000作业 2 第 2 页9000空闲10000作业 3 第 1 页物理存储(主存)00001000作业 100001000200030004000作业 20000100020003000作业 3逻辑地址空间第7页,共52页。2.分页存储管理地址转换:图8.3l进程被调度:该进程页表起始地址和表长送
6、页表寄存器R=(L,b);l进程访问虚地址v:地址映象硬件把v-(p,d);l比较页面号p与页表长L,判断是否越界;l页访问合法按p索引页表:b+p*i=第p个页面对应页表表目页描述子(页架号p)(i为表目长度)l根据该表目中存储控制字段检验访问权限是否合法;l硬件计算实际地址:页架号p与 d构成物理地址(p,d)。页表放在主存中系统表格区:主存页架数N=主存大小/页大小;最多可存放N个页面,必然还有未能调入主存的页面,即所有进程页表表目数之和=N,页表所占空间=页表表目数*每个表目长度l=N*l缺点:访问两次主存(页表,数据),处理机执行速度降低1/2。第8页,共52页。:图8.4l页表放在
7、相关存储器(关联存储器):快表/相关页表l相关存储器:硬件寄存器,且有一定的判断能力,实现按内容检索。l虚拟地址v由硬件截成两部分:(p,d);用p与相关存储器中各表目比较,查得其所在表目,自动送出页架号p,再与d构成实地址(p,d)l处理机执行速度提高,但高速相关存储器很贵。图8.5l用816个高速相关存储器:存放正在当前最常用的部分页面的页描述子(页表的子集)。l全部页表存放在主存系统区。进行相关映象和直接映象(比较快表和主存页表-慢表),相关映象成功,就自动停止直接映象工作;否则由直接映象找出p并与d构成实地址,同时把该表目送入相关存储器。第9页,共52页。l程序运行的局部性:时间局部性
8、:刚被访问过的单元很快再被访问;空间局部性:刚被访问过的单元的邻近单元很快 再被访问。l由于程序运行的局部性特点,使相关存储器命中率达90%左右,速度约降低10%以下。Ex:Z8000,16个表目,命中率96%NS32032,32个表目,命中率97%第10页,共52页。3.分页存储管理策略要解决的三个问题l请求取页:当用到某页而不在主存时即缺页时取页(请求式分页存储管理)。l提前取页:预先装入主存一页或几页(提前页)。一般装入主存任一个可用的页架中。第11页,共52页。:当发生缺页,而主存中已无空闲页架时,需选一页淘汰。选取淘汰页的方法叫页的置换算法。:刚被淘汰出去的页,不久又被访问,又需把它
9、调入而将另一页淘汰出去,很可能又把刚调入的或很快要用的页淘汰出去了。如此反复更换页面,以至系统大部分机时花在页面的调度和传输上,系统的实际效率很低。这种现象称为“抖动”。f=(缺页次数/访问页面总数)%:最佳置换算法 OPT;先进先出置换算法FIFO;最近最少使用置换算法LRU;最近未使用置换算法NUR;工作集。第12页,共52页。最佳置换算法 OPT(Optimum Strategy):淘汰在将来再也不被访问,或者是在最远的将来才能被访问的页。:无法预测作业将用到哪些页!所以此算法是无法实现的理论上的算法。例:某进程分配页架数为3,其运行期间页面访问序列:A,B,C,D,A,B,E,A,B,
10、C,D,E,分析其按照OPT算法进行页面置换时的缺页情况。(堆栈式算法)第13页,共52页。页面访问序列A B C D A B EA B C D EA A A A B A A B EEEEB B B A B B EB C D DC D D D EA A B C C+缺页次数=7;缺页率=7/12=58%最佳置换算法最佳置换算法OPT第14页,共52页。先进先出置换算法FIFO(first-in,first-out):选择最早进入主存的页面淘汰。:最早进入的页面其不再使用的可能性比最近调入的页面要大。:把进入主存的各页面按进入主存的时间次序构成队列(链表或表格),总是淘汰队头的页面。:l只有按照
11、线性顺序访问地址空间时才是理想的,否则效率不高。:对于一些特定的访问序列,随分配页架数增加,缺页频率反而增加!第15页,共52页。页面访问序列A B C D A B EA B C D EA B C D A B EEEC D DA B C D A B B B EC CA B C D A A A B EE+缺页次数=9;缺页率 f=9/12=75%页面访问序列A B C D A B EA B C D EA B C D D D EA B C D EA B C C C D EA B C DA B B B C D EA B CA A A B C D EA B+缺页次数=10;缺页率 f=10/12=83
12、%先进先出置换算法先进先出置换算法FIFO第16页,共52页。最近最少使用置换算法LRU(Least Recently Used):选择最近一段时间内最长时间没有被访问过的页面淘汰。:认为过去一段时间里不曾被访问过的页,在最近的将来也可能不再会被访问。:需为每个页设置一个特定单元,记录上次访问后到现在的时间量t,并选择t最大的页淘汰。无论硬件还是软件实现开销都很大!实际应用:近似算法NUR!第17页,共52页。页面访问序列A B C D A B EA B C D EA B C D A B EA B C D EA B C D A B EA B C DA B C D A B EA B C+缺页次数
13、=10;缺页率=10/12=83%最近最少使用置换算法最近最少使用置换算法LRU第18页,共52页。最近未使用置换算法(Not used Recently)NUR:为每个页面设置两个硬件位访问位和修改位。访问位=0:该页尚未被访问过 =1:该页已经被访问过修改位=0:该页尚未被修改过 =1:该页已经被修改过:淘汰最近未使用的页,且希望其在主存逗留期间页面内的数据未被修改过!:l开始时所有页的访问位,修改位都为0。访问/修改时再置1。l当选择淘汰页时,按照 访问位0 0 1 1 的顺序淘汰。修改位0 1 0 1l周期性地对访问位清零!页面号 页架号 状态 存储控制 访问位 修改位 外页地址页面描
14、述子第19页,共52页。4.分页存储管理技术性能分析l可提供多个大容量的虚拟存储器:作业的地址空间不再受主存大小的限制。l主存利用率大大提高:作业中不常用的页不会长期驻留在主存,当前运行用不到的信息也不必调入主存。l能实现多道作业同时运行。l方便用户:大作业也无须考虑覆盖问题。l缺页中断处理增加系统开销l页面的调入调出增加I/O系统的负担l此外页表等占用空间且需要管理,存在页内零头.第20页,共52页。尽可能减少缺页中断次数。l程序质量程序质量:尽可能使编出的程序具有高度的局部性,则执行时可经常集中在几个页面上进行访问,减少缺页率。l页面大小页面大小:页面大,页表小,省空间且查找快;缺页次数相
15、对也少;一次换页的时间长,页内零头空间浪费的可能性较大。页面小则相反。l主存容量主存容量:一个程序运行时遇到缺页中断的次数,是和分配给该道程序的主存容量(页架数)成反比的,但当主存容量达到某个值时,缺页次数减少不再明显。多数程序都有一个确定值拐点。图8.17l淘汰算法淘汰算法:在淘汰页选择范围选择最合适的置换算法。第21页,共52页。:进程对主存的访问不是均匀的,而是高度地表现出其局部性。l时间局部性时间局部性:指某个位置(数据或指令)最近被访问了,那么往往很快又要被再次访问。借助于循环、经常用到的变量和子程序等程序结构实现。l空间局部性空间局部性:指一旦某个位置最近被访问了,那么它附近的位置
16、也要被访问。采用顺序的指令串、线性的数据结构(如数组或常用变量彼此相近存放)来实现。l程序在某段时间对整个地址空间各页的访问集中在少数几页;一个页面中也不是均匀的,而是集中于页面中的较少部分。第22页,共52页。(1)编写高质量的程序:增强程序访问的局部性;ex:数组在主存中存放顺序与使用顺序的一致性:二维数组清零:法法1:int A512,512;法法2:int A512,512 for(j=0;j512;j+)for(i=0;i512;i+)for(i=0;i512;i+)for(j=0;j至少需要6个页架(指令*2,源地址间址*2,目标地址间址*2)。第24页,共52页。页架分配(续):
17、仅在一个作业自己所占用的全部页架中挑选页面淘汰;所以进程所占页架数不变:对整个主存范围内的页面进行挑选。固定页面:不能被换出或某段时间不能被换出的页面固定页标志(长期固定和短期固定)。:l平均分配:系统中全部页架数m在n个进程间平均分配。设:m=95,n=6,m/n=95/6=15*6+5 每个进程分得15个页架,还有5个留作公用页架缓冲区。l根据作业大小按比例分配:设:每个进程的虚存大小(即作业大小)为Si,则S=Si主存可用页架数m,则Pi分的页架数ai=(Si/S)*m 且ai最少页架数l考虑进程优先级:提高高优先级进程分配比例;或允许高优先级进程淘汰低优先级进程的页面(全局分配)。第2
18、5页,共52页。(3)页面的大小 页面大小:l大页面:增加页内碎片,增加缺页频率小页面好!l小页面:增加主存页架数,更多页表空间大页面好!l缺页时,读入一页总的传送时间=总的延迟时间(8090%)+数据块传送时间。大页面好!l结论:理论和实践页面尺寸以小些为好!P145,表8.1第26页,共52页。又一种页面置换算法:工作集:程序行为的局部性。:降低缺页频率!缩短等待调页时间,提高系统效率。:是进程在某段时间里实际要访问的页面的集合。保证程序有效运行,工作集必须在主存中。:依据程序过去的行为来估计它未来的行为,因为程序运行的局部化特点决定了工作集变化是缓慢的。:一个运行进程在t-w到t这个时间
展开阅读全文