分享免费的编程资源和教程

网站首页 > 技术教程 正文

虚拟存储器 虚拟存储器是

goqiw 2024-10-05 19:05:12 技术教程 9 ℃ 0 评论

1、 什么是虚拟存储器

虚拟存储器只是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用。

 虚拟存储器指的是主存~外存层次。它以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间。此时程序的逻辑地址称为虚拟地址(虚地址)。

物理地址:由CPU地址引脚送出,用于访问主存的地址。

虚拟地址:由编译程序生成的,是程序的逻辑地址,其地址空间的大小受到辅助存储器容量的限制。

主存~外存层次所用的地址变换映射方法和替换策略与cache~主存层次所用的方法和策略是相同的,即都基于程序局部性原理。它们遵循的原则是:

①把程序中最近常用的部分驻留在高速的存储器中。

② 一旦这部分变得不常用了,把它们送回到低速的存储器中。

③ 这种换入换出是由硬件或操作系统完成的,对用户是透明的。

④ 力图使存储系统的性能接近高速存储器,价格接近低速存储器。

两种存储系统的主要区别在于:

  在虚拟存储器中未命中的性能损失要远大于cache系统中未命中的损失。

2、 主存-外存层次的基本信息传送单位

主存-外存层次的基本信息传送单位可采用几种不同的方案:段、页或段页。

★ 段是按照程序的逻辑结构划分成的多个相对独立部分,作为独立的逻辑单位。

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

  缺点:因为段的长度各不相同,起点和终点不定,给主存空间分配带来麻烦,而且容易在段间留下许多空余的零碎存储空间,造成浪费。

★ 页是主存物理空间中划分出来的等长的固定区域。

  优点:页面的起点和终点地址是固定的,方便造页表,新页调入主存也很容易掌握,比段式空间浪费小。

  缺点:处理、保护和共享都不及段式来得方便。

★ 段页式管理采用分段和分页结合的方法。

  程序按模块分段,段内再分页,进入主存以页为基本信息传送单位,用段表和页表进行两级定位管理。

3、页式虚拟存储器

页式虚拟存储系统中,虚拟空间分成页,称为逻辑页;主存空间也分成同样大小的页,称为物理页。

  虚存地址分为两个字段:高字段为逻辑页号,低字段为页内行地址。

  实存地址也分两个字段:高字段为物理页号,低字段为页内行地址。

  页表中每一个虚存逻辑页号有一个表目,表目内容包含该逻辑页所在的主存页面地址(物理页号),用它作为实存地址的高字段,与虚存地址的页内行地址字段相拼接,产生完整的实主存地址,据此来访问主存。页式管理的地址变换如图:

为了避免页表已保存或已调入主存储器时对主存访问次数的增多,把页表的最活跃部分存放在高速存储器中组成快表。快表与慢表实现内部地址变换的方式如下图。

  快表由硬件组成,比页表小得多,查表时,由逻辑页号同时去查快表和慢表,当在快表中有此逻辑页号时,就能很快地找到对应的物理页号送入实主存地址寄存器,从而做到虽采用虚拟存储器但访主存速度几乎没有下降。

4、段式虚拟存储器

在段式虚拟存储系统中,段是按照程序的逻辑结构划分的,各个段的长度因程序而异。

  虚拟地址由段号和段内地址组成,为了把虚拟地址变换成实主存地址,需要一个段表。段表也是一个段,可以存在外存中,但一般是驻留在主存中

  虚存地址的段表形式以及虚存地址向实存地址的变换过程如下图所示。

5、段页式虚拟存储器

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

  它把程序按逻辑单位分段以后,再把每段分成固定大小的页。

  程序对主存的调入调出是按页面进行的,但它又可以按段实现共享和保护,兼备页式和段式的优点。

  缺点是在映象过程中需要多次查表。

在段页式虚拟存储系统中,每道程序是通过一个段表和一组页表来进行定位的。段表中的每个表目对应一个段,每个表目有一个指向该段的页表起始地址及该段的控制保护信息。由页表指明该段各页在主存中的位置以及是否已装入、已修改等状态信息。

  如果有多个用户在机器上运行,多道程序的每一道需要一个基号,由它指明该道程序的段表起始地址。

虚拟地址格式如下:

基 号

段 号

页 号

页内地址

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表