虚拟存储器的容量是虚拟的,实际上并没有这么多容量,之所以能达到这么大容量,是因为借用了外存的存储空间,把当前不需要访问的数据存放在外存,用内外存数据倒换的时间消耗来换取更大的逻辑存储空间。

  • 虚拟存储器是一个逻辑模型,并不是一个实际的物理存储器。
  • 虚拟存储器必须建立在主存-辅存结构基础上,虚拟存储器允许使用比主存容量大得多的地址空间,并不是虚拟存储器最多只允许使用主存空间;虚拟存储器每次访问时,必须进行虚实地址变换,而非虚拟存储器则不必。
  • 虚拟存储器的作用是分割地址空间,解决贮存的容量问题和实现程序的重定位。
  • 虚拟存储器和Cache都基于程序局部性原理。两者的相同点:都把程序中最近常用部分驻留在高速的存储器中;一旦这部分不用再送回低速存储器。这种换入换出操作都是由操作系统或者硬件完成,对用户透明。

两者的不同点:​​​Cache用硬件实现,虚拟存储器用操作系统和硬件相结合实现;Cache是一个物理存储器,虚拟存储器是一个逻辑存储器,其物理结构建立在主存-辅存结构上。

虚拟存储器的大小应该由哪些因素决定?

例如,32位地址总线的计算机,虚拟存储器的大小为4GB,但实存未必有这么大,实存由计算机的内存条大小决定,如插1G的内存条,内存就是1GB。如果我要编制一个程序,空间大小为4GB,那剩下的3GB从何而来?虚拟存储器的大小虽说可以随意调节(最大可以调节主存+磁盘总容量),不由地址线决定。但那么大的虚拟存储器没有意义,例如地址线32根,最多只能找到4GB个存储单元大小的空间,那设置成100G的虚拟存储空间毫无意义,因为根本找不到那部分的地址单元。因此统一化虚拟存储器的容量由计算机地址总线数量决定。


页式虚拟存储器

页式虚拟存储器就是将其基本单位划分为页,且将主存的物理空间划分为虚拟存储器等长的页。划分的页称为页面,主存的页称为实页,虚拟存储器的页称为虚页

优点:由于页面的起点,终点地址是固定的,因此页表简单,调入方便,主存空间浪费小

缺点:由于页面不是逻辑上的独立实体,因此处理,保护和共享都不如段式虚拟存储器方便。

段式虚拟存储器

段式虚拟存储器是一种将主存按段分配的存储管理方式,各段的长度因程序而异。段是利用程序的模块化性质,按照程序的逻辑结构划分成的多个相对独立部分,系统的基本信息传送单位为段,并通过地址变换机构实现访存过程。

优点:段的分界与程序的自然分界相对应;段的逻辑独立性使它易于编译,管理,修改和保护,也便于多道程序共享;某些类型的段(堆栈,队列)具有动态可变长度,允许自由调度以便于有效利用主存空间。

缺点:段的长度各不相同,段的起点和终点不定,給主存空间分配带来麻烦,造成空间浪费。

段页式虚拟存储器

段页式虚拟存储器是段式虚拟存储器和页式存储器的结合。

在这种方式中,把程序按逻辑单位分段之后,再把每个段分成固定大小的页。程序对主存的调入/调出是按页面进行的,但它又可以按段实现共享和保护。

优点:兼备页式存储器和段式虚拟存储器的优点 。

缺点:在地址映射过程中需要多次查表

TLB(快表)

在虚拟存储器中,如果不采取有效措施,访存速度就会大大降低,这是因为在页式和段式虚拟存储器中,必须先查页表或段表,而在段页式虚拟存储器中既要差页表也要查段表。为了加快查找速度,利用程序在执行过程中具有局部性的特点(例如Cache),将页表分为快表与慢表。一般的页表称为慢表,放在主存中。将当前最常用的页表信息放在一个小容量的高速存储器中,称为快表。在访问页面时,在快表中查找对应的页表项,若找到了,则通过该页表项查找对应的页面;若在快表中未找到所需要的页面,则再到慢表中查找。综上分析,若TLB命中,则页表一定命中。


牛刀小试

1.对36位虚拟地址的页式虚拟存储系统,每页8KB,每个页表项为32位,页表的总容量为多少?

虚拟地址大小:36位位共64GB

页表项数目:64GB/8KB=

页表总容量=页表项数目×每个页表字节数===32MB

2.某计算机主存地址空间大小为256MB,按字节编址。虚拟地址空间大小为4GB,采用页式存储管理,页面大小为4KB,TLB(快表)采用全相联映射,有4个页表项如图

