Skip to content
难度基础(★)
建议时长45分钟

2.6.1 段页式存储概述

本课核心知识点整理
本课核心知识点手绘流程图(SVG)

本节导学

计算机组成章节讲过 Cache、主存、外存的层次关系;操作系统这里接着讲主存与外存之间如何配合。外存容量大但慢,主存速度快但容量小,程序运行时 CPU 主要从 Cache 和主存取数据。于是操作系统需要把当前需要的页面或段从外存调入主存,不在主存时触发缺页中断,再从外存调入。

存储管理的核心问题可以概括为:程序看到的是逻辑地址,硬件访问的是物理地址,操作系统必须负责二者之间的转换,并同时完成分配、保护、调入调出和回收

三种存储管理方式

方式切分依据重点
页式固定大小页面方便离散分配
段式程序逻辑段贴近程序逻辑
段页式先分段再分页兼顾逻辑和分配

页式存储把程序逻辑空间和主存空间都切成固定大小的块,便于把一个程序分散装入不连续的内存页框。段式存储按程序逻辑划分,例如代码段、数据段、栈段,便于共享和保护。段页式先按逻辑分段,再把每段分页,试图同时获得段式的逻辑表达能力和页式的离散分配能力。

为什么需要虚拟存储视角

很多程序逻辑上认为自己拥有连续、较大的地址空间,但真实主存并不一定足够,也不一定连续。操作系统可以把外存看作主存的扩展,把暂时不用的内容留在外存,把当前需要的内容调入主存。程序访问不在主存的页时,会产生缺页中断,系统暂停当前执行,调入所需页面后再继续。

这也是为什么页式、段式、段页式都绕不开地址转换:用户程序给出的是逻辑地址,真正访问内存时必须变成物理地址。

地址结构先分清

存储方式逻辑地址结构地址转换关键
页式页号 + 页内地址页号查页表得到页帧号,页内地址不变
段式段号 + 段内偏移量段号查段表,先判越界,再基址加偏移
段页式段号 + 段内页号 + 页内地址先查段表找到页表,再查页表得到页帧号

做题路线

  1. 看到“固定大小页、页框、页内地址”,按页式处理。
  2. 看到“逻辑模块、段号、段长、段内偏移”,按段式处理。
  3. 看到“段号 + 页号 + 页内地址”,按段页式处理。
  4. 页式题重点算页内地址位数和页表映射;段式题重点判越界;段页式题重点查表顺序。
  5. 记住考试更常考页式地址转换和页面淘汰原则,段式主要掌握合法段地址判断。

例题

单选
把程序和内存都按固定大小划分,属于:
单选
按程序的自然逻辑模块划分,更符合:
单选
段页式地址转换通常需要:

自查要点

  1. 页式和段式的划分依据有什么不同?
  2. 为什么段页式要先分段再分页?
  3. 地址转换为什么是存储管理的核心?