存储系统---虚拟存储器

  • 引言:前面讨论了主存和告诉缓冲存储器,那么关于三级存储层次结构中最后一个内容就只剩下辅存了。这次要讲的不是辅存,但是虚拟存储器却必须在辅存的基础是上实现,而关于辅存相关的内容将在后续的课程中展开。

主要内容:

  1. 虚拟存储器的基本概念
  2. 虚拟存储器的虚地址变换
  3. 替换算法

一、什么是虚拟存储器

  • 虚拟存储器只是一个容量非常大的存储器的逻辑模型(无法使用物理存储单元的地址来检索该空间,它需要自己的地址来检索:虚拟地址/虚地址),不是任何实际的物理存储器。它借助于磁盘等辅助存储器来扩大主存容量
  • 虚拟存储器不仅是解决存储容量和速度的矛盾的一种方法,而且也是管理存储设备的有效方法。有了虚拟存储器,用户无需考虑所编程序在主存中是否放的下或放在上面位置等问题。

二、虚拟地址/虚地址

  • 虚拟存储器为用户提供了一个比实际主存空间大得多的程序地址空间。此时程序的逻辑地址称为虚拟地址。相对应的物理地址(又称为实地址)是cpu地址引脚送出的,用于访问主存的地址。(cpu引脚送出,??????)
  • 虚拟地址是由编译程序生成的。工作在虚拟地址模式下的cpu理解这些虚拟地址,并将他们转换为物理地址
  • 虚拟存储器的内容是保存在磁盘上的,因此虚拟地址空间的大小是受磁盘容量的限制的。

四、虚拟存储器的工作原理

  • 从原理上看,主存–外存层次和Cache–主存层次有很多相似之处:两者都是基于局部性原理,把程序最近常用的部分驻留在高速的存储器中;一旦这部分不常用了,就送回低速存储器中。
  • 数据换入换出均由操作系统完成,用户不用干涉。
  • 最终目的:使存储系统的性能接近告诉存储器,而价格接近低速存储器。
  • 地址映射和替换策略:从原理上看是相同的。但由于磁盘的存取速度是主存的上千倍,而cache的存取速度是主存的5-10倍。

一、主存—外存层次数据传输基本单位

  • 一般采用段、页或段页来管理

1. 段的概念:

  • 什么是段呢,按照程序的逻辑结构划分位多个具有独立意义的部分就是段。
  • 特点:段作为=具有独立意义的逻辑段位,可以被其他程序调用,以形成较大规模的程序。
  • 主存中存在一个段表,用来指明各段在主存中的位置。(段一般都驻留在内存,不过也可以放入外村,需要的时候再调入内存)

2. 段式管理

  • 把主存按段分配的存储管理方式称为段式管理。
  • 优点:段的逻辑独立性使得它易于编译、管理、修改和保护,也便于多道程序共享。某些类型的段(栈堆、队列)具有动态可变长度,允许自由调度以便有效利用主存空间。
  • 缺点:由于段得长度各不相同,段的七点和终点不定,给主存空间分配带来麻烦,而且很容易在段间留下许多空余的零碎空间不好利用。

3. 页式管理:

  • 页:将存储器空间划分位具有定长的区域。主存—实页(物理页),虚存—虚页(逻辑页)。
  • 页表:指明外存各页在主存中的位置(由于页的长度式固定的,因此页面中只需存放虚页号、实页号和装入位等控制信息三部分)
  • 页式管理:主存与虚存之间以页位基本信息传送单位的存储器管理方式。
  • 优点:相对于段式管理来说,所产生的碎片较少
  • 缺点: 一个页在逻辑上不独立,在处理、保护和共享等方面不如段式管理方便,也就是效率低。
  • 总结: 段式管理浪费空间 页式管理效率低

4.段页式管理:

  • 程序按模块分段,段内在分页。

五、虚拟地址向物理地址的变换

  • 虚拟地址式在程序被编译时由编译程序生成的,CPU是如何根据虚拟地址形成主存的是地址,以访问内存。 对于不同的管理方式,其变换过程不同,下面分别介绍各种管理方式下主存的地址的形成。
  • 通过段表 、页表来计算。
  • 未完待续……
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值