则对虚拟地址03FFF180H进行虚实地址变换的结果是()

因为页面大小为4KB,所以页地址为12位。因此03FFF180H中的180H为页内地址,故页号为03FFFH查表得页框号为0153H,于是将页框号与页内地址进行拼接,既可以得到虚实地址变换的结果是0153180H。

(计算机组成原理)虚拟存储器相关推荐

  1. 计算机组成原理—虚拟存储器的分类

    建议将思维导图保存下来观看,或点击这里在线观看

  2. 计算机组成原理—虚拟存储器的基本概念

    建议将思维导图保存下来观看,或点击这里在线观看

  3. 计算机组成原理 并行、cache、虚拟存储器 练习题

    一.填空题 1.有关高速缓冲存储器Cache的说法正确的是(  ) . A.只能在CPU以外 B.CPU内外都可以设置Cache C.只能在CPU以内 D.若存在Cache,CPU就不能再访问内存 正 ...

  4. 计算机组成原理学习笔记第4章 4.12——虚拟存储器

    有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) Frist (在文末点击使用,返回文章首部) 目录 0. 思维导图 1. 虚拟 ...

  5. 计算机组成原理读写周期波形图,第3章存储器层次结构-1讲述.ppt

    第3章存储器层次结构-1讲述 计算机组成原理 * 计算机组成原理 --存储器层次结构(1) 2016-3-18 几个基本概念 1.存储器:计算机系统中的记忆设备,用来存放程序和数据. 2.存储元:存储 ...

  6. 计算机组成原理名词解释常用,2018考研408计算机组成原理名词解释(3)

    2018考研408计算机组成原理名词解释(3) 2017-09-29 16:02 | 考研集训营 随着时代的快速发展,任何行业都离不开网络,导致计算机行业近几年非常的火热,使各大高校竞相争抢优秀人才, ...

  7. 计算机组成原理第3版谢树煜,计算机组成原理(第3版)

    章绪论1 1.1计算机的基本特性1 1.1.1二进制数据2 1.1.2存储程序2 1.1.3逻辑运算2 1.1.4高速电子开关电路2 1.1.5数字编码技术2 1.2计算机的基本组成3 1.2.1基本 ...

  8. 计算机导论与计算机组成原理关系,计算机组成原理

    一 .课程简介 课程中文名称:<计算机组成原理与汇编语言> 课程英文名称:Computer principle and assembly language 课程编号:ZYB08003 课程 ...

  9. 计算机组成原理课程内容,计算机组成原理课程教学大纲.doc.doc

    计算机组成原理课程教学大纲.doc.doc 附件A 计算机组成原理课程教学大纲 课程名称 中文:计算机组成原理 英文: the Principle of Computer Organization 课 ...

最新文章

  1. 哲学是什么?(选自:苏菲的世界)
  2. MVC框架内容-视图
  3. 属性加密测试用例相关问题的分析
  4. Jupyter notebook的正确打开方式
  5. 怎样给Spark传递函数—怎样让你的Spark应用更高效更健壮
  6. SpringBoot 优雅停止服务的几种方法
  7. java原码、补码、反码总结
  8. 使用C# Detach和Attach 数据库
  9. 双目估计方法_双目深度估计中的自监督学习概览
  10. 计算机网络实验(二)2交换机的基本配置与管理
  11. dell 服务器 重装Linux系统
  12. 红旗h5中控台恢复出厂设置后不显示倒车影像问题
  13. size_t、ssize_t、int、long的比较
  14. Python-Django毕业设计影城在线售票及票房数据分析系统(程序+Lw)
  15. 男友是程序员,看着他压力大我难受。有哪些缓解压力的好方法?
  16. 2021年陕西葡萄种植、生产及出口情况分析[图]
  17. 《c语言程序设计》网课答案,C语言程序设计基础知到网课答案
  18. c程序语言中long,C语言long
  19. 三种方法获取列表长度
  20. 网络电视经常出现服务器无响应,为什么pps总是显示服务器未能响应停止播放

热门文章

  1. 图片的MD5查询方式
  2. 桌面有个文件夹文件或目录损坏且无法读取
  3. 使用Matlab实现英文单词的形近词查找
  4. moment.js 设置语言为中文
  5. 解决android中java.lang.RuntimeException: Unable to start activity ComponentInfo问题
  6. WebSocket实现实时聊天系统
  7. Python函数中的闭包与装饰器
  8. 如何用最暴力的方法实现恺撒密码——python
  9. CollapsingToolbarLayout + Toolbar结合使用minHeight不生效源码分析
  10. IP分片 ping包