基本分页存储管理的基本概念

基本分页存储管理的基本概念

(前言:概念特别多,注意理解和区分)

image


一、概念

(一)页和页框(易混淆)

分页存储:将内存空间分为一个个大小相等的分区,每个分区就是一个“页框”。每个页框有一个编号(“页框号”),页框号从0开始

将某进程的逻辑地址空间也分为页框大小相等的一个个部分,每个部分称为一个”“或“页面”。每个页面有一个编号(“页号”),页号从0开始

——相同说法:(重点:两者的第一项大小相等)

关键字:内存

  • 页框 = 页帧 = 内存块 = 物理块 = 物理页面
  • 页框号 = 页帧号 = 内存块号 = 物理块号 = 物理页号(从0开始)

关键字:进程

  • = 页面
  • 页号 = 页面号(从0开始)

操作系统以页框为单位为各个进程分配内存空间。进程的每个页面分别放入一个页框中。也就是说,进程的页面与内存的页框一一对应的关系。

各个页面不必连续存放,可以放到不相邻的各个页框中。

image

(二)页表

目的:了解进程的每个页面在内存中存放的位置。因此操作系统要为每个进程建立一张页表(存放在 PCB(进程控制块)中)

image

(补充:一个页表项:页表中的一行)

image

image

(补充理解:页表项连续存放,因此页号可以是隐含的,不占存储空间(类比数组的下标也不占存储空间))

二、地址转换的实现

回顾:连续存储时:

image

非连续存储:

特点(重要): 虽然进程的各个页面是离散存放的,但是页面内部是连续存放的

image

——重点:

$$
逻辑地址A对应的物理地址=P号页面在内存中的起始地址+页面偏移量W
$$

其中:

P 号页面在内存中的起始地址应该先去页表中查 P 号页面映射的内存块号(页框号)P'

$$
P'号内存块的地址=P'*内存块大小
$$

(一)计算页号和页内偏移量(通法:包括2的整数次幂的情况和不是2的整数次幂的情况)

image

image

(二)页面大小为2的整数次幂的特殊情况

image

关键词理解:拼接

结论:如果每个页面大小为 2K B,用二进制数表示逻辑地址,则末尾 K 位即为页内偏移量,其余部分就是页号

image

posted @   Wind_730  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示