第八章 虚拟内存 浙江工业大学

上传人:今*** 文档编号:107450758 上传时间:2019-10-19 格式:PPT 页数:78 大小:1.95MB
返回 下载 相关 举报
第八章 虚拟内存 浙江工业大学_第1页
第1页 / 共78页
第八章 虚拟内存 浙江工业大学_第2页
第2页 / 共78页
第八章 虚拟内存 浙江工业大学_第3页
第3页 / 共78页
第八章 虚拟内存 浙江工业大学_第4页
第4页 / 共78页
第八章 虚拟内存 浙江工业大学_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《第八章 虚拟内存 浙江工业大学》由会员分享,可在线阅读,更多相关《第八章 虚拟内存 浙江工业大学(78页珍藏版)》请在金锄头文库上搜索。

1、1,虚拟内存,第 8 章,2,虚拟存储器管理技术,固定分区、动态分区、简单分页和简单分段的存储器管理方式,有一个共同的特点,即要求将一个作业全部装入内存才能运行。如果有的作业很大,其所要求的内存空间超过了内存总容量,作业就不能全部被装入内存,致使该作业无法运行;有时大量作业要求运行,但由于内存容量不足以容纳所有这些作业,只能将少数作业装入内存让它们先运行,而将其它大量的作业留在外存上等待。 显而易见的一种解决方法,是从物理上增加内存容量,但这往往会受到机器自身的限制,而且增加了系统成本。 另一种方法是从逻辑上扩充内存容量,这正是虚拟存储技术所要解决的主要问题。,3,分页和分段对内存分区技术的关

2、键突破,进程对内存访问的逻辑地址在运行时动态地被转换为物理地址,从而保证进程可以占据内存的不同区域(地址重定位机制)。 一个进程可以划分成许多块,在运行时,这些块不需要连续地位于主存中 (分页或分段机制)。 一个进程在执行的过程中,不需要所有的块都在内存中(虚拟内存机制)。,4,引入虚拟内存机制之后进程的执行,首先,操作系统仅读取程序开始处的一些块。 常驻集 (Resident set) 进程执行中任何时候都在主存的部分 当处理器需要访问一个不在主存中的块时,系统将产生一个内存访问故障中断(缺页中断)。 操作系统将该进程置为阻塞状态,并取得控制权。 操作系统需要将该进程块取进内存 产生一个磁盘

3、 I/O读请求 执行I/O操作期间,操作系统可选择另一个进程来运行 当I/O操作完成后,则产生一个I/O中断,控制权又交回操作系统,操作系统将之前被阻塞的进程置为就绪状态,5,虚拟存储技术的优点,内存中可以容纳更多的进程 每个进程只有一部分的程序块或数据块装入内存,其他块仍保存在磁盘上 内存可以容纳更多的进程,并发性得到更大的提高,从而也使得处理器得到了更有效的利用 进程可以比主存的全部空间还大 实存 (Real memory):内存 虚存 (Virtual memory):磁盘的存储空间,6,虚拟存储器的基本概念,1局部性原理(principle of locality) 虚拟存储器系统实现

4、的理论基础:程序执行的局部性规律。 早在1968年PDenning就指出过,程序在执行时将呈现出局部性规律,即在一段时间内,程序的执行仅局限于某个部分;相应地,它所访问的存储空间也局限于某个区域内。 出现局部性规律的原因: 程序在执行时,除了少部分的转移和过程调用指令外,大多数仍是顺序执行的。 子程序调用将会使程序的执行由一部分内存区域转至另一部分区域。但在大多数情况下,过程调用的深度都不超过5。 程序中存在许多循环结构,循环体中的指令被多次执行。 程序中还包括许多对数据结构的处理,如对连续的存储空间数组的访问,往往局限于很小的范围内。,7,局部性原理,时间局限性:如果程序中的某条指令一旦执行

