chp9_虚拟存储器.ppt
《chp9_虚拟存储器.ppt》由会员分享,可在线阅读,更多相关《chp9_虚拟存储器.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机科学与技术学院计算机系9.4 9.4 虚拟存储器虚拟存储器一、虚拟存储器的基本概念1、实地址与虚地址:用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间;而计算机物理内存的访问地址则称为实地地或物理地址,其对应的存储空间称为物理存储空间或主存空间。程序进行虚地址到实地址转换的过程称为程序的再定位。计算机科学与技术学院计算机系9.4 9.4 虚拟存储器虚拟存储器2、虚存的访问原理 虚存空间的用户程序按照虚地址编程并存放在辅存中。程序运行时,由地址变换机构依据当时分配给该程序的实地址空间把程序的一部分调入实存。每次访存时,首先判断该虚地址所对应的部分是否
2、在实存中:如果是,则进行地址转换并用实地址访问主存;否则,按照某种算法将辅存中的部分程序调度进内存,再按同样的方法访问主存。由此可见,每个程序的虚地址空间可以远大于实地址空间,也可以远小于实地址空间。计算机科学与技术学院计算机系9.4 9.4 虚拟存储器虚拟存储器3、cache与虚存的异同l从虚存的概念可以看出,主存辅存的访问机制与cache-主存的访问机制是类似的。这是由cache存储器、主存和辅存构成的三级存储体系中的两个层次。lcache和主存之间以及主存和辅存之间分别有辅助硬件和辅助软硬件负责地址变换与管理,以便各级存储器能够组成有机的三级存储体系。cache和主存构成了系统的内存,而
3、主存和辅存依靠辅助软硬件的支持构成了虚拟存储器。计算机科学与技术学院计算机系9.4 9.4 虚拟存储器虚拟存储器在三级存储体系中,cache-主存和主存-辅存这两个存储层次有许多相同点:(1)出发点相同出发点相同二者都是为了提高存储系统的性能价格比而构造的分层存储体系,都力图使存储系统的性能接近高速存储器,而价格和容量接近低速存储器。(2)原理相同原理相同都是利用了程序运行时的局部性原理把最近常用的信息块从相对慢速而大容量的存储器调入相对高速而小容量的存储器。计算机科学与技术学院计算机系9.4 9.4 虚拟存储器虚拟存储器但cache主存和主存辅存这两个存储层次也有许多不同之处:(1)侧重点不
4、同侧重点不同cache主要解决主存与CPU的速度差异问题;而就性能价格比的提高而言,虚存主要是解决存储容量问题,另外还包括存储管理、主存分配和存储保护等方面。(2)数据通路不同数据通路不同CPU与cache和主存之间均有直接访问通路,cache不命中时可直接访问主存;而虚存所依赖的辅存与CPU之间不存在直接的数据通路,当主存不命中时只能通过调页解决,CPU最终还是要访问主存。(3)透明性不同透明性不同cache的管理完全由硬件完成,对系统程序员和应用程序员均透明;而虚存管理由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实现存储管理的系统程序员不透明,而只对应用程序员透明(段式和段页式
5、管理对应用程序员“半透明”)。(4)未命中时的损失不同未命中时的损失不同由于主存的存取时间是cache的存取时间的510倍,而主存的存取速度通常比辅存的存取速度快上千倍,故主存未命中时系统的性能损失要远大于cache未命中时的损失。计算机科学与技术学院计算机系 9.4 9.4 虚拟存储器虚拟存储器4、虚存机制要解决的关键问题(1)调度问题决定哪些程序和数据应被调入主存。(2)地址映射问题在访问主存时把虚地址变为主存物理地址(这一过程称为内地址变换);在访问辅存时把虚地址变成辅存的物理地址(这一过程称为外地址变换),以便换页。此外还要解决主存分配、存储保护与程序再定位等问题。(3)替换问题决定哪
6、些程序和数据应被调出主存。(4)更新问题确保主存与辅存的一致性。l在操作系统的控制下,硬件和系统软件为用户解决了上述问题,从而使应用程序的编程大大简化。计算机科学与技术学院计算机系9.4 9.4 虚拟存储器虚拟存储器二、页式虚存存储器1、页式虚存地址映射 页式虚拟存储系统中,虚地址空间被分成等长大小的页,称为逻辑页;主存空间也被分成同样大小的页,称为物理页。相应地,虚地址分为两个字段:高字段为逻辑页号,低字段为页内地址(偏移量);实存地址也分两个字段:高字段为物理页号,低字段为页内地址。通过页表可以把虚地址(逻辑地址)转换成物理地址。l页式虚拟存储器的地址映射过程见下图。计算机科学与技术学院计
7、算机系页式虚拟存储器的地址映射过程见下图页式虚拟存储器的地址映射过程见下图计算机科学与技术学院计算机系9.4 9.4 虚拟存储器虚拟存储器l在大多数系统中,每个进程对应一个页表。页表中对应每一个虚存页面有一个表项,表项的内容包含该虚存页面所在的主存页面的地址(物理页号),以及指示该逻辑页是否已调入主存的有效位。l每个进程所需的页数并不固定,所以页表的长度是可变的,因此通常的实现方法是把页表的基地址保存在寄存器中,而页表本身则放在主存中。由于虚存地址空间可以很大,因而每个进程的页表有可能非常长。例如,如果一个进程的虚地址空间为2G字节,每页的大小为512字节,则总的虚页数为231/29=222。
8、计算机科学与技术学院计算机系9.4 9.4 虚拟存储器虚拟存储器l为了节省页表本身占用的主存空间,一些系统把页表存储在虚存中,因而页表本身也要进行分页。当一个进程运行时,其页表中一部分在主存中,另一部分则在辅存中保存。l另一些系统采用二级页表结构。每个进程有一个页目录表,其中的每个表项指向一个页表。l在页表长度较大的系统中,还可以采用反向页表实现物理页号到逻辑页号的反向映射。页表中对应每一个物理页号有一个表项,表项的内容包含该物理页所对应的逻辑页号。访存时,通过逻辑页号在反向页表中逐一查找。计算机科学与技术学院计算机系9.4 9.4 虚拟存储器虚拟存储器2、转换后援缓冲器l由于页表通常在主存中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- chp9_ 虚拟 存储器
限制150内