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

逻辑地址 = 页号 + 页内地址
物理地址 = 块号 * 块长 + 页内地址

存储空间的分配与回收

分配过程:

  1. 察看空闲块数是否满足程序要求
  2. 从位视图中找出为0的位,置为1
  3. 计算块号:块号 = 字号 * 字长 + 位号
  4. 装入程序,建立页表

回收过程:

  1. 根据归还的块号计算位视图中对应位置
  2. 将占用标志修改为0
  3. 将回收的块数加入空闲块数

地址转换与快表(TLB)

硬件支持:

  1. 页表控制寄存器(页表始址寄存器 + 页表长度寄存器)
  2. 相联寄存器——快表(TLB)

TLB工作原理:

  • 存放当前访问最频繁的少数页面的页表项
  • TLB hit:直接利用快表中的页号得到物理地址
  • TLB miss:仍通过内存中的页表进行地址映射

地址转换公式:

物理地址 = 内存块号 * 块长 + 页内地址

优缺点

优点:

  • 没有外碎片
  • 每个内碎片不超过页大小
  • 一个程序不必连续存放
  • 便于改变程序占用空间的大小

缺点:

  • 程序全部装入内存
  • 不易实现共享
  • 不便于动态连接

二、段式存储管理

基本思想

段式管理把内存视为二维空间,与进程逻辑相一致。

核心思想:

  • 每个程序由若干段组成(主程序、函数、全局变量、栈、符号表等)
  • 每个段是一个逻辑单元,有自己的地址空间
  • 段的大小一般不相等

存储空间的分配与回收

段表结构:

逻辑段号物理段首址物理段长度
015003200
134001500
2……

分配过程:

  1. 以段为单位分配内存
  2. 每个段占据连续空间(可变分区)
  3. 各段之间可以不连续存放

地址转换与存储保护

硬件支持:

  1. 段表始址寄存器
  2. 段表长度寄存器
  3. 高速缓冲存储器(快表)

地址转换:

物理地址 = 段首址 + 段内地址

保护措施:

  • 地址越界保护法
  • 存取权控制保护法

三、页式和段式的比较

特性页式管理段式管理
地址空间一维线性二维(段号+段内地址)
分页单位系统固定大小用户逻辑单元
碎片类型内碎片外碎片
共享困难方便
程序员关注透明可见

四、段页式管理方案

产生背景: 结合页式和段式优点,克服二者缺点

基本思想:

  • 用段式方法按程序内在逻辑关系划分
  • 用页式来分配和管理内存空间
  • 每段分成若干页面,物理页面大小相等

地址结构:

逻辑地址 = 段号 + 页号 + 页内地址

实现步骤:

  1. 根据段号查段表,得到该段的页表始址
  2. 根据页号查页表,得到主存块号
  3. 由块号与页内地址形成绝对地址

关键概念总结

概念说明
页(Page)逻辑地址空间的最小单位
页框(Page Frame)物理内存的最小单位
页表(Page Table)记录页号与块号的对应关系
TLB高速翻译检查缓冲区
外碎片分散的小空闲区,可合并
内碎片分配的块多于实际需要的部分

作业题要点

  1. 存储管理功能:内存分配、地址转换、存储空间共享、存储空间保护
  2. 碎片问题及解决方案
  3. 页式/段式地址转换过程
  4. FIFO、LRU、OPT、LFU页面置换算法