第三章——虚拟存储器

一、虚拟存储器的基本概念

1、实地址与虚地址:用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间;而计算机物理内存的访问地址则称为实地地或物理地址,其对应的存储空间称为物理存储空间或主存空间。程序进行虚地址到实地址转换的过程称为程序的再定位。

2、虚存的访问过程:虚存空间的用户程序按照虛地址编程并存放在辅存中。程序运行时,由地址变换机构依据当时分配给该程序的实地址空间把程序的一部分调入实存。每次访存时,首先判断该虚地址所对应的部分是否在实存中: 如果是,则进行地址转换并用实地址访问主存;否则,按照某种算法将辅存中的部分程序调度进内存, 再按同样的方法访问主存。由此可见,每个程序的虚地址空间 可以远大于实地址空间,也可以远小于实地址空间。前一种情 况以提高存储容量为目的,后一种情祝则以地址变换为目的。 后者通常出现在多用户或多任务系统中,实存空间较大,而单个任务并不需要很大的地址空间,较小的虚存空间则可以缩短指令中地址字段的长度。

3、cache与虚存的异同

⑴从虚存的概念可以看出,主存辅存的访问机制与cache主存的访问机制是类似的。这是由cache存储器、主存和辅存构成的三级存储体系中的两个层次。

⑵cache和主存之间以及主存和辅存之间分别有辅助硬件和辅助软硬件负责地址变换与管理,以便各级存储器能够组成有机的三级存储体系。cache和主存构成了系统的内存,而主存和辅存依靠辅助软硬件的支持构成了虚拟存储器。

⑶在三级存储体系中, cache 主存和主存辅存这两个存储层次有许多相同点

①出发点相同二者都是为了提高存储系统的性能价格比而构造的分层存储体系,都力图使存储系统的性能接近高速存储器,而价格和容里接近低速存储器。

②原理相同都是利用了程序运行时的局部性原理把最近常用的信息块从相对慢速而大容里的存储器调入相对高速而小容里的存储器。但 cache 主存和主存辅存这两个存储层次也有许多不同之处:

③侧重点不同 cache 主要解决主存与 CPU 的速度差异问题;而就性能价格比的提高而言,虚存主要是解决存储容里问题,另外还包括存储管理、主存分和存储保护等方面。

④数据通路不同 CPU 与 cache 和主存之间均有直接访问通路, cache 不命中时可直接访问主存;而虚存所依赖的辅存与 CPU 之间不存在直接的数据通路,当主存不命中时只能通过调页解决, CPU 最终还是要访问主存。

⑤透明性不同 cache 的管理完全由硬件完成,对系统程序员和应用程序员均透明;而虚存管理由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实现存储管理的系统程序员不透明,而只对应用程序员透明(段式和段页式管理对应用程序员“半透明”)。

⑥未命中时的损失不同由于主存的存取时间是 cache 的存取时间的5~10倍,而主存的存取速度通常比辅存的存取速度快上千倍,故主存未命中时系统的性能损失要远大于 cache 未命中时的损失。

4、虚存机制要解决的关键问题

(1)调度问题决定哪些程序和数据应被调入主存。

(2)地址映射问题在访问主存时把虚地址变为主存物理地址(这一过程称为内地址变换);在访问辅存时把虚地址变成辅存的物理地址(这一过程称为外地址变换),以便换页。此外还要解决主存分配、存储保护与程序再定位等问题。

(3)替换问题决定哪些程序和数据应被调出主存。

(4)更新问题确保主存与辅存的一致性。

二、页式虚存地址映射

页式虚拟存储系统中,虚地址空间被分成等长大小的页,称为逻辑页;主存空间也被分成同样大小的页,称为物理页。相应地,虛地址分为两个字段:高字段为逻辑页号,低字段为页内地址(偏移量);实存地址也分两个字段:高字段为物理页号,低字段为页内地址。通过页表可以把虛地址(逻辑地址)转换成物理地址。

1.页式虚拟存储器的地址映射过程见下图。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2h5MzIzMg==,size_13,color_FFFFFF,t_70,g_se,x_16

 2.内页表和外页表

页表是虚地址到主存物理地址的变换表,通常称为内页表。与内页表对应的还有外页表,用于虚地址与辅存地址之间的变换。当主存缺页时,调页操作首先要定位辅存,而外页表的结构与辅存的寻址机制密切相关。例如对磁盘而言,辅存地址包括磁盘机号、磁头号、磁道号和扇区号等。

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值