虚拟存储器

一、虚拟存储器的基本概念                                   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、页式虚存地址映射                        
页式虚拟存储系统中,虚地址空间被分成等长大小的页  ,称为逻辑页;主存空间也被分成同样大小的页,称为物理页。相应地,虚地址分为两个字段:高字段为逻辑页号,低  字段为页内地址(偏移量);实存地址也分两个字段:高字  段为物理页号,低字段为页内地址。通过页表可以把虚地址  (逻辑地址)转换成物理地址。
页式虚拟存储器的地址映射过程见下图。e75eb77cf56e49b3a576da3cf4b00f08.png

 在大多数系统中,每个进程对应一个页表。页表中对应每一个虚存页面  有一个表项,表项的内容包含该虚存页面所在的主存页面的地址(物理  页号),以及指示该逻辑页是否已调入主存的有效位。地址变换时,用  逻辑页号作为页表内的偏移地址索引页表(将虚页号看作页表数组下标  )并找到相应物理页号,用物理页号作为实存地址的高字段,再与虚地  址的页内偏移量拼接,就构成完整的物理地址。现代的中央处理机通常  有专门的硬件支持地址变换。
每个进程所需的页数并不固定,所以页表的长度是可变的,因此通常的  实现方法是把页表的基地址保存在寄存器中,而页表本身则放在主存中  。由于虚存地址空间可以很大,因而每个进程的页表有可能非常长。例  如,如果一个进程的虚地址空间为2G字节,每页的大小为512字节,则  总的虚页数为231/29=222。              2、内页表和外页表                                                
页表是虚地址到主存物理地址的变换表,通常称为内页表。与内页表对应的还有外页表,用于虚地  址与辅存地址之间的变换。当主存缺页时,调页操  作首先要定位辅存,而外页表的结构与辅存的寻址  机制密切相关。例如对磁盘而言,辅存地址包括磁  盘机号、磁头号、磁道号和扇区号等。                                                           3、转换后援缓冲器                                            由于页表通常在主存中,因而即使逻辑页已经在主 存中,也至少要访问两次物理存储器才能实现一次 访存,这将使虚拟存储器的存取时间加倍。为了避 免对主存访问次数的增多,可以对页表本身实行二 级缓存,把页表中的最活跃的部分存放在高速存储 器中,组成快表。这个专用于页表缓存的高速存储 部件通常称为转换后援缓冲器(TLB)。保存在主存中 的完整页表则称为慢表。cda05c8bb9594926a6b1f319eb5fb055.png

三、段式虚拟存储器和段页式 虚拟存储器    1、段式虚拟存储器:段是按照程序的自然分界划分的长度可以动态 改变的区域。通常,程序员把子程序、操作数和常数等不同类型 的数据划分到不同的段中,并且每个程序可以有多个相同类型的 段。在段式虚拟存储系统中,虚地址由段号和段内地址(偏移量 )组成。虚地址到实主存地址的变换通过段表实现。每个程序设 置一个段表,段表的每一个表项对应一个段。每个表项至少包含 下面三个字段:                    (1)有效位:指明该段是否已经调入实存。         (2)段起址:指明在该段已经调入实存的情况下,该段在实存中 的首地址。                          (3)段长:记录该段的实际长度。设置段长字段的目的是为了保 证访问某段的地址空间时,段内地址不会超出该段长度导致地 址越界而破坏其他段。                                                                   段表本身也是一个段,可以存在辅存中,但一般是驻留在主存中。5cd9a9e7db8a4519abab704231d3fb39.png 

2、段式虚拟存储器的特点
段式虚拟存储器有许多优点:①段的逻辑独立性使其易于  编译、管理、修改和保护,也便于多道程序共享。②段长  可以根据需要动态改变,允许自由调度,以便有效利用主  存空间。
段式虚拟存储器也有一些缺点:①因为段的长度不固定,  主存空间分配比较麻烦。②容易在段间留下许多外碎片,  造成存储空间利用率降低。③由于段长不一定是2的整数次幂,因而不能简单地像分页方式那样用虚地址和实地址  的最低若干二进制位作为段内偏移量,并与段号进行直接  拼接,必须用加法操作通过段起址与段内偏移量的求和运  算求得物理地址。因此,段式存储管理比页式存储管理方  式需要更多的硬件支持。                                                  3、段页式虚拟存储器
段页式虚拟存储器是段式虚拟存储器和页式虚拟存储器的 结合。
实存被等分成页。每个程序则先按逻辑结构分段,每段再  按照实存的页大小分页,程序按页进行调入和调出操作,但可按段进行编程、保护和共享。e491b69e98a14476b2e2a48cde659470.png四、 虚存的替换算法                                          当从辅存调页至主存而主存已满时,也需要进行  主存页面的替换。虚拟存储器的替换算法与cache  的替换算法类似,有FIFO算法、LRU算法、LFU  算法等。
虚拟存储器的替换算法与cache的替换算法不同的  是:
(1)cache的替换全部靠硬件实现,而虚拟存储  器的替换有操作系统的支持。
(2)虚存缺页对系统性能的影响比cache未命中  要大得多,因为调页需要访问辅存,并且要进  行任务切换。
(3)虚存页面替换的选择余地很大,属于一个进  程的页面都可替换。

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ImDisk Toolkit 中文版是一款适用于 Windows 的免费映像安装程序,可用于安装大量选择的 CD/DVD,硬盘驱动器和软盘映像,如 ISO,MDF,CCD,CUE 等。 所选的映像可以打开为虚拟硬盘分区,虚拟光盘驱动器或虚拟软盘驱动器,具体取决于它们在创建之前的状态,分区,CD/DVD 或软盘驱动器。 虚拟磁盘映像安装工具 ImDisk Toolkit x64 中文特别版 虚拟磁盘映像安装工具 ImDisk Toolkit x64 中文特别版 对于那些不知道的人,RAM 磁盘是由随机存取存储器或系统存储器创建的硬盘驱动器。 这种存储的主要优点是速度非常快,可以以非常高的速度在文件上复制文件。 缺点是在关闭计算机后,数据会丢失,因为这种类型的存储需要始终存在电源以便维护数据。 对于临时存储,您需要在每次重新启动计算机时刷新,这种类型的驱动器是完美的。 ImDisk Toolkit 主要功能包括: 小巧轻便 – 它只有几 MB 大小 – 资源使用率低 允许您创建虚拟分区,CD/DVD 驱动器或软盘 只读模 – 可以在只读模下打开图像以防止编辑 可移动驱动器创建器 – 为您提供弹出驱动器的选项 RAM 磁盘创建器 – 从系统内存创建存储分区 ImDisk Toolkit 工具将允许您安装硬盘驱动器,CD-ROM 或软盘的映像文件,并创建一个或多个具有各种参数的 Ramdisk。ImDisk Toolkit 软件包包括 ImDisk Virtual Disk Driver(2.0.10),DiscUtils 库,它扩展了支持的映像文件格的数量,并添加了几个 GUI 和功能。 系统要求: Vista,7,8,8.1 或 10(64 位)。 某些映像文件格还要求使用 DiscUtils 库安装 .NET Framework 4(包含在 Windows 8 和更高版本中)。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值