虚拟存储器/虚拟内存

器为每个程序提供了一个大的、一致的、私有地址空间。

三个重要功能:

  1. 将主存看成是磁盘的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据。
  2. 为每个进程提供了一致的私有空间。
  3. 保护每个进程的地址空间不被其他进程破坏。

虚拟寻址系统

  • CPU上的MMU(memory management unit),利用存放在主存中的查询表来动态的翻译虚拟地址,该表的内容由操作系统管理。
  • 虚拟地址空间的大小是由表示最大地址所需位数来描述的。
  • 物理地址空间的大小与系统的物理存储器的大小相对应。

概念上而言,虚拟存储器(VM)被组织为一个由 存放在磁盘上的N个连续的字节大小的单元组成的数组。每字节都有一个惟一的虚拟地址,这个惟一的虚拟地址是作为到数组的索引的。磁盘上数组的内容被缓存在主存中。 和存储器层次结构中其他缓存一样,磁盘(较低层)上的数据被分割成块,这些块作为磁盘和主存(较高层)之间的传输单元。VM系统通过将虚拟存储器分割为称为虚拟页(virtual page, VP)的大小固定的块,来处理这个问题。每个虚拟页的大小为P-2"字节。类似地,物理存储器被分割为物理页(physical page, PP),大小也为P字节(物理页也被称为页帧,page frame)。

主存作为缓存

虚拟存储器部署在磁盘上;页表部署在内存中;OS维护页表内容;MMU读取页表内容。

每个进程都有自己的虚拟存储器,相当于每个进程都在磁盘上开辟了属于自己的虚拟页空间,因此每个进程都有诸如VP1~VP7这些虚拟页存储在磁盘上,因此物理存储器中也为每个进程准备了独立的页表。但是,物理存储器却可能被不同进程的虚拟页共享到同一个物理页上。

图10.13展示了 MMU是如何利用页表来实现这种映射的。CPU中的一个控制寄存器,页表基 址寄存器( page table base register,PTBR)指向当前页表。n位的虚拟地址包含两个部分:一个p 位的 VPO (virtual page offset,虚拟页面偏移)和一个(n-p)位的 VPN (virtual page number,虚拟页号)。MMU利用VPN来选择适当的PTE。例如,VPN0选择PTEO, VPN1选择PTE1,以此类推。 将页表条H中PPN(physical page number,物理页号)和虚拟地址中的VPO串联起来,就得到相应 的物理地址。注意,因为物理和虚拟页面都是P字节的,所以PPO(physical page offset,物理页面 偏移)和VPO足相同的。

地址翻译

图10.14 (a)展示了当出现页面命中时,CPU硬件执行的步骤。

  • 第一步:处理器生成一个虚拟地址,并把它传送给MMU。
  • 第二步:MMU生成PTE地址,并从高速缓存/主存请求得到它。
  • 第三步:高速缓存/主存向MMU返回PTE。
  • 第四步:MMU构造物理地址,并把它传送给高速缓存/主存。
  • 第五步:高速缓存/主存返回所请求的数据字给处理器。

页面命中
和页面命中不同的是,页面命中完全是由硬件来处理的,而处理缺页要求硬件和操作系统协同完成。

  • 第一步到第三步:和图10.14 (a)中的第一步到第三步相同。
  • 第四步:PTE中的有效位是零,所以MMU触发了一次异常,传递CPU由的控制到操作系统内核中的缺页异常处理程序。
  • 第五步:缺页处理程序确定出物理存储器中的牺牲页,如果这个页面己经被修改了,则把 它页面换出到磁盘。
  • 第六步:缺页处理程页面调入新的页面,并更新存储器中的PTE。
  • 第七步:缺页处理程序返回到原来的进程,驱使导致缺页的指令重新启动。CPU将引起缺 页的指令重新发送给MMU。因为虚拟页面现在缓存在物理存储器中,所以就会命中,在 MMU执行了图10.14 (b)中的步骤之后,主存就会将所请求字返回给处理器。

缺页

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值