资源描述
4.6 虚 拟 存 储 器 的 基 本 概 念4.6.虚 拟 存 储 器 的 引 入1. 问 题 的 提 出 程 序 大 于 总 内 存 多 道 程 序 要 运 行 内 存 只 能 容 纳 部 分 作 业 要 解 决 上 述 问 题 必 须 改 变 常 规 存 储 器 管 理方 式 中 作 业 一 次 性 装 入 和 运 行 时 的 驻 留 性 。 OS把 程 序 当 前 使 用 的 部 分 代 码 和 数 据 保 留在 内 存 中 , 而 把 其 它 部 分 存 在 磁 盘 上 , 需 要 时 在内 存 和 磁 盘 之 间 动 态 对 换 , 以 解 决 上 述 问 题 ; 这就 是 虚 拟 存 储 器 的 基 本 思 想 。 2. 程 序 局 部 性 原 理 在 一 段 时 间 内 一 个 程 序 的 执 行 往 往 呈 现出 高 度 的 局 部 性 , 顺 序 执 行 的 多 , 过 程 调 用 , 循 环 结 构 , 对 数 组 操 作 等 等 。 表 现 为 : 时 间 局 部 性 : 一 条 指 令 被 执 行 了 , 则 在 不 久 的 将 来 它可 能 再 被 执 行 。空 间 局 部 性 : 若 某 一 存 储 单 元 被 使 用 , 则 在 一 定 时 间内 , 与 该 存 储 单 元 附 近 的 单 元 可 能 被 使 用 。 3. 虚 拟 存 储 技 术 以 CPU时 间 和 外 存 空 间 换 取 昂 贵 内 存 空间 , 这 是 操 作 系 统 中 的 资 源 转 换 技 术 。实 现 思 想 : 当 进 程 运 行 时 , 先 将 一 部 分 程 序 装入 内 存 , 另 一 部 分 暂 时 留 在 外 存 , 当 要 执 行 的指 令 不 在 内 存 时 , 由 系 统 自 动 将 它 们 从 外 存 调换 到 内 存 。 即 具 有 请 求 调 入 和 置 换 功 能 。虚 拟 存 储 器 定 义 : 具 有 请 求 调 入 和 置 换 功 能 ,对 内 存 容 量 扩 充 , 得 到 一 个 逻 辑 容 量 等 于 内 存与 外 存 容 量 之 和 的 “ 虚 内 存 ” 。 页 号 P 页 内 位 移 量 W31 11 04. 虚 拟 地 址 结 构页 的 大 小 =?页 的 多 少 =?虚 存 的 大 小 =? CPUMMU 内 存 磁 盘控 制 器 总 线CPU把 虚 地 址 送 给 MMU MMU把 物 理 地 址 送 给 存 储 器 4.6.2 虚 拟 存 储 器 的 实 现 方 式请 求 分 页 方 式分 段 请 求 方 式硬 件 支 持 :请 求 分 页 (段 )的 页 (段 )表 机 构缺 页 (段 )中 断 机 构请 求 分 页 (段 )的 地 址 变 换 机 构 4.6.3 虚 拟 存 储 器 的 特 征离 散 性 : 是 实 现 虚 拟 存 储 器 的 基 础多 次 性 : 多 次 将 部 分 调 入 内 存 , 每 当 运 行 到 不在 内 存 那 部 分 程 序 时 ,再 将 它 调 入交 换 性 : 暂 时 不 执 行 允 许 换 出 , 需 要 时 再 换 入虚 拟 性 : 逻 辑 (虚 )上 扩 充 了 内 存 物 理 (实 )容 量 虚 拟 性 以 多 次 性 和 交 换 性 为 基 础 ,多 次 性 和交 换 性 又 必 须 建 立 在 离 散 分 配 的 基 础 之 上 。 4.7 请 求 分 页 式 存 储 管 理 在 进 程 开 始 运 行 之 前 , 不 是 装 入 全 部 页 面 ,而 是 装入 一 个 或 零 个 页 面 , 之 后 根 据 进 程 运 行 的 需 要 , 动 态 装入 其 它 页 面 ; 当 内 存 空 间 已 满 ,而 又 需 要 装 入 新 的 页 面时 , 则 根 据 某 种 算 法 淘 汰 某 个 页 面 , 以 便 装 入 新 页 面 。4.7.1 硬 件 支 持 及 工 作 过 程1、 页 表 机 制状 态 位 P: 表 示 该 页 是 在 内 存 还 是 在 外 存访 问 位 : 记 录 该 页 在 一 段 时 间 内 被 访 问 的 次 数修 改 位 : 查 看 此 页 是 否 在 内 存 中 被 修 改 过内 存 块 号 状 态 位 访 问 位 修 改 位 外 存 地 址 页 号 .44K X40K X36K 532K X28K X24K 320K 416K 012K X 8K 1 4K 2 0K 虚 地 址 空 间物 理 地 址 空 间 虚 页 页 框 20K 16K 12K 8K 4K 0K. 24K 2、 缺 页 中 断 机 构 在 地 址 映 射 过 程 中 , 在 页 表 中 发 现 所 要 访问 的 页 不 在 内 存 , 则 产 生 缺 页 中 断 。 操 作 系 统接 到 此 中 断 信 号 后 , 就 调 出 缺 页 中 断 处 理 程 序 ,根 据 页 表 中 给 出 的 外 存 地 址 , 将 该 页 调 入 内 存 ,使 进 程 继 续 运 行 下 去 。 如 果 内 存 中 有 空 闲 块 , 则 分 配 一 页 将 新 调入 页 装 入 内 存 , 并 修 改 页 表 中 相 应 页 表 项 目 的驻 留 位 及 相 应 的 内 存 块 号 。 若 此 时 内 存 中 没 有空 闲 块 , 则 要 淘 汰 某 页 , 若 该 页 在 内 存 期 间 被 修改 过 , 则 要 将 其 写 回 外 存 。 保 留 CPU现 场从 外 存 找 到 缺 页内 存 满 ?修 改 过 ?选 择 一 页 换 出将 该 页 写 回 外 存发 命 令 从 外 存 读 缺 页启 动 I/O硬 件将 一 页 从 外 存 换 入 修 改 页 表 页 越 界 ? 检 索 快 表命 中 ?访 问 页 表修 改 快 表在 内 存 ?修 改 访 问 位 修 改 位形 成 物 理 地 址 开 始N继 续 Y中 断NY越 界中 断NYN Y 缺 页中 断 Y 影 响 缺 页 次 数 的 因 素(1) 分 配 给 进 程 的 物 理 页 面 数(2) 页 面 本 身 的 大 小(3) 程 序 的 编 制 方 法(4) 页 面 淘 汰 算 法 4.7.2 页 面 分 配 与 置 换请 求 调 页 中 操 作 系 统 提 供 的 支 持 请 求 调 页 时 , 把 所 需 的 页 从 外 存 调 入 内 存 置 换 时 , 将 内 存 的 某 些 页 调 至 外 存问 题 :进 程 正 常 运 行 所 需 的 最 少 物 理 块 是 多 少 ?每 个 进 程 分 配 的 物 理 块 数 是 固 定 的 吗 ?每 个 进 程 分 配 的 物 理 块 数 依 据 是 什 么 ? 1. 最 小 物 理 块 数 的 确 定 最 小 物 理 块 数 与 硬 件 结 构 、 指 令 格 式 、 寻址 方 式 有 关 。 直 接 寻 址 方 式 最 少 块 数 为 2 间 接 寻 址 方 式 最 少 块 数 为 3 功 能 较 强 的 机 器 最 少 块 数 为 62. 页 面 分 配 和 置 换 策 略 (固 定 分 配 、 可 变 分 配 ) 1) 固 定 分 配 局 部 置 换 系 统 中 驻 留 的 进 程 数 与 分 配 给 进 程 的 页 数 是 什 么关 系 ? ( 正 比 ? 反 比 ? ) 块 数 太 多 会 出 现 什 么 问 题 ? 块 数 太 少 会 出 现 什 么 问 题 ? 2) 可 变 分 配 全 局 置 换 空 闲 物 理 块 由 谁 管 理 ? (OS?进 程 ? ) 缺 页 中 断 时 从 何 处 获 得 空 闲 页 ? 调 入 调 出 什 么 时 候 发 生 ( 空 闲 页 用 完 还 是 给 进 程分 配 的 页 用 完 ? )3) 可 变 分 配 局 部 置 换 为 每 个 进 程 所 分 配 的 物 理 块 数 相 对 固 定 从 每 个 进 程 所 分 配 的 页 面 中 进 行 换 入 换 出 。 从 全 局 的 角 度 动 态 调 整 每 个 进 程 所 分 配 的 页 面 3. 分 配 算 法 (固 定 分 配 策 略 ) 平 均 分 配 算 法 驻 留 内 存 的 进 程 平 均 分 配 , 貌 似 公 平 , 实 际不 公 平 , 长 进 程 缺 页 率 高 按 比 例 分 配 算 法 按 驻 留 内 存 的 进 程 的 大 小 比 例 分 配 , 较 公 平 考 虑 优 先 权 的 分 配 算 法 整 个 内 存 分 为 两 部 分 , 一 部 分 按 比 例 分 配 , 另 一 部 分 按 优 先 权 分 配 , 照 顾 到 重 要 紧 迫 的进 程 尽 快 完 成 4.7.3 页 面 调 入 策 略什 么 时 候 调 入 ? 从 何 处 调 入 ? 怎 么 调 入 ?1.什 么 时 候 调 入 预 调 入 策 略 : 一 次 调 入 若 干 相 邻 页 (预 计 即 将 运 行的 页 )比 单 页 调 入 效 率 高 , 命 中 率 约 50%。 请 求 调 页 策 略 : 缺 页 时 提 出 请 求 , OS将 所 需 一 页 调入 内 存 , 易 于 实 现 , I/O启 动 频 率 高 系 统 开 销 大 。2. 从 何 处 调 入 页 面 -外 存 分 为 文 件 区 和 对 换 区 (I/O快 )系 统 有 足 够 的 对 换 区 时 , 运 行 前 全 部 从 文 件 区 调 入对 换 区 , 运 行 中 全 部 从 对 换 区 调 入 所 需 页 。系 统 缺 少 足 够 的 对 换 区 时 , 不 会 被 修 改 的 页 从 文 件区 调 入 , 会 被 修 改 的 页 从 对 换 区 调 入 换 出 。UNIX:未 运 行 过 的 页 从 文 件 区 调 入 , 换 出 到 对 换 区 3. 页 面 调 入 过 程 当 程 序 所 要 访 问 的 页 不 在 内 存 时 , 向 CPU发 出 缺 页 中 断 , 中 断 处 理 程 序 首 先 保 留 CPU环境 , 再 通 过 查 找 页 表 得 到 该 页 在 外 存 的 物 理 块号 。 此 时 如 果 内 存 未 满 ,则 将 该 页 调 入 内 存 并修 改 页 表 ,若 内 存 已 满 ,则 从 内 存 中 选 出 一 页 准备 换 出 , 如 果 该 页 已 被 修 改 则 还 需 将 它 写 回 外存 , 然 后 再 把 所 缺 页 调 入 内 存 并 修 改 相 应 的 页表 项 , 置 器 存 储 位 为 1并 将 此 页 表 项 写 入 快 表 。整 个 调 入 过 程 对 用 户 是 透 明 的 。 好 的 页 面 置 换 算 法 应 具 有 低 的 页 面 更 换 频 率 最 佳 置 换 算 法 先 进 先 出 算 法 最 近 最 久 未 使 用 LRU 算 法 CLOCK算 法页 面 缓 冲 算 法4.7.4 页 面 置 换 算 法 1. 最 佳 置 换 算 法淘 汰 永 不 使 用 或 最 长 时 间 内 不 再 被 访 问 的 页 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 7 7 7 2 2 2 2 2 7 0 0 0 0 4 0 0 0 1 1 3 3 3 1 1 无 法 实 现 , 只 能 用 它 做 评 价 标 准 。2. 先 进 先 出 置 换 算 法 简 单 易 行 没 有 考 虑 访 问 频 度 的 差 别 , 不 能 保 证 经常 访 问 的 页 不 被 淘 汰 。 3. 最 近 最 久 未 使 用 LRU 算 法淘 汰 在 最 近 最 久 未 使 用 的 页 面 。 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 7 7 7 2 2 4 4 4 0 1 1 1 0 0 0 0 0 0 3 3 3 0 0 1 1 3 3 2 2 2 2 2 7如 何 确 定 哪 一 页 是 最 近 最 久 未 使 用 的 页 ?1) 移 位 寄 存 器 为 每 个 在 内 存 的 页 面 配 置 一 个 移 位 寄 存 器 ,当 访 问某 页 时 将 相 应 的 寄 存 器 最 高 位 置 1, 每 隔 一 定 时 间 将 寄存 器 右 移 1位 ,将 寄 存 器 存 的 数 看 作 一 个 整 数 ,显 然 最 小值 的 寄 存 器 对 应 的 页 就 是 最 近 最 久 未 使 用 的 页 。 2) 特 殊 栈 用 特 殊 栈 保 存 当 前 在 内 存 的 各 页 面 号 , 栈 的 大 小等 于 分 配 的 物 理 块 数 , 当 前 访 问 页 号 始 终 保 持 在 栈 顶 , 栈 底 就 是 最 近 最 久 未 使 用 的 页 号 。 缺 页 中 断 时 若 栈 未满 则 将 新 页 号 压 栈 , 若 栈 满 则 淘 汰 栈 底 元 素 , 所 有 元 素下 移 再 将 新 页 号 压 栈 。 如 访 问 页 号 的 顺 序 为 : 4, 7, 0, 7, 1, 0, 2, 1, 6分 配 的 物 理 块 数 为 4, 则 栈 中 页 面 号 变 化 情 况 如 下 : 4 1704 704 074 744 7 0 7 1 0 2 1 60174 2017 1207 6120 4. Linux 的 LRU算 法 最 初 分 配 某 个 页 时 , 页 的 寿 命 为 3, 每 次 页 被 访 问 , 其 寿 命 增 加 3, 直 到 20为 至 。 当 内 核 的 交 换 进 程 运 行时 (kswapd周 期 运 行 ), 在 内 存 的 所 有 页 面 寿 命 减 1。 如果 某 个 页 的 寿 命 为 0, 则 该 页 作 为 交 换 候 选 页 。 5. 简 单 的 CLOCK置 换 算 法 每 页 设 置 一 访 问 位 A, 当 某 页 被 访 问 时 , 其访 问 位 A被 置 为 1。 将 内 存 中 所 有 页 面 都 通过 链 接 指 针 链 接 成 一 个 循 环 队 列 , 进 行 循 环检 查 。如 果 页 的 访 问 位 A=0, 则 淘 汰 该 页 ; 若 A=1, 则 重 新 将 A置 为 0,暂 不 换 出 而 给 该 页 第 二 次驻 留 内 存 的 机 会 。 继 续 向 后 循 环 检 查 , 直 到某 页 访 问 位 A=0, 则 淘 汰 之 。 6. 改 进 的 CLOCK算 法 页 面 换 出 时 ,如 果 该 页 已 被 修 改 , 必 须 将 它 重 新 写到 磁 盘 上 ; 但 如 果 该 页 未 被 修 改 , 则 不 必 写 回 磁 盘 。 改进 的 CLOCK算 法 增 加 置 换 代 价 这 一 因 素 , 用 修 改 位 M表 示 , 优 先 考 虑 M=0 (未 被 修 改 )的 页 , 淘 汰 顺 序 为 : A=0,M=0 A=0,M=1 A=1,M=0 A=1,M=1其 执 行 过 程 分 为 三 步 :(1) 寻 找 A=0且 M=0, 找 到 则 淘 汰 该 页 , A和 M都 不 变 。(2) 第 一 步 失 败 , 则 进 行 第 二 轮 扫 描 , 寻 找 A=0且 M=1, 找 到 则 淘 汰 该 页 。 此 遍 将 所 有 经 过 的 页 面 A置 0;(3) 第 二 步 也 失 败 , 则 此 时 所 有 页 的 A=0。 重 复 第 一 步 , 如 果 仍 失 败 , 再 重 复 第 二 步 , 一 定 能 找 到 被 淘 汰 的 页 。 7. 页 面 缓 冲 算 法 采 用 前 面 介 绍 过 的 可 变 分 配 局 部 置 换 方式 , 内 存 中 一 部 分 作 为 页 面 缓 冲 区 , 将 缓 冲 区的 物 理 快 链 接 为 两 个 链 表 空 闲 链 表已 修 改 页 面 的 链 表 页 面 缓 冲 算 法 页 面 缓 冲 采 用 FIFO置 换 算 法 。 当 需 要 读 入 一 个 页 面时 , 利 用 空 闲 链 表 的 第 一 个 物 理 快 装 入 该 页 。 如 果 被 淘 汰 的 页 面 未 被 修 改 , 就 将 它 直 接 链 接 到 空 闲链 表 表 尾 , 否 则 , 则 将 其 链 接 到 已 修 改 的 链 表 表 尾 。 该页 面 仍 留 在 内 存 中 , 并 未 进 行 实 际 的 换 出 。 当 进 程 再 次 访 问 这 些 页 面 时 , 只 需 花 费 较 小 的 开 销 ,使 该 页 面 又 返 回 该 进 程 的 驻 留 集 。 当 被 修 改 页 面 达 到 一 定 数 量 时 , 再 将 它 们 一 起 写 回磁 盘 。 显 著 地 减 少 了 磁 盘 I/O的 次 数 。 4.7.5 请 求 分 页 系 统 的 性 能 分 析1、 工 作 集 模 型 根 据 程 序 的 局 部 性 原 理 , 进 程 在 一 段 时 间内 一 般 总 是 集 中 访 问 某 些 页 面 , 这 些 页 面 称 为活 跃 页 面 , 如 果 分 配 给 某 进 程 的 物 理 页 面 数 太少 了 , 使 该 进 程 所 需 的 活 跃 页 面 不 能 全 部 装 入内 存 , 则 进 程 在 运 行 过 程 中 将 频 繁 发 生 中 断 。 在 某 段 时 间 内 , 进 程 实 际 要 访 问 的 页 面 集合 称 为 工 作 集 , 为 进 程 分 配 的 物 理 页 面 称 为 工作 集 窗 口 , 显 然 工 作 集 窗 口 尺 寸 越 大 缺 页 中 断次 数 越 少 ; 但 尺 寸 太 大 内 存 利 用 率 就 会 下 降 。 2、 抖 动 在 虚 存 中 , 页 面 在 内 存 与 外 存 之 间 频 繁 调度 , 以 至 于 调 度 页 面 所 需 时 间 比 进 程 实 际 运 行的 时 间 还 多 , 此 时 系 统 效 率 急 剧 下 降 , 甚 至 导致 系 统 崩 溃 , 这 种 现 象 为 抖 动 。产 生 原 因 :页 面 淘 汰 算 法 不 合 理分 配 给 进 程 的 工 作 集 窗 口 尺 寸 太 小出 现 : CPU利 用 率 下 降 调 入 新 的 进 程 从 其 它 进 程 获 得 物 理 块 缺 页 中 断 次 数 增加 CPU利 用 率 进 一 步 下 降 的 恶 性 循 环 2、 抖 动 的 预 防1) 采 取 局 部 置 换 策 略 , 不 允 许 从 其 它 进 程 获得 物 理 块 , 不 会 使 抖 动 扩 大 到 其 它 进 程 。2) 在 CPU调 度 中 引 入 工 作 集 算 法 在 调 度 程 序 从 外 存 调 入 新 作 业 时 , 必 须 检查 内 存 中 每 个 进 程 的 工 作 集 窗 口 是 否 足 够 大 , 是 才 能 调 入 ; 不 至 于 因 新 作 业 调 入 扩 大 抖 动3) 调 整 多 道 度 , 使 产 生 缺 页 的 平 均 时 间 (L)等于 系 统 处 理 进 程 缺 页 的 平 均 时 间 (S)。 课 后 题 P142 16、 17、 18、 19 4.8 请 求 分 段 存 储 管 理 方 式 4.8.1 硬 件 支 持 及 工 作 过 程1、 段 表 内 容 增 加 : 存 在 位 (在 /不 在 内 存 , 是 否 可 共 享 ), 存 取 权 限位 (只 执 行 ,只 读 , 可 读 写 ),访 问 位 (被 访 问 的 情 况 ),修改 位 (是 否 修 改 过 , 能 否 移 动 ), 增 补 位 (是 否 做 过 动 态增 长 ), 外 存 始 址 。2、 越 界 中 断 处 理 进 程 在 执 行 过 程 中 , 有 时 需 要 扩 大 分 段 , 如 数 据段 ; 由 于 要 访 问 的 地 址 超 出 原 有 的 段 长 , 发 出 越 界 中断 ; 操 作 系 统 处 理 中 断 时 , 首 先 判 断 该 段 的 扩 充 位 ,如 可 扩 充 , 则 增 加 段 的 长 度 ; 否 则 按 出 错 处 理 。 缺 段 中 断 处 理 过 程 从 外 存 读 入 段 S修 改 段 表 及 空 闲 链唤 醒 请 求 进 程进 行 紧 凑形 成 合 适 空 区 阻 塞 请 求 进 程 空 闲 和 能 满 足 ? 有 合 适 空 闲 区 ?返 回虚 段 S不 在 内 存淘 汰 实 段形 成 合 适 空 区 N YN Y 3、 缺 段 中 断 处 理 检 查 内 存 中 是 否 有 足 够 的 空 闲 空 间 若 有 , 则 装 入 该 段 , 修 改 有 关 数 据 结 构 , 中 断 返 回 若 没 有 , 检 查 内 存 中 空 闲 区 的 总 和 是 否 满 足 要 求 ,是 则 应 采 用 紧 缩 技 术 , 转 a; 否 则 , 淘 汰 一 些 段 , 转 4、 地 址 变 换 请 求 分 段 系 统 的 地 址 变 换 机 构 , 是 在 分 段 系 统 的地 址 变 换 机 构 基 础 上 , 增 加 缺 段 中 断 的 请 求 和 处 理 等功 能 ,当 发 现 要 访 问 的 段 不 再 内 存 时 , 必 须 将 该 段 调 入内 存 并 修 改 段 表 , 然 后 才 能 用 段 表 进 行 地 址 变 换 。 分 段 存 储 管 理 方 式 便 于 实 现 分 段 的 共 享与 保 护 , 只 需 在 每 个 进 程 的 段 表 中 用 相 应 的表 项 指 向 共 享 段 在 内 存 的 起 始 地 址 。 为 了 管理 好 共 享 段 , 系 统 配 置 相 应 的 数 据 结 构 作 为共 享 段 表 。 共 享 段 表 共 享 段 的 分 配 和 回 收 分 段 保 护4.8.2 分 段 的 共 享 与 保 护 1. 共 享 段 表 系 统 为 所 有 共 享 段 配 置 一 张 共 享 段 表 , 每 个 共 享段 在 该 表 中 占 一 个 表 项 , 其 中 记 录 了 段 号 、 段 长 、 内存 始 址 、 存 在 位 等 信 息 , 同 时 还 记 录 了 共 享 进 程 计 数和 共 享 此 分 段 的 每 个 进 程 的 情 况 。段 号 段 长 内 存 始 址 存 在 位 外 存 始 址共 享 进 程 计 数 count状 态 进 程 名 进 程 号 段 号 存 取 控 制共 享 段 表 共 享 段 表 项 2. 共 享 段 的 分 配 和 回 收共 享 段 的 分 配 对 第 一 个 请 求 使 用 该 共 享 段 的 进 程 , 系 统 为 该 共 享段 分 配 一 物 理 区 并 把 共 享 段 调 入 该 区 , 同 时 把 该 区 的 始址 填 入 该 进 程 的 段 表 中 , 还 需 在 共 享 段 表 中 增 加 一 表 项 , 填 写 有 关 信 息 , 把 count置 为 1。 当 又 有 其 它 进 程 要 访 问 该 共 享 段 时 , 只 需 在 访 问 进程 的 段 表 中 增 加 一 表 项 , 填 入 该 共 享 段 的 物 理 地 址 ; 并在 共 享 段 表 的 对 应 表 项 中 , 填 写 调 用 进 程 名 和 存 取 控 制等 , 再 执 行 count:= count+1 操 作 。共 享 段 的 回 收 取 消 该 进 程 的 段 表 中 共 享 段 所 对 应 的 表 项 ,并 执 行count:= count-1, 结 果 为 0则 回 收 共 享 段 的 内 存 并 取 消 该进 程 在 共 享 段 表 中 对 应 的 表 项 ; 否 则 仅 取 消 该 进 程 在 共享 段 表 中 对 应 的 纪 录 。 3. 分 级 保 护 各 分 段 在 逻 辑 上 是 独 立 的 , 容 易 实 现 信 息 保 护越 界 检 查 在 分 段 系 统 的 地 址 变 换 机 构 中 , 段 表 寄 存 器 和 段 表项 都 有 段 长 度 信 息 , 越 界 时 会 发 出 越 界 中 断 。存 取 控 制 检 查 段 表 项 中 设 置 了 存 取 控 制 字 段 , 其 访 问 方 式 有 : 只 读 、 只 执 行 、 允 许 读 写环 保 护 机 构 它 是 一 种 优 先 权 保 护 机 制 , 规 定 低 编 号 的 环 具 有 高优 先 权 , OS核 心 处 于 0环 内 , OS服 务 在 中 间 环 , 一 般 的 应用 程 序 安 排 在 外 环 上 。 调 用 和 访 问 遵 循 :程 序 可 访 问 驻 留 在 相 同 环 或 较 低 优 先 权 环 中 的 数 据程 序 可 调 用 驻 留 在 相 同 环 或 较 高 优 先 权 环 中 的 服 务 为 了 程 序 能 正 确 执 行 , 程 序 的 各 段 必 须 由 连 接 装配 程 序 把 它 们 链 接 成 一 个 可 运 行 的 目 标 程 序 , 有 两 种方 法 :静 态 链 接 : 在 程 序 运 行 前 都 链 接 好 并 装 入 内 存 。 问 题 : 花 费 时 间 , 浪 费 空 间动 态 链 接 : 程 序 边 链 接 边 运 行 优 点 : 节 省 时 间 和 空 间 , 可 在 较 小 的 内 存 上 运 行较 大 的 程 序 , 用 不 到 的 段 不 用 链 接 页 不 用 调 入 内 存 。尤 其 是 对 于 大 型 程 序 优 点 更 突 出 。4.8.3 段 的 动 态 链 接 1. 段 的 动 态 链 接 由 于 一 些 熟 知 的 事 实 :大 型 程 序 一 般 分 为 多 个 程 序 段 和 多 个 数 据 段进 程 的 某 些 程 序 段 在 进 程 运 行 期 间 可 能 根 本 不 用互 斥 执 行 的 程 序 段 没 有 必 要 同 时 驻 留 内 存有 些 程 序 段 执 行 一 次 后 不 再 用 到 所 以 , 没 有 必 要 在 在 程 序 运 行 前 都 链 接 好 , 程 序 开始 运 行 时 , 只 将 主 程 序 段 装 配 好 并 调 入 内 存 , 其 它 各段 的 装 配 是 在 运 行 过 程 中 逐 步 完 成 的 。 每 当 需 要 调用 一 个 新 段 时 , 再 将 这 个 新 段 装 配 好 , 并 与 主 程 序 段链 接 。 这 就 是 动 态 链 接 。 显 然 ,页 式 存 储 管 理 是 难 以完 成 动 态 链 接 的 ; 应 采 用 段 式 存 储 管 理 。 2. 动 态 链 接 的 实 现 在 间 接 寻 址 中 设 置 链 接 间 接 字 和 链 接 中 断 处 理 机 在 执 行 间 接 指 令 时 , 其 硬 件 能 自 动 对链 接 字 中 链 接 标 志 位 进 行 判 断 。 标 志 位 =1 时 ,硬 件 自 动 发 链 接 中 断 , 并 停 止 执 行 该 间 接 指 令 ,转 去 执 行 链 接 中 断 处 理 程 序 。 处 理 完 后 再 重 新执 行 该 间 接 指 令 。 3.链 接 中 断 处 理 根 据 链 接 间 接 字 找 出 要 访 问 段 的 符 号 名 和 段 内 地 址 分 配 段 号 , 检 查 该 段 是 否 在 内 存 , 若 不 在 , 则 从 外 存 调 入 , 并 登 记 段 表 , 修 改 内 存 分 配 表 修 改 间 接 字 : 修 改 连 接 标 志 位 为 0, 修 改 直 接 地 址 重 新 启 动 被 中 断 的 指 令 执 行 4.10 CPU高 速 缓 冲在 计 算 机 中 , 为 了 减 少 CPU的 等 待 时 间 ,必 须 提 高 系 统 主 存 储 器 的 响 应 速 度为 此 使 用 了 高 速 缓 存 cache, 用 来 存 储CPU常 用 的 代 码 和 数 据 信 息 1. 工 作 原 理(1) 基 于 程 序 访 问 的 局 部 性 分 析 表 明 , 在 较 短 的 时 间 间 隔 内 , 由 程 序 产 生 的 地 址往 往 集 中 在 存 储 器 逻 辑 地 址 空 间 的 很 小 范 围 内 。 对 数 组 的 存 储 和 访 问 以 及 工 作 区 的 选 择 都 使 存 储 器地 址 相 对 集 中 。 对 局 部 范 围 的 存 储 器 频 繁 访 问 , 而 对 此 范 围 以 外 的地 址 则 访 问 甚 少 的 现 象 , 就 称 为 程 序 访 问 的 局 部 性 。(2) 高 速 缓 冲 存 储 器 : 根 据 程 序 的 局 部 性 原 理 ,在 主 存 和CPU 通 用 寄 存 器 之 间 设 置 一 个 高 速 的 容 量 相 对 较 小 的高 速 存 储 器 ,把 正 在 执 行 的 指 令 地 址 附 近 的 一 部 分 指 令或 数 据 从 主 存 调 入 这 个 存 储 器 ,供 CPU在 一 段 时 间 内 使用 。 这 对 提 高 运 行 速 度 有 很 大 的 作 用 。 (3)命 中 率 : CPU在 任 一 时 刻 从 高 速 缓 冲 中 直 接 可 靠 获取 数 据 的 几 率 。 命 中 率 越 高 ,直 接 获 取 数 据 的 可 靠 性 就 越 大 。 高 速 缓 冲 空 间 与 主 存 空 间 在 一 定 范 围 内 保 持 适 当 比例 的 映 射 关 系 , 可 以 使 高 速 缓 冲 的 命 中 率 相 当 高 。 一 般 情 况 , 高 速 缓 冲 与 内 存 的 空 间 比 为 4:1000 即 128kB 高 速 缓 冲 可 映 射 32MB内 存 256kB 高 速 缓 冲 可 映 射 64MB内 存 在 这 种 情 况 下 , 命 中 率 都 在 90 以 上 2.高 速 缓 冲 的 分 级 典 型 的 一 级 ( L1) 缓 存 系 统 的 80 的 内 存 申 请 都发 生 在 CPU内 部 。 只 有 20 的 内 存 申 请 是 与 外 部 内 存 打 交 道 。 而 这 20 的 外 部 内 存 申 请 中 的 80 又 与 二 级 ( L2)缓 存 打 交 道 。 因 此 , 只 有 4 的 内 存 申 请 定 向 到 主 存 中 。 3.CPU高 速 缓 冲 的 重 要 性 PC系 统 的 发 展 趋 势 之 一 : CPU主 频 越 做 越 高 , 系 统架 构 越 做 越 先 进 , 而 主 存 的 结 构 和 存 取 时 间 改 进 较 慢 。因 此 在 PC系 统 中 高 速 缓 存 越 做 越 大 。 高 速 缓 存 已 是 评价 和 选 购 PC系 统 的 一 个 重 要 指 标 。 新 一 代 的 微 处 理 器 , 已 实 现 设 计 了 L1高 速 缓 存 , L2 高 速 缓 存 和 在 主 板 上 的 L3高 速 缓 存 。 比 如 :在 Intel Pentium III中 , L1高 速 缓 存 为 32 KB, L2可 从 512 KB到 1 MB。 而 AMD K6-III的 L1为 64KB,L2可 达 256KB, 外 部 L3 高 速 缓 存 可 达 1 MB。 1. 存 储 管 理 目 的 充 分 利 用 内 存 、 方 便 用 户 使 用 、 程 序 可 比 内 存 空 间 大 、 执 行 时 可 动 态 伸 缩 、 存 储 保 护 与 安 全 、 共 享 与 通 信 、 了 解 有 关 资 源 的 使 用 状 况 、 实 现 性 能 高 时 空 开 销 小 。2. 存 储 管 理 的 内 容 内 存 空 间 的 管 理 、 分 配 与 回 收 、 存 储 共 享 、 存 储 保 护 与 安 全 、 内 存 “ 扩 充 ”3. 地 址 映 射 (地 址 重 定 位 , 地 址 变 换 ) 逻 辑 地 址 (相 对 ,虚 地 址 )物 理 地 址 (绝 对 ,实 地 址 ) 由 硬 件 实 现 , 分 静 态 重 定 位 、 动 态 重 定 位4. 分 区 存 储 管 理固 定 分 区 、 可 变 分 区 (可 变 分 区 分 区 表 、 空 闲 分 区 链 ) 5. 分 区 分 配 算 法首 先 适 配 算 法 、 最 佳 适 配 算 法 、 最 坏 适 配 算 法 6.可 重 定 位 分 区 分 配 紧 凑 技 术 解 决 碎 片 问 题 ,重 定 位 寄 存 器 实 现 动 态 重 定 位7. 对 换 技 术 在 多 道 环 境 下 扩 充 内 存 的 方 法 , 小 内 存 运 行 大 程 序 。 对 换 的 单 位 : 进 程 对 换 、 分 段 对 换 、 页 面 对 换 。8.页 式 存 储 管 理 (系 统 需 要 , 解 决 碎 片 ) 离 散 分 配 方 式 、 页 面 大 小 的 选 择 建 进 程 页 表 、 空 块 管 理 总 页 表 、 内 存 的 分 配 与 回 收 地 址 变 换 机 构 : 页 表 寄 存 器 、 页 表 、 快 表 (联 想 寄 存 器 )9. 两 级 和 多 级 页 表 反 置 页 表10. 段 式 存 储 管 理用 户 需 要 : 信 息 共 享 ,信 息 保 护 ,动 态 增 长 ,动 态 链 接用 户 程 序 划 分 : 程 序 二 维 地 址 空 间 段 号 维 和 段 内 地 址 维地 址 变 换 机 构 : 段 表 寄 存 器 、 段 表 、 快 表 (联 想 寄 存 器 ) 11. 段 页 式 存 储 管 理 结 合 两 者 之 优 点 解 决 系 统 需 要 和 用 户 需 要 用 户 地 址 空 间 二 维 、 内 存 分 配 方 式 分 页 地 址 变 换 机 构 : 段 表 寄 存 器 、 段 表 、 页 表 、 快 表12. 程 序 局 部 性 原 理 时 间 局 部 性 :指 令 被 执 行 后 不 久 它 可 能 再 被 执 行 。 空 间 局 部 性 :存 储 单 元 使 用 后 不 久 附 近 单 元 可 能 被 使 用13. 虚 拟 存 储 器 定 义 具 有 请 求 调 入 和 置 换 功 能 ,对 内 存 容 量 扩 充 , 得 到 一 个逻 辑 容 量 等 于 内 存 与 外 存 容 量 之 和 的 “ 虚 内 存 ” 。14. 虚 拟 存 储 器 的 特 征 离 散 性 、 多 次 性 、 交 换 性 、 虚 拟 性 虚 拟 性 以 多 次 性 交 换 性 为 基 础 , 又 都 以 离 散 性 为 基 础 15.请 求 分 页 式 存 储 管 理 页 式 地 址 变 换 机 构 加 缺 页 中 断 机 构 页 表 、 快 表 中 增 加 项 (状 态 位 ,访 问 位 ,修 改 位 ,外 存 地 址 ) 16. 页 面 调 入 策 略 何 时 调 入 : 预 调 入 (命 中 率 )、 缺 页 时 请 求 调 页 从 何 处 调 入 : 外 存 文 件 区 和 对 换 区 (I/O快 ) UNIX策 略 首 次 从 文 件 区 调 入 , 换 出 到 对 换 区17. 页 面 调 入 过 程 缺 页 则 发 出 缺 页 中 断 , 保 留 环 境 , 找 到 外 存 块 号 , 若 内存 未 满 则 调 入 并 修 改 页 表 , 若 内 存 满 则 选 一 页 换 出 (被 修改 需 写 回 外 存 ), 再 将 缺 页 调 入 内 存 并 修 改 页 表 和 快 表 。18. 页 面 置 换 算 法 OPT、 FIFO、 LRU、 CLOCK、 页 面 缓 冲 算 法 19. 抖 动产 生 原 因 : 页 面 淘 汰 算 法 不 合 理 、 工 作 集 窗 口 尺 寸 太 小预 防 : 采 取 局 部 置 换 策 略 , 引 入 工 作 集 算 法 , 调 整 多 道 度20. 请 求 分 段 存 储 管 理 方 式 段 式 地 址 变 换 机 构 加 缺 段 中 断 机 构 。 段 表 快 表 增 加 存 在 位 , 权 限 位 ,访 问 位 ,修 改 位 ,增 补 位 外 存 地 址 分 段 的 共 享 与 保 护 : 段 表 项 指 向 共 享 段 内 存 首 址 。 共 享 段 表 、 共 享 段 的 分 配 和 回 收 、 分 段 保 护21. 段 的 链 接 静 态 链 接 : 在 程 序 运 行 前 都 链 接 好 并 一 次 装 入 内 存 。 动 态 链 接 : 程 序 边 链 接 , 边 运 行 , 小 内 存 可 运 行 大 程 序22. CPU高 速 缓 存 (Cache ) 根 据 程 序 的 局 部 性 原 理 ,在 主 存 和 通 用 寄 存 器 之 间 设置 容 量 相 对 较 小 的 高 速 存 储 器 , 把 正 在 执 行 的 指 令 上 下文 或 数 据 从 主 存 调 入 这 个 存 储 器 ,提 高 运 行 速 度 。 作 业 P143 22、 23、 26
展开阅读全文