分页存储管理的逻辑地址结构【操作系统】

问题引出

今天在学习OS的内存管理内容时,看到了如下所示逻辑地址介绍。(内容为22年王道书P156)
看到这种形式之后,我产生了一定的疑惑:逻辑地址难道不是一个数值吗?为什么是这种表的形式?
请添加图片描述

问题分析与解决

根据王道视频中关于地址的二进制表示的补充讲解,以及如下所示两个公式的启发,我突然有所领悟:

页号=逻辑地址/页面长度
页内偏移量=逻辑地址%页面长度

回忆起二进制的除法和余数运算法则:如果页面长度是 2 n 2^n 2n的话,那么通过二进制除法即为移位n次!那么移位后的数即为商——页号,那些被移位掉的数即为余数——偏移量。

发现了这个巧妙的设计之后再回去看那张图,瞬间茅塞顿开,确实是十分巧妙

附1:页面长度是 2 n 2^n 2n时的好处

  1. 方便上面逻辑地址的计算,不赘述
  2. 当物理地址也刚好是相同位数二进制表示时,根据逻辑地址–>页号–>内存块号,再将二进制表示的内存块号和二进制表示的页内偏移量拼接起来,即为最终物理地址在这里插入图片描述

附2:求逻辑地址A对应的物理地址流程

查页表
块号*内存块大小
相加
相加
逻辑地址
页号P
页面偏移量W
块号
物理内存中的起始地址
物理地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值