分页式存储管理

上一篇:连续存储空间管理
下一篇:分段式存储管理

基本原理

允许作业存放在若干个不相邻的分区中,既可免去移动内存信息而产生的工作量,又可充分利用主存空间,尽量减少主存碎片

基本概念

  • 页框:主存空间按物理地址分成多个大小相等区,每个区称为块(又称页框page frame)

  • 页面:程序(作业)按逻辑地址分成多个大小相等的区,每个区称为一个页面(page),大小与页框大小相等

  • 页表:页表是记录逻辑空间(虚拟内存)中每一页在内存中对应的物理块号。但并非每一页逻辑空间都会实际对应着一个物理块,只有实际驻留在物理内存空间中的页才会对应着物理块。
    页表是需要一直驻留在物理内存中的(多级页表除外),另外页表的起址和长度存放在 PCB(Process Control Block)进程控制结构体中。

  • 逻辑地址形式:页号和单元号
    请添加图片描述

  • 页表、作业表和地址转换
    逻辑地址 = 页号 * 页长 + 单元号 【通过页号查找页表】
    物理地址 = 页框号(块号) * 块长 + 单元号
    请添加图片描述

地址转换

请添加图片描述
请添加图片描述

  1. 进程访问某个逻辑地址时,分页地址机构自动将逻辑地址分为页号和页内地址
  2. 页号大于页表长度,越界错误
  3. 页表项的地址 p = 页表起始地址 F + 页号 P * 表项大小 S,从而得到对应的物理块号 B
  4. 页和物理块的大小是一致的,所以 页内地址=块内地址
  5. 然后 物理地址 = 物理块号 B * 页大小 L + 页内地址
  6. 根据物理地址读取数据

请添加图片描述

相联存储器和快表

  • 通常页表存放在主存中,因此按逻辑地址访问某个主存地址内容时,需要涉及二次主存访问,效率较低
  • 相联存储器,一个专用的高速缓冲存储器,用于存放最近被访问的部分页表,是分页式存储管理的重要组成部分。
  • 快表,存放在相联存储器中的部分页表内容
    请添加图片描述

快表是为了加快虚拟地址到物理地址这个转换过程而存在的。页式存储管理的快表一般存放在 CPU 内部的高速缓冲存储器 Cache。快表与页表的功能类似,其实就是将一部分页表存到 CPU 内部的高速缓冲存储器 Cache。CPU 寻址时先到快表查询相应的页表项形成物理地址,如果查询不到,则到内存中查询,并将对应页表项调入到快表中。但,如果快表的存储空间已满,则需要通过算法找到一个暂时不再需要的页表项,将它换出内存。因为高速缓冲存储器的访问速度要比内存的访问速度快很多,因此使用可以大大加快虚拟地址转换成物理地址。根据统计,快表的命中率可以达到 90%以上。
请添加图片描述

解决页表规模过大

  • 多级页表
    • 页表可以部分存放在内存中
    • 例,二级页表系统中,一次按逻辑地址的主存访问需要访问三次主存:一次访问页目录、一次访问页表、一次访问具体的数据
  • 反置页表
    • 块号→页号
    • 仅保存调入内存的页面信息

其他

  • 存储空间的分配和去配
    • 主存分配以块为单位
    • 可采用位示图记录主存分配情况(0/1)
    • 或采用链表方式记录主存分配情况
  • 页面共享
    • 代码共享,由于代码中包含指令或数据地址,需要确定统一的页号
  • 页面保护
    • 标志位法,在页表中增加标志位信息
    • 存储保护键法

下一篇:分段式存储管理

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值