操作系统 页式存储 页与块之间的关系
页式存储
- 注意页和块的对象的不同
对程序进行分页存储
对内存进行分块存储
文章最后会给出我总结的页和块的关系
- 逻辑地址和物理地址
a) 逻辑地址:由两部分组成,即页号 + 页内地址
设逻辑地址由总长度为m的二进制数表示,页内地址为n位,则页号为m-n位。
注意:
- 块内地址=页内地址=2n,同理最大的程序可允许有 > > 2m-n 个页面。
- 计算公式:
- 页号 = 逻辑地址/页长(商)
- 页内地址 = 逻辑地址%页长(余数)
b) 物理地址
物理地址 = 块号 * 块长 + 块内地址 +(用户基址)
物理地址 = 块号 * 页长 + 页内地址 +(用户基址)
为了弄清楚上面一大堆名词之间的关系,看看下面的例题。
根据所给条件求出物理地址(答案虽然已经给出,但是你可以装作没看见啊)
ps:用户基址是1000
例题
分析:注意每个页的页内地址是一样的,所以由公式
- 页号 = 逻辑地址/页长(商)
- 页内地址 = 逻辑地址%页长(余数)
我们可以知道逻辑地址 = 页号 * 页长 + 页内地址,所以页长 = (逻辑地址 - 页内地址)/页号.
解:
1 | 块长=页长=(4865-769)/2=2048,又 块内地址=页内地址,故 |
页块术语对应
页 | 块 |
---|---|
程序 | 内存 |
逻辑地址 | 物理地址 |
页号 | 块号 |
页内地址 | 块内地址 |
页长(页面大小) | 块长(块大小) |
ps:页内地址又可以成为页偏移,但是页内地址不是页长!!!!页长又可以成为页面大小。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Exiaの格纳库!