title: 存储管理-北京大学操作系统课程 original_path: /田浩然上传的资料/1A007 操作系统/操作系统PKU_2009_05(2)_0413.pdf file_size: 997 KB total_pages: 75 processed_date: 2026-09-29 method: PDF文本提取+OCR status: done
存储管理 - 北京大学操作系统课程
主讲教师:赵俊峰
课程概述
本课程讲述操作系统存储管理的核心概念,包括:
- 分区管理方案
- 页式存储管理方案
- 段式存储管理方案
- 覆盖与交换技术
- 虚拟存储技术
一、页式存储管理
基本思想
页式存储管理是英国曼彻斯特大学提出并在Atlas计算机上使用的方案。
核心原理:
- 将物理内存分成大小相等的许多区,称为”块”(页框 page frame)
- 将程序的逻辑地址也进行分页,页的大小与块的大小一致
- 程序加载时,分配其所需的所有页,这些页不必连续
目的: 达到充分利用内存,提高内存利用率
页的地址结构
逻辑地址由两部分组成:
- 页号 P:高位部分
- 页内地址 W:低位部分
页面大小通常为几KB到几十KB(2
逻辑地址 = 页号 + 页内地址
物理地址 = 块号 * 块长 + 页内地址
存储空间的分配与回收
分配过程:
- 察看空闲块数是否满足程序要求
- 从位视图中找出为0的位,置为1
- 计算块号:
块号 = 字号 * 字长 + 位号 - 装入程序,建立页表
回收过程:
- 根据归还的块号计算位视图中对应位置
- 将占用标志修改为0
- 将回收的块数加入空闲块数
地址转换与快表(TLB)
硬件支持:
- 页表控制寄存器(页表始址寄存器 + 页表长度寄存器)
- 相联寄存器——快表(TLB)
TLB工作原理:
- 存放当前访问最频繁的少数页面的页表项
- TLB hit:直接利用快表中的页号得到物理地址
- TLB miss:仍通过内存中的页表进行地址映射
地址转换公式:
物理地址 = 内存块号 * 块长 + 页内地址
优缺点
优点:
- 没有外碎片
- 每个内碎片不超过页大小
- 一个程序不必连续存放
- 便于改变程序占用空间的大小
缺点:
- 程序全部装入内存
- 不易实现共享
- 不便于动态连接
二、段式存储管理
基本思想
段式管理把内存视为二维空间,与进程逻辑相一致。
核心思想:
- 每个程序由若干段组成(主程序、函数、全局变量、栈、符号表等)
- 每个段是一个逻辑单元,有自己的地址空间
- 段的大小一般不相等
存储空间的分配与回收
段表结构:
| 逻辑段号 | 物理段首址 | 物理段长度 |
|---|---|---|
| 0 | 1500 | 3200 |
| 1 | 3400 | 1500 |
| 2 | … | … |
分配过程:
- 以段为单位分配内存
- 每个段占据连续空间(可变分区)
- 各段之间可以不连续存放
地址转换与存储保护
硬件支持:
- 段表始址寄存器
- 段表长度寄存器
- 高速缓冲存储器(快表)
地址转换:
物理地址 = 段首址 + 段内地址
保护措施:
- 地址越界保护法
- 存取权控制保护法
三、页式和段式的比较
| 特性 | 页式管理 | 段式管理 |
|---|---|---|
| 地址空间 | 一维线性 | 二维(段号+段内地址) |
| 分页单位 | 系统固定大小 | 用户逻辑单元 |
| 碎片类型 | 内碎片 | 外碎片 |
| 共享 | 困难 | 方便 |
| 程序员关注 | 透明 | 可见 |
四、段页式管理方案
产生背景: 结合页式和段式优点,克服二者缺点
基本思想:
- 用段式方法按程序内在逻辑关系划分
- 用页式来分配和管理内存空间
- 每段分成若干页面,物理页面大小相等
地址结构:
逻辑地址 = 段号 + 页号 + 页内地址
实现步骤:
- 根据段号查段表,得到该段的页表始址
- 根据页号查页表,得到主存块号
- 由块号与页内地址形成绝对地址
关键概念总结
| 概念 | 说明 |
|---|---|
| 页(Page) | 逻辑地址空间的最小单位 |
| 页框(Page Frame) | 物理内存的最小单位 |
| 页表(Page Table) | 记录页号与块号的对应关系 |
| TLB | 高速翻译检查缓冲区 |
| 外碎片 | 分散的小空闲区,可合并 |
| 内碎片 | 分配的块多于实际需要的部分 |
作业题要点
- 存储管理功能:内存分配、地址转换、存储空间共享、存储空间保护
- 碎片问题及解决方案
- 页式/段式地址转换过程
- FIFO、LRU、OPT、LFU页面置换算法