5、,则不久的将来该指令可能再次被执行;如果某个存储单元被访问,则不久以后该存储单元可能再次被访问。产生时间局限性的典型原因是在程序中存在着大量的循环操作。 空间局限性:一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。 即程序在一段时间内所访问的地址,可能集中在一定的范围内,其典型原因是程序是顺序执行的。 局部性原理确保了虚拟存储机制的可行性。但利用局部性原理的同时,要避免系统出现抖动现象(thrashing),即处理器大部分时间都用于交换块,而不是执行指令。,8,2. 虚拟存储器实现的软硬件支撑,硬件支撑 有相当容量的辅存(磁盘)以存放所有并发作业的地址空间 有一定

6、容量的内存来存放运行作业的部分程序 有支持分页或分段的硬件 请求分页系统和请求分段系统 动态地址转换机构 软件支撑 操作系统能提供页或段在主存和辅存之间有效交换的管理模块 读取策略、放置策略、替换策略、驻留集管理、清除策略等,9,3. 虚拟存储器的特征,离散性:指在内存分配时采用离散的分配方式,它是虚拟存储器的最基本的特征。 多次性:指一个作业被分成多次调入内存运行,即在作业运行时没有必要将其全部装入,只须将当前要运行的那部分程序和数据装入内存即可。多次性是虚拟存储器最重要的特征。 对换性:指允许在作业的运行过程中在内存和外存的对换区之间换进、换出。 虚拟性:指能够从逻辑上扩充内存容量,使用户

7、所看到的内存容量远大于实际内存容量。,10,请求分页存储管理系统,请求分页存储管理系统是在纯分页系统的基础上,增加了请求调页功能、页面置换功能所形成的页式虚拟存储系统,它是目前常用的一种虚拟存储器的方式。 它允许只装人若干页(而非全部页)的用户程序和数据,便可启动运行。以后,再通过调页功能及页面置换功能,陆续地把即将要运行的页面调入内存,同时把暂不运行的页面换出到外存上,置换时以页面为单位。,11,遇到要访问的页面不在内存中,如何发现和处理这种情况?,这是请求分页存储管理要解决的两个基本问题,12,为了能实现请求调页和置换功能,系统必须提供必要的硬件支持:扩充的页表机制和缺页中断机构。 (1)

8、请求分页的页表机制 它是在纯分页的页表机制上形成的,由于只将应用程序的一部分调入内存,还有一部分仍在磁盘上,故需在页表中再增加若干项,供程序(数据)在换进、换出时参考。在请求分页系统中的每个页表项如图所示。,1. 请求分页中的硬件支持,13,其中各字段说明如下: 状态位(中断位P):用于指示该页是否已调入内存,供程序访问时参考。 访问字段A:用于记录本页在一段时间内被访问的次数,或最近已有多长时间未被访问,提供给置换算法选择换出页面时参考。 修改位M:表示该页在调入内存后是否被修改过。由于内存中的每一页都在外存上保留一份副本,因此,若未被修改,在置换该页时就不需将该页写回到外存上,以减少系统的

9、开销和启动磁盘的次数;若已被修改,则必须将该页重写到外存上,以保证外存中所保留的始终是最新副本。 外存(辅存)地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时使用,14,15,0,110,在/不在内存,页表,虚地址8196 (0x2004),物理地址 24580,MOVE REG,8196,15,MOVE REG,32760,虚页7,32760-0x7FF8,16,(2)缺页中断机构,在请求分页系统中,每当所要访问的页面不在内存时,便要产生缺页中断,请求OS将所缺页调入内存。,17,缺页中断与一般中断的主要区别在于: 缺页中断在指令执行期间产生和处理中断信号,而一般中断在一条指令

10、执行完后检查和处理中断信号。 缺页中断返回到该指令的开始重新执行该指令,而一般中断返回到该指令的下一条指令执行。 一条指令在执行期间,可能产生多次缺页中断。,18,保存该进程页表的起始地址,(3)地址变换机构,19,请求分页存储管理系统带来的新问题,每个进程都有一个页表,页表保存在哪里? 一个4GB (232 )的进程,如果页大小为4KB(212 ) ,则需要的页表项为220 页表占据了大量的空间,应该保存在虚存上,可使用多级页表结构 每个虚存访问会引起两次物理内存访问,导致存储器访问时间加倍 第一次取相应的页表项 第二次取需要数据 可使用快表机制来解决,20,32位地址的两级页表结构,21,

