2.6.2 页式存储
本课核心知识点整理
本节导学
页式存储是 2.6 中最容易出计算题的部分。它把用户程序逻辑空间划分成固定大小的页,把主存划分成同样大小的页框/页帧。程序页被调入主存后,逻辑页号与物理页帧号的对应关系记录在页表中。
地址转换时,逻辑地址已知,目标是求物理地址。核心规则是:页号查页表得到页帧号,页内地址保持不变。
页表记录什么
页表记录的是“逻辑页号 -> 物理页帧号”的映射。一个程序的第 0 页、第 1 页、第 2 页不一定连续放在主存中,所以不能直接把逻辑页号当成物理页帧号,必须查页表。
页式存储带来的好处是便于离散分配,减少外部碎片;代价是需要页表管理,地址转换多了一次查表,页面大小还会带来内部碎片问题。
页内地址长度由页面大小决定
以 4KB 页面为例:
- 4KB = 4096B =
212。 - 若按字节编址,页内地址需要 12 位。
- 编号范围是 0 到 4095。
一般地,如果页面大小为
| 页面大小 | 字节数 | 页内地址位数 |
|---|---|---|
| 1KB | 10 | |
| 2KB | 11 | |
| 4KB | 12 | |
| 8KB | 13 |
地址转换规则
text
逻辑地址 = 页号 + 页内地址
页号查页表 -> 页帧号
物理地址 = 页帧号 + 页内地址页内地址保持不变。
如果题目给十进制逻辑地址和页大小,也可以用除法拆:
如果题目给二进制地址和页面大小,则低
页面置换和淘汰
页式存储还涉及缺页中断、访问位、修改位和页面淘汰原则:
- 访问位为 0 的页面优先淘汰。
- 多个访问位为 0 时,优先淘汰修改位为 0 的页面。
- 修改位为 1 的页面淘汰成本更高,因为可能要写回。
缺页中断表示要访问的页当前不在主存,需要从外存调入。如果主存没有空闲页框,就要选择某个页面淘汰。访问位反映近期是否被访问,修改位反映淘汰时是否需要写回外存。访问位为 0 且修改位为 0 的页面,淘汰代价通常最低。
做题路线
- 先把页面大小换成
,确定页内地址位数。 - 拆逻辑地址:高位为页号,低
位为页内地址;十进制题用商和余数。 - 用页号查页表,得到页帧号。
- 物理地址由页帧号和原页内地址组成。
- 页面淘汰题先看访问位,再看修改位;修改位为 1 的页面淘汰成本更高。
例题
单选
页式地址转换的核心规则是:
单选
页面大小为 4KB,按字节编址,页内地址需要:
单选
按本节的页面淘汰原则,优先淘汰:
自查要点
- 为什么 4KB 页内地址是 12 位?
- 页号和页帧号的对应关系在哪里?
- 为什么修改位为 1 的页面淘汰成本更高?