第六章存储管理 ●存储管理功能 ●内存资源管理 存储管理方式 外存空间管理 ●虚拟存储系统
第六章 存储管理 ⚫ 存储管理功能 ⚫ 内存资源管理 ⚫ 存储管理方式 ⚫ 外存空间管理 ⚫ 虚拟存储系统
6.1存储管理功能 存储分配和去配 分配去配对象 内存、外存(相同方法) 分配去配时刻 ●进程创建、撤销、交换、长度变化 ●存储共享 目的:节省内存、相互通讯 内容:代码、数据 ●存储保护 防止地址越界 防止操作越权
6.1 存储管理功能 ⚫ 存储分配和去配 – 分配去配对象 ⚫ 内存、外存(相同方法) – 分配去配时刻 ⚫ 进程创建、撤销、交换、长度变化 ⚫ 存储共享 – 目的:节省内存、相互通讯 – 内容:代码、数据 ⚫ 存储保护 – 防止地址越界 – 防止操作越权
6.1存储管理功能(Cont) 存储扩充 内存、外存结合,虚拟存储体系 速度接近内存,容量相当外存 地址映射 逻辑地址一>物理地址 硬件支持 ●基址寄存器(base)、限长寄存器(limt)、快表 ●使用上述寄存器完成地址映射过程; ●不能正常完成地址映射时产生中断
6.1 存储管理功能(Cont.) ⚫ 存储扩充 – 内存、外存结合,虚拟存储体系 – 速度接近内存,容量相当外存 ⚫ 地址映射 – 逻辑地址=>物理地址 – 硬件支持 ⚫ 基址寄存器(base)、限长寄存器(limit)、快表; ⚫ 使用上述寄存器完成地址映射过程; ⚫ 不能正常完成地址映射时产生中断
62内存资源管理 62.1内存分区 分区时刻 ●静态分区:系统初始化时分 ●动态分区:申请时分。 分区大小 ●等长分区:2 ●异长分区:依程序、程序单位、对象大小。 通常作法 ●静态+等长(页式、段页式) ●动态+异长(段式、界地址)
6.2 内存资源管理 ⚫ 6.2.1 内存分区 – 分区时刻 ⚫ 静态分区:系统初始化时分; ⚫ 动态分区:申请时分。 – 分区大小 ⚫ 等长分区:2 i ⚫ 异长分区:依程序、程序单位、对象大小。 – 通常作法 ⚫ 静态+等长(页式、段页式) ⚫ 动态+异长(段式、界地址)
62.2内存分配 ●静态等长分区的分配 字位映象图 空闲页面表 空闲页面链 ●动态异长分区的分配 最先适应( First fit 最佳适应( Best fit 最坏适应( Worst fit)
6.2.2 内存分配 ⚫ 静态等长分区的分配 – 字位映象图 – 空闲页面表 – 空闲页面链 ⚫ 动态异长分区的分配 – 最先适应 (First Fit) – 最佳适应 (Best Fit) – 最坏适应 (Worst Fit)
字位映象图( bit map) 用一个b代表一页状态,0表空闲,1表占用。(多单元) 1p可10 第第第 012 页页页 第一页 第=页 分配:自头寻找第一个为0的位,改为1,返回页号; 去配:页号对应的位(b)置为0
字位映象图(bit map) 1 0 0 … 1 ... 1 0 第 0 页 第 2 页 第 1 页 第k 页 第n 页 ... ... 分配:自头寻找第一个为0的位,改为1,返回页号; 去配:页号对应的位(bit)置为0。 用一个bit代表一页状态,0表空闲,1表占用。( 多单元)
空闲页面表 首页号空页数 占用 120页 120 4 121页 122页 123页 特点:可以分配连续页面。 占用
空闲页面表 首页号 空页数 ... ... ... ... 120 4 特点:可以分配连续页面。 占用 占用 120页 121页 122页 123页 ...
空闲页面链 Head 占用 优点:节省空间。 (不适合管理外存) 占用 占用
空闲页面链 占用 占用 占用 Head: 优点:节省空间。 (不适合管理外存)
动态异长分区的分配 数据结构: 空闲区首址空闲区长度 Criteria 尽量使空闲区域连续。 2500 1500 初始时一个连续空闲区 长度=0为表尾
动态异长分区的分配 空闲区首址 空闲区长度 ... ... ... ... 2500 1500 数据结构: Criteria: 尽量使空闲区域连续。 初始时一个连续空闲区。 长度=0为表尾
最先适应算法( First Fit) 空闲区首址空闲区长度空闲区:首址递增排列; 申请:取第一个可满足区域; 128 64 优点:尽量使用低地址空间, 256 32 高区保持大空闲区域。 缺点:可能分割大空闲区。 1024 256 Eg申请32将分割第 0 个区域
最先适应算法(First Fit) 空闲区首址 空闲区长度 128 64 1024 256 256 32 0 ... ... 空闲区:首址递增排列; 申请:取第一个可满足区域; 优点:尽量使用低地址空间, 高区保持大空闲区域。 缺点:可能分割大空闲区。 Eg. 申请32将分割第 一个区域