11、1011,1078,1742,1,4,6,114,115,1468,0,114,1468,外部页表,第0页页表,第1页页表,第1023页页表,0,1023,某页表分页的始址,进程的某页在内存中的物理块号,0,1023,以32位的逻辑地址空间的系统为例,页面大小为4 KB,0,1023,0,1023,22,通过P1可以找到对应页表分页在内存中的起始地址,通过P2可以找到对应页表项,从而找到该页在内存中的起始地址,23,举例:假设虚拟地址为32位,每页为4KB,采用二级页表结构,如图。 逻辑地址0x00403004(十进制4206596)所对应的物理地址是什么?,0x00403004:000000

12、0001 0000000011 000000000100 P1 P2 页内地址d 4206596/4k=10274 1027/1024=13 P1=1 P2=3 d=4,24,快表(Translation Lookaside Buffer,TLB),为了提高地址变换的速度,增设了一个具有按内容查找、并行查询功能的特殊的高速缓冲存储器,称为 “快表”,或称为“关联存储器(TLB, 转换后备缓冲器)”,用以存放当前访问的那些页表项,每个页表项包括页号和相应的块号(页号不能省略)。 引入快表之后的存储访问修改如下: 处理器首先将逻辑地址中的页号与TLB中的各页表项的页号进行比较 如果有相同的 (TL

13、B命中), 则直接从TLB的输出寄存器输出相应的块号 如果没有找到(TLB不命中) ,则访问内存从该进程的页表中查找 检查该页是否在内存中(检查P位) 如果不在,则发生缺页中断 页访问之后,同时要将该页的页表项读入TLB,25,26,27,P249 图8.8,缺页中断处理 是 否 否 是 是 否 产生缺页中 否 是 断请求调页 否 是,28,分页和TLB的操作,29,快表访问示例,假设检索快表的时间TTLB为20ns,访问内存的时间TM为100ns,TLB的命中率p为90%。计算CPU存取内存一个数据的平均时间。 解:1)快表命中时CPU存取内存一个数据的时间为 T1检索快表时间访问内存数据时

14、间=TTLB+TM =20100120ns。 2)当快表不命中时CPU存取内存一个数据的时间为 T2检索快表时间检索内存中的页表时间访问内存数据时间= TTLB+TM +TM 20100100220ns。 3)CPU存取内存一个数据的平均时间为 T = T1*命中率+T2*(1命中率)= T1*P+T2*(1-P)= 120*0.9+220*0.1=130ns。,30,存储器Cache,虚存必须与内存高速缓存进行交互,31,页大小,页越小,内部碎片的总量越少 页越小,每个进程所需的页数增加,则需要更大的页表 内存和辅存之间以页为单位进行数据交换,从辅存的角度来看,希望页比较大,从而实现更有效的

15、数据块传送,32,例题,例1某虚拟存储器的用户编程空间共32个页面,每页1KB,主存为16KB。假定某时刻用户页表中已调入主存的页面的虚拟页号和物理页表对照表为表一,则下表中与虚拟地址相对应的物理地址为表二(如果主存找不到,即为该页失效)。虚拟存储的功能是由C完成的。在虚拟存储系统中,采用D提高E的速度。 表一 虚页号 物理页号 0 5 1 10 2 4 8 7 表二 虚地址 物理地址 0A5C(H) A 1A5C(H) B,33,供选择的答案: A,B: 页失效 1E5C(H) 2A5C(H) 165C(H) 125C(H) 1A5C(H) C: 硬件 软件 软、硬件结合 D: 高速辅助存贮器 高速光盘存贮器 快速通道 高速缓冲存贮器 E: 连接编辑 虚地址分配 动态地址映射 动态连接,答案:A B C D E ,34,解:每页大小 1KB,用16进制表示为400H,由虚地址通过直接映象的地址转换成物理地址步骤如下: 将虚地址分离成页号p和页内地址d: 页号p(虚地址页大小)取整(0A5CH/400H)取整2(0A5CH=000010 0101011011) 页内地址d虚地址页号p每页大小0A5C(H)2400(H)25C(H)(0101011011) 根据页号查页表,由

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号