一、分页存储管理 1、页面与页框 (1)、页面 将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页加以编号 (2)、页框 相应于页面,把内存空间分成和页面相同大小的若干个存储块,称为(物理)块或页框(frame) (3)、页内碎片 在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中。由于进程的最后一页经常装不满一块而 形成了不可利用的碎片,称之为"页内碎片" 2、页表 列出作业的逻辑地址与其在主存中的物理地址间的对应关系 (1)、页面大小 应选择适中且为2的幂,通常为512B-8KB (2)、表目 又称页描述子。一个页表包含若干表目,表目的自然序号对应于用户程序中的页号,表目中的块号是该页对应的物理块号。页表的每一个表目除了包含指向页框的指针外,还包括一个存取控制字段 3、地址结构 对某一特定机器,地址结构是一定的。设逻辑地址为A,页面大小为L,则: 页号P=INT(A/L) 页内地址d=A mod L 3、地址变换机构 (1)、基本地址变换机构 (2)、地址变换过程 (3)、管理 ①、页表 系统为每个进程建立一个页表,页表放在内存,属于进程的现场信息 ②、空块管理 位示图 ③、内存的分配 计算一个作业所需要的总块数N 查位示图,看看是否还有N个空闲块 如果有足够的空闲块,将页表长度设为N,填入PCB 申请页表区,把页表始址填入PCB 依次分配N个空闲块,将块号和页号填入页表 修改位示图 4、快表 (1)、如果把页表放在主存中,无疑会影响系统性能。为了解决这个问题,采用一组硬件寄存器啊,存放当前访问过的页的页描述子 (2)、每次访问主存时,首先查找快表,若找到所需的页描述子,则快速形成物理地址。否则从页表中查找后形成物理地址,同时把页描述子写入快表 (3)、具有快表的地址变换机构 5、两级和多级页表 现代大多数计算机系统都支持非常大的逻辑地址空间(232-264),页表就变得非常大,要占用相当大的内存空间,解决方法 ①、采用离散方式来找到一块连续的大内存空间 ②、只将当前需要的部分页表项调入内存,其余的页表项扔驻留在磁盘上,需要时再调入 (1)、两级页表 ①、逻辑地址结构 ②、两级页表结构 ③、地址映射 (2)、多级页表 设页面大小为4K,则一个页目录对应的用户地址空间为4GB,对于更大的用户空间需要使用多级页表
二、分段存储管理 在分页存储系统中,作业的地址空间是一维线性的,这破坏了程序内部天然的逻辑结构,造成共享、保护的困难。引入分段存储管理,主要是为了: ①、方便编程 ②、信息共享 ③、信息保护 ④、动态增长 ⑤、动态链接 1、分段系统基本原理 (1)、分段地址结构 (2)、段表 记录了段号、段首地址、长度之间的关系 每个程序设置一个段表,放进内存,属于进程的现场信息 (3)、作业与段表、存储空间关系 (4)、硬件支持 ①、段表始址寄存器 用于保存正在运行进程的段表的始址 ②、段表长度寄存器 用于保存正在运行进程的段表的长度 (5)、地址变换机构 (6)、地址映射及存储保护 2、分页和分段的主要区别 ①、页是信息的物理单位,段是信息的逻辑单位 ②、页的大小固定且由系统决定,段的长度不固定 ③、分页的作业地址空间是一维的,即单一的线性地址空间,分段的作业地址空间则是二维的 ④、信息共享 分页: 分段: 3、分段优缺点 (1)、优点 ①、便于动态申请内存 ②、管理和使用统一化 ③、便于共享 ④、便于动态链接 (2)、缺点 产生碎片
三、段页存储管理 1、基本思想 (1)、用户程序划分:按段式划分 ①、对用户来讲,按段的逻辑关系进行划分 ②、对系统来讲,按页划分每一段 (2)、内存划分:按页式存储管理方案 (3)、内存分配:按页为单位进行分配 (4)、逻辑地址 2、管理 (1)、段表 记录每一段的页表始址和页表长度 (2)、页表 记录逻辑页号与内存块号的对应关系,每一段有一个,一个程序可能有多个页表 (3)、空块管理:同页式管理 (4)、分配:同页式管理 3、地址空间与地址结构 一个程序首先被划分成若干程序段,每一段给予不同的分段表示符,然后,对每一分段又分成若干个固定大小的页面 (1)、地址空间 (2)地址结构 4、地址映射 5、地址变换