欢迎来到天天文库
浏览记录
ID:57034475
大小:761.50 KB
页数:21页
时间:2020-07-27
《计算机组成原理课件 虚拟存储器.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、4.2虚拟存储器虚拟存储器由主存储器和联机工作的外部存储器共同组成。在目前的计算机系统中,主存储器通常用动态随机存储器(DRAM)实现,它的存储容量相对比较小,速度比较快,单位容量的价格比较贵。联机工作的外部存储器通常为磁盘存储器,它的存储容量很大,与主存储器相比,速度很低,单位容量的价格很便宜。这两个存储器在硬件和系统软件的共同管理下,对于应用程序员,可以把它们看来是一个单一的存储器,是一个存储容量非常大的主存储器。虚拟存储器又称虚拟存储系统,或虚拟存储体系等,其概念是1961年英国曼彻斯特大学的Kilbrn等人提出的。到了70年代
2、被广泛地应用于大中型计算机系统中。目前,许多小型计算机,微型机也开始使用虚拟存储器。页式虚拟存储器是虚拟存储器中用得比较广泛的一种,本节首先以页式虚拟存储器为例介绍虚拟存储器的工作原理。然后再具体介绍页式、段式和段页式三种虚拟存储器的地址变换方式及外部地址变换方式。4.2虚拟存储器一、虚拟存储器工作原理页式虚拟存储器是虚拟存储器中用得比较广泛的一种,另外的段式虚拟存储器和段页式虚拟存储器主要是因为地址变换方法不同产生的。页式虚拟存储器:把主存储器、磁盘存储器和虚拟存储器都划分成固定大小的块--页(Page).主存储器的页称为实页,虚拟
3、存储器中的页称为虚页。内部地址变换:多用户虚拟地址Av变换成贮存实地址A多用户虚拟地址中的页内偏移量D直接作为主存实地址中的页内偏移d主存实页号p与它的页内偏移d直接拼接就得到主存是地址A4.2虚拟存储器一个用户程序要访问虚拟存储器时,必须给出多用户虚拟地址Av。在操作系统和有关硬件的共同管理下,首先进行内部地址变换。如果变换成功(命中),得到主存实页号p。把主存实页号p与它的页内偏移d直接拼接起来就得到主存实地址A,访问主存储器。如果内部地址变换失败(未命中),表示要访问数据不在主存储器中,必须访问磁盘存储器。这时,进行外部地址变换
4、。外部地址变换主要用软件实现,首先查外页表得到与虚页号P相对应的磁盘存储器的实地址,然后再查内页表(主存实页表),看主存储器中是否有空页。如果主存储器中还有空页,只要找到空页号。把磁盘存储器的实地址和主存储器的实页号送入输入输出处理机(输入输出通道)等,在输入输出处理机的控制下,把要访问数据所在的一整页都从磁盘存储器调入到主存储器。如果主存储器中已经没有空页,则要采用某种页面替换算法,先把主存中暂时不用的一页写回到磁盘存储器中原来的位置上,以便腾出空位置来存放新的页。在进行外部地址变换时,如果没有命中,则表示所需要的页还不在磁盘存储器
5、中。这时,要在操作系统控制下,启动磁带机、光盘存储器等海量存储器,先把与所需要数据相关的文件从海量存储器中调入磁盘存储器。4.2虚拟存储器4.2虚拟存储器二、地址映像与变换虚拟存储器中有三种地址空间,对应三种地址。虚拟地址空间:虚存空间或虚拟存储器空间,是应用程序员用来编写程序的地址空间,这个地址空间非常大。主存储器的地址空间:主存地址空间、主存物理空间或实存地址空间辅存地址空间:磁盘存储器的地址空间虚拟地址:虚存空间上的地址,又称为虚存地址或者虚地址主存地址:又称为主存实地址、主存物理地址、主存储器地址磁盘存储器地址:又称为磁盘地址
6、、辅存地址地址映像:把虚拟地址空间映象到主存地址空间,具体地说,就是把用户用虚拟地址编写的程序按照某种规则装入到主存储器中,并建立多用户虚地址与主存实地址之间的对应关系。地址变换:在程序被装入主存储器之后,实际运行时把多用户虚地址变换成主存实地址(内部地址变换)或磁盘存储器地址(外部地址变换)。4.2虚拟存储器根据所采用的地址映象和地址变换方法不同,目前主要有页式虚拟存储器、段式虚拟存储器和段页式虚拟存储器等三种。1、段式虚拟存储器程序按模块划分,主存按段分配地址映像方法:每个程序从0地址开始编址,长度可长可短,可以在程序执行过程中动
7、态调整程序段的长度。每一道程序(或一个用户、一个进程等)由一张段表控制,每个程序段在段表中占一行。4.2虚拟存储器地址变换方法:由用户号找到基址寄存器,读出段表起始地址,与虚地址中段号相加得到段表地址,段标中的起始地址与段内偏移D相加得到主存实地址。N道程序-N个段表基址寄存器-N个段表两次访存完成一次信息交换(首次访存查表,二次访存按地址取信息)段名:实际由于段号与行对应,省略掉。装入位:是(1)否(0)已调入主存。地址:调入主存时,在主存的起始(绝对)地址。段长:段的大小,限制偏移越界。访问方式:只读、可写、只执行,提供访问保护。
8、4.2虚拟存储器段式虚拟存储器的主要优点如下:1、程序的模块化性能好。2、便于程序和数据的共享。3、程序的动态链接和调度比较容易。4、便于实现信息保护。在一般情况下,一段程序是否需要保护是根据这个段程序的功能来决定的。段
此文档下载收益归作者所有