操作系统中的分页

分页是一种内存管理方案,无需连续分配物理内存。该方案允许进程的物理地址空间是非连续的。

null
  • 逻辑地址或虚拟地址(以位表示):由CPU生成的地址
  • 逻辑地址空间或虚拟地址空间(以字或字节表示):程序生成的所有逻辑地址的集合
  • 物理地址(以位表示):内存单元上实际可用的地址
  • 物理地址空间(以字或字节表示):与逻辑地址对应的所有物理地址的集合

例子:

  • 如果逻辑地址=31位,那么逻辑地址空间=2 31 单词=2克单词(1克=2 30 )
  • 如果逻辑地址空间=128M字=2 7. * 2 20 单词,然后逻辑地址=log 2. 2. 27 =27位
  • 如果物理地址=22位,那么物理地址空间=2 22 单词=400万个单词(1米=2 20 )
  • 如果物理地址空间=16M字=2 4. * 2 20 单词,然后物理地址=log 2. 2. 24 =24位

从虚拟地址到物理地址的映射由内存管理单元(MMU)完成,MMU是一个硬件设备,这种映射称为分页技术。

  • 物理地址空间在概念上划分为若干固定大小的块,称为 框架 .
  • 逻辑地址空间也被分割成固定大小的块,称为 .
  • 页面大小=框架大小

让我们考虑一个例子:

  • 物理地址=12位,然后物理地址空间=4K字
  • 逻辑地址=13位,然后逻辑地址空间=8K字
  • 页面大小=框架大小=1K字(假设)

size

CPU生成的地址分为

  • 页码(p): 在逻辑地址空间或页码中表示页所需的位数
  • 页偏移量(d): 表示页中特定字所需的位数,或逻辑地址空间的页大小,或页或页偏移量的字数。

物理地址分为

  • 帧号(f): 表示物理地址空间或帧号的帧所需的位数。
  • 帧偏移(d): 表示帧中特定字或物理地址空间的帧大小或帧或帧偏移量的字数所需的位数。

页表的硬件实现可以通过使用专用寄存器来完成。但是,只有当页表很小时,页表寄存器的使用才令人满意。如果页表包含大量条目,那么我们可以使用TLB(translation Look aside buffer,翻译查找缓冲区),这是一种特殊的小型快速查找硬件缓存。

  • TLB是高速联想存储器。
  • TLB中的每个条目由两部分组成:标记和值。
  • 当使用该内存时,将同时将一个项目与所有标记进行比较。如果找到该项,则返回相应的值。

    Size1

    主存储器访问时间=m 如果页表保存在主存中, 有效访问时间=m(对于页表)+m(对于页表中的特定页)

    save2

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享