计算机操作系统(第三版汤小丹等)课后习题答案(全).pdf
第 一 章 I.设 计 现 代 OS的 主 要 目 标 是 什 么?答:(1)有 效 性(2)方 便 性(3)可 扩 充 性(4)开 放 性 2.OS的 作 用 可 表 现 在 哪 几 个 方 面?答:(1)OS作 为 用 户 与 计 算 机 硬 件 系 统 之 间 的 接 口(2)OS作 为 计 算 机 系 统 资 源 的 管 理 者(3)OS实 现 了 对 计 算 机 资 源 的 抽 象 3.为 什 么 说 OS实 现 了 对 计 算 机 资 源 的 抽 象?答:OS首 先 在 裸 机 上 覆 盖 一 层 I/O设 备 管 理 软 件,实 现 了 对 计 算 机 硬 件 操 作 的 第 一 层 次 抽 象;在 第 一 层 软 件 上 再 覆 盖 文 件 管 理 软 件,实 现 了 对 硬 件 资 源 操 作 的 第 二 层 次 抽 象。O S 通 过 在 计 算 机 硬 件 上 安 装 多 层 系 统 软 件,增 强 了 系 统 功 能,隐 臧 了 对 硬 件 操 作 的 细 节,由 它 们 共 同 实 现 了 对 计 算 机 资 源 的 抽 象。4.试 说 明 推 动 多 道 批 处 理 系 统 形 成 和 发 展 的 主 要 动 力 是 什 么?答:主 要 动 力 来 源 于 四 个 方 面 的 社 会 需 求 与 技 术 发 展:(1)不 断 提 高 计 算 机 资 源 的 利 用 率;(2)方 便 用 户;(3)器 件 的 不 断 更 新 换 代;(4)计 算 机 体 系 结 构 的 不 断 发 展。5.何 谓 脱 机 I/O和 联 机 I/O?答:脱 机 I/O是 指 事 先 将 装 有 用 户 程 序 和 数 据 的 纸 带 或 卡 片 装 入 纸 带 输 入 机 或 卡 片 机,在 外 围 机 的 控 制 下,把 纸 带 或 卡 片 上 的 数 据 或 程 序 输 入 到 磁 带 上。该 方 式 下 的 输 入 输 出 由 外 围 机 控 制 完 成,是 在 脱 离 主 机 的 情 况 下 进 行 的。而 联 机 I/O方 式 是 指 程 序 和 数 据 的 输 入 输 出 都 是 在 主 机 的 直 接 控 制 下 进 行 的。6.试 说 明 推 动 分 时 系 统 形 成 和 发 展 的 主 要 动 力 是 什 么?答:推 动 分 时 系 统 形 成 和 发 展 的 主 要 动 力 是 更 好 地 满 足 用 户 的 需 要。主 要 表 现 在:CPU的 分 时 使 用 缩 短 了 作 业 的 平 均 周 转 时 间;人 机 交 互 能 力 使 用 户 能 直 接 控 制 自 己 的 作 业;主 机 的 共 享 使 多 用 户 能 同 时 使 用 同 一 台 计 算 机,独 立 地 处 理 自 己 的 作 业。7.实 现 分 时 系 统 的 关 键 问 题 是 什 么?应 如 何 解 决?答:关 键 问 题 是 当 用 户 在 自 己 的 终 端 上 犍 入 命 令 时,系 统 应 能 及 时 接 收 并 及 时 处 理 该 命 令,在 用 户 能 接 受 的 时 延 内 将 结 果 返 回 给 用 户。解 决 方 法:针 对 及 时 接 收 问 题,可 以 在 系 统 中 设 置 多 路 卡,使 主 机 能 同 时 接 收 用 户 从 各 个 终 端 上 输 入 的 数 据:为 每 个 终 端 配 置 缓 冲 区,暂 存 用 户 键 入 的 命 令 或 数 据。针 对 及 时 处 理 问 题,应 使 所 有 的 用 户 作 业 都 直 接 进 入 内 存,并 且 为 每 个 作 业 分 配 一 个 时 间 片,允 许 作 业 只 在 自 己 的 时 间 片 内 运 行,这 样 在 不 长 的 时 间 内,能 使 每 个 作 业 都 运 行 一 次。8.为 什 么 要 引 入 实 时 OS?答:实 时 操 作 系 统 是 指 系 统 能 及 时 响 应 外 部 事 件 的 请 求,在 规 定 的 时 间 内 完 成 对 该 事 件 的 处 理,并 控 制 所 有 实 时 任 务 协 调 一 致 地 运 行。引 入 实 时 O S 是 为 了 满 足 应 用 的 需 求,更 好 地 满 足 实 时 控 制 领 域 和 实 时 信 息 处 理 领 域 的 需 要。9.什 么 是 硬 实 时 任 务 和 软 实 时 任 务?试 举 例 说 明。答:硬 实 时 任 务 是 指 系 统 必 须 满 足 任 务 对 截 止 时 间 的 要 求,否 则 可 能 出 现 难 以 预 测 的 结 果。举 例 来 说,运 载 火 箭 的 控 制 等。软 实 时 任 务 是 指 它 的 截 止 时 间 并 不 严 格,偶 尔 错 过 了 任 务 的 截 止 时 间,对 系 统 产 生 的 影 响 不 大。举 例:网 页 内 容 的 更 新、火 车 售 票 系 统。10.在 8位 微 机 和 16位 微 机 中,占 据 了 统 治 地 位 的 是 什 么 操 作 系 统?答:单 用 户 单 任 务 操 作 系 统,其 中 最 具 代 表 性 的 是 CP/M和 岭-DOS.11.试 列 出 Windows O S 中 五 个 主 要 版 本,并 说 明 它 们 分 别 较 之 前 一 个 版 本 有 何 改 进。答:(1)Microsoft Windows L 0是 微 软 公 司 在 个 人 电 脑 上 开 发 图 形 界 面 的 首 次 尝 试。(2)Windows 95是 混 合 的 16位/32位 系 统,第 一 个 支 持 32位。带 来 了 更 强 大、更 稳 定、更 实 用 的 桌 面 图 形 用 户 界 面,结 束 了 桌 面 操 作 系 统 间 的 竞 争。(3)Windows 98是 微 软 公 司 的 混 合 16位/32位 Windows操 作 系 统,改 良 了 硬 件 标 准 的 支 持,革 新 了 内 存 管 理,是 多 进 程 操 作 系 统。(4)Windows XP是 基 于 Windows 2000的 产 品,拥 有 新 用 户 图 形 界 面 月 神 Luna。简 化 了 用 户 安 全 特 性,整 合 了 防 火 墙。(5)Windows Vista包 含 了 上 百 种 新 功 能;特 别 是 新 版 图 形 用 户 界 面 和 Windows Aero全 新 界 面 风 格、加 强 的 搜 寻 功 能(Windows Indexing Service)、新 媒 体 创 作 工 具 以 及 重 新 设 计 的 网 络、音 频、输 出(打 印)和 显 示 子 系 统。12.试 从 交 互 性、及 时 性 以 及 可 靠 性 方 面,将 分 时 系 统 与 实 时 系 统 进 行 比 较。答:(1)及 时 性:实 时 信 息 处 理 系 统 对 实 时 性 的 要 求 与 分 时 系 统 类 似,都 是 以 人 所 能 接 受的 等 待 时 间 来 确 定;而 实 时 控 制 系 统 的 及 时 性,是 以 控 制 对 象 所 要 求 的 开 始 截 止 时 间 或 完 成 截 止 时 间 来 确 定 的,一 般 为 秒 级 到 毫 秒 级,甚 至 有 的 要 低 于 100微 妙。(2)交 互 性:实 时 信 息 处 理 系 统 具 有 交 互 性,但 人 与 系 统 的 交 互 仅 限 于 访 问 系 统 中 某 些 特 定 的 专 用 服 务 程 序。不 像 分 时 系 统 那 样 能 向 终 端 用 户 提 供 数 据 和 资 源 共 享 等 服 务。(3)可 靠 性:分 时 系 统 也 要 求 系 统 可 靠,但 相 比 之 下,实 时 系 统 则 要 求 系 统 具 有 高 度 的 可 靠 性。因 为 任 何 差 错 都 可 能 带 来 巨 大 的 经 济 损 失,甚 至 是 灾 难 性 后 果,所 以 在 实 时 系 统 中,往 往 都 采 取 了 多 级 容 错 措 施 保 障 系 统 的 安 全 性 及 数 据 的 安 全 性。13.0S有 哪 几 大 特 征?其 最 基 本 的 特 征 是 什 么?答:并 发 性、共 享 性、虚 拟 性 和 异 步 性 四 个 基 本 特 征;最 基 本 的 特 征 是 并 发 性。14.处 理 机 管 理 有 哪 些 主 要 功 能?它 们 的 主 要 任 务 是 什 么?答:处 理 机 管 理 的 主 要 功 能 是:进 程 管 理、进 程 同 步、进 程 通 信 和 处 理 机 调 度;进 程 管 理:为 作 业 创 建 进 程,撤 销 已 结 束 进 程,控 制 进 程 在 运 行 过 程 中 的 状 态 转 换。进 程 同 步:为 多 个 进 程(含 线 程)的 运 行 进 行 协 调。通 信:用 来 实 现 在 相 互 合 作 的 进 程 之 间 的 信 息 交 换。处 理 机 调 度:(1)作 业 调 度。从 后 备 队 里 按 照 一 定 的 算 法,选 出 若 干 个 作 业,为 他 们 分 配 运 行 所 需 的 资 源(首 选 是 分 配 内 存)。(2)进 程 调 度:从 进 程 的 就 绪 队 列 中,按 照 一 定 算 法 选 出 一 个 进 程,把 处 理 机 分 配 给 它,并 设 置 运 行 现 场,使 进 程 投 入 执 行。15.内 存 管 理 有 哪 些 主 要 功 能?他 们 的 主 要 任 务 是 什 么?北 京 石 油 化 工 学 院 信 息 工 程 学 院 计 算 机 系 3/48 计 算 机 操 作 系 统 习 题 参 考 答 案 余 有 明 与 计 07和 计 G09的 同 学 们 编 著 3/48答:内 存 管 理 的 主 要 功 能 有:内 存 分 配、内 存 保 护、地 址 映 射 和 内 存 扩 充。内 存 分 配:为 每 道 程 序 分 配 内 存。内 存 保 护:确 保 每 道 用 户 程 序 都 只 在 自 己 的 内 存 空 间 运 行,彼 此 互 不 干 扰。地 址 映 射:将 地 址 空 间 的 逻 辑 地 址 转 换 为 内 存 空 间 与 对 应 的 物 理 地 址。内 存 扩 充:用 于 实 现 请 求 调 用 功 能,置 换 功 能 等。16.设 备 管 理 有 哪 些 主 要 功 能?其 主 要 任 务 是 什 么?答:主 要 功 能 有:缓 冲 管 理、设 备 分 配 和 设 备 处 理 以 及 虚 拟 设 备 等。主 要 任 务:完 成 用 户 提 出 的 I/O请 求,为 用 户 分 配 I/O设 备;提 高 CPU和 I/O设备 的 利 用 率;提 高 I/O速 度;以 及 方 便 用 户 使 用 I/O设 备.17.文 件 管 理 有 哪 些 主 要 功 能?其 主 要 任 务 是 什 么?答:文 件 管 理 主 要 功 能:文 件 存 储 空 间 的 管 理、目 录 管 理、文 件 的 读/写 管 理 和 保 护。文 件 管 理 的 主 要 任 务:管 理 用 户 文 件 和 系 统 文 件,方 便 用 户 使 用,保 证 文 件 安 全 性。18.是 什 么 原 因 使 操 作 系 统 具 有 异 步 性 特 征?答:操 作 系 统 的 异 步 性 体 现 在 三 个 方 面:一 是 进 程 的 异 步 性,进 程 以 人 们 不 可 预 知 的 速 度 向 前 推 进,二 是 程 序 的 不 可 再 现 性,即 程 序 执 行 的 结 果 有 时 是 不 确 定 的,三 是 程 序 执 行 时 间 的 不 可 预 知 性,即 每 个 程 序 何 时 执 行,执 行 顺 序 以 及 完 成 时 间 是 不 确 定 的。19.模 块 接 口 法 存 在 哪 些 问 题?可 通 过 什 么 样 的 途 径 来 解 决?答:(1)模 块 接 口 法 存 在 的 问 题:在 OS设 计 时,各 模 块 间 的 接 口 规 定 很 难 满 足 在 模 块 完 成 后 对 接 口 的 实 际 需 求。在 O S设 计 阶 段,设 计 者 必 须 做 出 一 系 列 的 决 定,每 一 个 决 定 必 须 建 立 在 上 一 个 决 定 的 基 础 上。但 模 块 化 结 构 设 计 的 各 模 块 设 计 齐 头 并 进,无 法 寻 找 可 靠 的 顺 序,造 成 各 种 决 定 的 无 序 性,使 程 序 设 计 人 员 很 难 做 到 设 计 中 的 每 一 步 决 定 都 建 立 在 可 靠 的 基 础 上,因 此 模 块 接 口 法 被 称 为“无 序 模 块 法”。(2)解 决 途 径:将 模 块 接 口 法 的 决 定 顺 序 无 序 变 有 序,引 入 有 序 分 层 法。20.在 微 内 核 OS中,为 什 么 要 采 用 客 户/服 务 器 模 式?答:C/S模 式 具 有 独 特 的 优 点:数 据 的 分 布 处 理 和 存 储。便 于 集 中 管 理。灵 活 性 和 可 扩 充 性。易 于 改 编 应 用 软 件。21.试 描 述 什 么 是 微 内 核 OS。答:1)足 够 小 的 内 核 2)基 于 客 户/服 务 器 模 式 3)应 用 机 制 与 策 略 分 离 原 理 4)采 用 面 向 对 象 技 术。22.在 基 于 微 内 核 结 构 的 OS中,应 用 了 哪 些 新 技 术?答:在 基 于 微 内 核 结 构 的 O S中,采 用 面 向 对 象 的 程 序 设 汁 技 术。23.何 谓 微 内 核 技 术?在 微 内 核 中 通 常 提 供 了 哪 些 功 能?答:把 操 作 系 统 中 更 多 的 成 分 和 功 能 放 到 更 高 的 层 次(即 用 户 模 式)中 去 运 行,而 留 下 一 个 尽 量 小 的 内 核,用 它 来 完 成 操 作 系 统 最 基 本 的 核 心 功 能,称 这 种 技 术 为 微 内 核 技 术。在 微 内 核 中 通 常 提 供 了 进 程(线 程)管 理、低 级 存 储 器 管 理、中 断 和 陷 入 处 理 等 功 能。24.微 内 核 操 作 系 统 具 有 哪 些 优 点?它 为 何 能 有 这 些 优 点?答:1)提 高 了 系 统 的 可 扩 展 性 2)增 强 了 系 统 的 可 靠 性3)可 移 植 性 4)提 供 了 对 分 布 式 系 统 的 支 持 5)融 入 了 面 向 对 象 技 术 第 二 章 1.什 么 是 前 趋 图?为 什 么 要 引 入 前 珞 图?答:前 趋 图(Precedence Graph)是 一 个 有 向 无 循 环 图,记 为 DAG(Directed AcyclicGraph),用 于 描 述 进 程 之 间 执 行 的 前 后 关 系。2.画 出 下 面 四 条 语 句 的 前 趋 图:Sl=a:=x+y;S2=b:=z+l;S3=c:=a-b;S4=w:=c+l;答:其 前 趋 图 为:J,3.什 么 程 序 并 发 执 行 会 产 生 间 断 性 特 征?答:程 序 在 并 发 执 行 时,由 于 它 们 共 享 系 统 资 源,为 完 成 同 一 项 任 务 需 要 相 互 合 作,致 使 这 些 并 发 执 行 的 进 程 之 间,形 成 了 相 互 制 约 关 系,从 而 使 得 进 程 在 执 行 期 间 出 现 间 断 性。4.程 序 并 发 执 行 时 为 什 么 会 失 去 封 闭 性 和 可 再 现 性?答:程 序 并 发 执 行 时,多 个 程 序 共 享 系 统 中 的 各 种 资 源,因 而 这 些 资 源 的 状 态 由 多 个 程 序 改 变,致 使 程 序 运 行 失 去 了 封 闭 性,也 会 导 致 其 失 去 可 再 现 性。5.在 操 作 系 统 中 为 什 么 要 引 入 进 程 概 念?它 会 产 生 什 么 样 的 影 响?答:为 了 使 程 序 在 多 道 程 序 环 境 下 能 并 发 执 行,并 对 并 发 执 行 的 程 序 加 以 控 制 和 描 述,在 操 作 系 统 中 引 入 了 进 程 概 念。影 响:使 程 序 的 并 发 执 行 得 以 实 行。6.试 从 动 态 性,并 发 性 和 独 立 性 上 比 较 进 程 和 程 序?答:(1)动 态 性 是 进 程 最 基 本 的 特 性,表 现 为 由 创 建 而 产 生,由 调 度 而 执 行,因 得 不 到 资 源 而 暂 停 执 行,由 撤 销 而 消 亡。进 程 有 一 定 的 生 命 期,而 程 序 只 是 一 组 有 序 的 指 令 集 合,是 静 态 实 体。(2)并 发 性 是 进 程 的 重 要 特 征,同 时 也 是 O S 的 重 要 特 征 引 入 进 程 的 目 的 正 是 为 了 使其 程 序 能 和 其 它 进 程 的 程 序 并 发 执 行,而 程 序 是 不 能 并 发 执 行 的。(3)独 立 性 是 指 进 程 实 体 是 一 个 能 独 立 运 行 的 基 本 单 位,也 是 系 统 中 独 立 获 得 资 源 和 独 立 调 度 的 基 本 单 位。对 于 未 建 立 任 何 进 程 的 程 序,不 能 作 为 独 立 单 位 参 加 运 行.7.试 说 明 PCB的 作 用,为 什 么 说 PCB是 进 程 存 在 的 惟 一 标 志?答:PCB是 进 程 实 体 的 一 部 分,是 操 作 系 统 中 最 重 要 的 记 录 型 数 据 结 构。作 用 是 使 一 个 在 多 道 程 序 环 境 下 不 能 独 立 运 行 的 程 序,成 为 一 个 能 独 立 运 行 的 基 本 单 位,成 为 能 与 其 它 进 程 并 发 执 行 的 进 程。OS是 根 据 PCB对 并 发 执 行 的 进 程 进 行 控 制 和 管 理 的。8.试 说 明 进 程 在 三 个 基 本 状 态 之 间 转 换 的 典 型 原 因。答:(1)就 绪 状 态 一 执 行 状 态:进 程 分 配 到 CPU资 源(2)执 行 状 态 一 就 绪 状 态:时 间 片 用 完(3)执 行 状 态 一 阻 塞 状 态:I/O请 求(4)阻 塞 状 态 一 就 绪 状 态:I/O完 成 9.为 什 么 要 引 入 挂 起 状 态?该 状 态 有 哪 些 性 质?答:引 入 挂 起 状 态 处 于 五 种 不 同 的 需 要:终 端 用 户 需 要,父 进 程 需 要,操 作 系 统 需 要,对 换 北 京 石 油 化 工 学 院 信 息 工 程 学 院 计 算 机 系 5/48 计 算 机 操 作 系 统 习 题 参 考 答 案 余 有 明 与 计 07和 计 G09的 同 学 们 编 著 5/48需 要 和 负 荷 调 节 需 要。处 于 挂 起 状 态 的 进 程 不 能 接 收 处 理 机 调 度。10.在 进 行 进 程 切 换 时,所 要 保 存 的 处 理 机 状 态 信 息 有 哪 些?答:进 行 进 程 切 换 时,所 要 保 存 的 处 理 机 状 态 信 息 有:(1)进 程 当 前 暂 存 信 息(2)下 一 指 令 地 址 信 息(3)进 程 状 态 信 息(4)过 程 和 系 统 调 用 参 数 及 调 用 地 址 信 息。11.试 说 明 引 起 进 程 创 建 的 主 要 事 件。答:引 起 进 程 创 建 的 主 要 事 件 有:用 户 登 录、作 业 调 度、提 供 服 务、应 用 请 求。12.试 说 明 引 起 进 程 被 撤 销 的 主 要 事 件。答:引 起 进 程 被 撤 销 的 主 要 事 件 有:正 常 结 束、异 常 结 束(越 界 错 误、保 护 错、非 法 指 令、特 权 指 令 错、运 行 超 时、等 待 超 时、算 术 运 算 错、I/O故 障)、外 界 干 预(操 作 员 或 操 作 系 统 干 预、父 进 程 请 求、父 进 程 终 止)。13.在 创 建 一 个 进 程 时 所 要 完 成 的 主 要 工 作 是 什 么?答:(1)O S 发 现 请 求 创 建 新 进 程 事 件 后,调 用 进 程 创 建 原 语 CreatO;(2)申 请 空 白 PCB;(3)为 新 进 程 分 配 资 源;(4)初 始 化 进 程 控 制 块;(5)将 新 进 程 插 入 就 绪 队 列.14.在 撤 销 一 个 进 程 时 所 要 完 成 的 主 要 工 作 是 什 么?答:(1)根 据 被 终 止 进 程 标 识 符,从 PCB集 中 检 索 出 进 程 PCB,读 出 该 进 程 状 态。(2)若 被 终 止 进 程 处 于 执 行 状 态,立 即 终 止 该 进 程 的 执 行,置 调 度 标 志 真,指 示 该 进 程 被 终 止 后 重 新 调 度。(3)若 该 进 程 还 有 子 进 程,应 将 所 有 子 孙 进 程 终 止,以 防 它 们 成 为 不 可 控 进 程。(4)将 被 终 止 进 程 拥 有 的 全 部 资 源,归 还 给 父 进 程,或 归 还 给 系 统。(5)将 被 终 止 进 程 PCB从 所 在 队 列 或 列 表 中 移 出,等 待 其 它 程 序 搜 集 信 息。15.试 说 明 引 起 进 程 阻 塞 或 被 唤 醒 的 主 要 事 件 是 什 么?答:a.请 求 系 统 服 务;b.启 动 某 种 操 作;c.新 数 据 尚 未 到 达;d.无 新 工 作 可 做.16.进 程 在 运 行 时 存 在 哪 两 种 形 式 的 制 约?并 举 例 说 明 之。答:(1)间 接 相 互 制 约 关 系。举 例:有 两 进 程 A 和 B,如 果 A 提 出 打 印 请 求,系 统 已 把 唯 一 的 一 台 打 印 机 分 配 给 了 进 程 B,则 进 程 A 只 能 阻 塞;一 旦 B 释 放 打 印 机,A 才 由 阻 塞 改 为 就 绪。(2)直 接 相 互 制 约 关 系。举 例:有 输 入 进 程 A 通 过 单 缓 冲 向 进 程 B 提 供 数 据。当 缓 冲 空 时,计 算 进 程 因 不 能 获 得 所 需 数 据 而 阻 塞,当 进 程 A 把 数 据 输 入 缓 冲 区 后,便 唤 醒 进 程 B;反 之,当 缓 冲 区 已 满 时.,进 程 A 因 没 有 缓 冲 区 放 数 据 而 阻 塞,进 程 B 将 缓 冲 区 数 据 取 走 后 便 唤 醒 A。17.为 什 么 进 程 在 进 入 临 界 区 之 前 应 先 执 行“进 入 区”代 码?而 在 退 出 前 又 要 执 行“退 出 区”代 码?答:为 了 实 现 多 个 进 程 对 临 界 资 源 的 互 斥 访 问,必 须 在 临 界 区 前 面 增 加 一 段 用 于 检 查 欲 访 问 的 临 界 资 源 是 否 正 被 访 问 的 代 码,如 果 未 被 访 问,该 进 程 便 可 进 入 临 界 区 对 资 源 进 行 访 问,并 设 置 正 被 访 问 标 志,如 果 正 被 访 问,则 本 进 程 不 能 进 入 临 界 区,实 现 这 功 能 的 代 码 为 进 入 区”代 码;在 退 出 临 界 区 后,必 须 执 行 退 出 区”代 码,用 于 恢 复 未 被 访 问 标 志,使 其 它 进 程 能 再 访 问 此 临 界 资 源。18.同 步 机 构 应 遵 循 哪 些 基 本 准 则?为 什 么?答:同 步 机 构 应 遵 循 的 基 本 准 则 是:空 闲 让 进、忙 则 等 待、有 限 等 待、让 权 等 待 原 因:为 实 现 进 程 互 斥 进 入 自 己 的 临 界 区。19.试 从 物 理 概 念 上 说 明 记 录 型 信 号 量 wait和 signal。答:wait(S):当 S.value0时,表 示 目 前 系 统 中 这 类 资 源 还 有 可 用 的。执 行 一 次 wait操 作,意 味 着 进 程 请 求 一 个 单 位 的 该 类 资 源,使 系 统 中 可 供 分 配 的 该 类 资 源 减 少 一 个,因 此 描 述 为 S.value:=S.valueT;当 S.value0时,表 示 该 类 资 源 已 分 配 完 毕,进 程 应 调 用 block原 语 自 我 阻 塞,放 弃 处 理 机,并 插 入 到 信 号 量 链 表 S.L中。signal(S):执 行 一 次 signal操 作,意 味 着 释 放 一 个 单 位 的 可 用 资 源,使 系 统 中 可 供 分 配 的 该 类 资 源 数 增 加,个,故 执 行 S.value:=S.value+1操 作。若 加 1 后 S.valueWO,则 表 示 在 该 信 号 量 链 表 中,仍 有 等 待 该 资 源 的 进 程 被 阻 塞,因 此 应 调 用 wakeup原 语,将 S.L链 表 中 的 第 一 个 等 待 进 程 唤 醒。20.你 认 为 整 型 信 号 量 机 制 是 否 完 全 遵 循 了 同 步 机 构 的 四 条 准 则?答:整 型 信 号 量 机 制 不 完 全 遵 循 同 步 机 制 的 四 条 准 则,它 不 满 足“让 权 等 待”准 则。21.如 何 利 用 信 号 量 机 制 来 实 现 多 个 进 程 对 临 界 资 源 的 互 斥 访 问?并 举 例 说 明 之。答:为 使 多 个 进 程 互 斥 访 问 某 临 界 资 源,只 需 为 该 资 源 设 置 一 互 斥 信 号 量 mutex,并 设 其 初 值 为 1,然 后 将 各 进 程 访 问 该 资 源 的 临 界 区 CS置 于 wait(mutex)和 signal(mutex)操 作 之 间 即 可。这 样,每 个 欲 访 问 该 临 界 资 源 的 进 程 在 进 入 临 界 区 之 前,都 要 先 对 mutex执 行 wait操 作,若 该 资 源 此 刻 未 被 访 问,本 次 wait操 作 必 然 成 功,进 程 便 可 进 入 自 己 的 临 界 区,这 时 若 再 有 其 他 进 程 也 欲 进 入 自 己 的 临 界 区,此 时 由 于 对 mutex执 行 wait操 作 定 会 失 败,因 而 该 进 程 阻 塞,从 而 保 证 了 该 临 界 资 源 能 被 互 斥 访 问。当 访 问 临 界 资 源 的 进 程 退 出 临 界 区 后,应 对 mutex执 行 signal操 作,释 放 该 临 界 资 源。利 用 信 号 量 实 现 进 程 互 斥 的 进 程 描 述 如 下:Var mutex:semaphored;beginparbeginprocess 1:beginrepeatwait(mutex);critical sectionsignal(mutex);remainder sectionuntil false;endprocess 2:beginrepeatwait(mutex);critical sectionsignal(mutex);remainder sectionuntil false;endparend22.试 写 出 相 应 的 程 序 来 描 述 图 2-17所 示 的 前 驱 图。答:(a)Var a,b,c,d,e,f,g,h;semaphores 0,0,0,0,0,0,0,0;beginparbeginbegin SI;signal(a);signal(b);end;begin wait(a);S2;signal(c);signal(d);end;begin wait(b);S3;signal(e);end;begin wait(c);S4;signal(f);end;begin wait(d);S5;signal(g);end;begin wait(e);S6;signal(h);end;begin wait(f);wait(g);wait(h);S7;end;parendend(b)Var a,b,c,d,e,f,g,h,i,j;semaphores 0,0,0,0,0,0,0,0,0,0;beginparbeginbegin SI;signal(a);signal(b);end;begin wait(a);S2;signal(c);signal(d);end;begin wait(b);S3;signal(e);signal(f);end;begin wait(c);S4;signal(g);end;begin wait(d);S5;signal(h);end;begin wait(e);S6;signal(i);end;begin wait(f);S7;signal(j);end;begin wait(g);wait(h);wait(i);wait(j);S8;end;parendend23.在 生 产 者 消 费 者 问 题 中,如 果 缺 少 了 signal(full)或 signal(empty),对 执 行 结 果 有 何 影 响?答:如 果 缺 少 signal(full),那 么 表 明 从 第 一 个 生 产 者 进 程 开 始 就 没 有 改 变 信 号 量 full值,即 使 缓 冲 池 产 品 已 满,但 full值 还 是 0,这 样 消 费 者 进 程 执 行 wait(full)时 认 为 缓 冲 池 是 空 而 取 不 到 产 品,消 费 者 进 程 一 直 处 于 等 待 状 态。如 果 缺 少 signal(empty),在 生 产 者 进 程 向 n个 缓 冲 区 投 满 产 品 后 消 费 者 进 程 才 开 始 从 中 取 产 品,这 时 empty=0,full=n,那 么 每 当 消 费 者 进 程 取 走 一 个 产 品 empty值 并 不 改 变,直 到 缓 冲 池 取 空 了,empty值 也 是 0,即 使 目 前 缓 冲 池 有 n 个 空 缓 冲 区,生 产 者 进 程 要 想再 往 缓 冲 池 中 投 放 产 品 也 会 因 为 申 请 不 到 空 缓 冲 区 被 阻 塞。24.在 生 产 消 费 者 问 题 中,如 果 将 两 个 wait操 作 即 wait(full)和 wait(mutex)互 换 位 置,或 者 将 signal(mutex)与 signal(full)互 换 位 置,结 果 如 何?答:将 wait(full)和 wait(mutex)互 换 位 置 后,可 能 引 起 死 锁。考 虑 系 统 中 缓 冲 区 全 满 时,若 一 生 产 者 进 程 先 执 行 了 wait(mutex)操 作 并 获 得 成 功,则 当 再 执 行 wait(empty)操 作 时,它 将 因 失 败 而 进 入 阻 塞 状 态,它 期 待 消 费 者 进 程 执 行 signal(empty)来 唤 醒 自 己,在 此 之 前,它 不 可 能 执 行 signal(mutex)操 作,从 而 使 试 图 通 过 执 行 wait(mutex)操 作 而 进 入 自 己 的 临 界 区 的 其 他 生 产 者 和 所 有 消 费 者 进 程 全 部 进 入 阻 塞 状 态,这 样 容 易 引 起 系 统 死 锁。若 signal(mutex)和 signal(full)互 换 位 置 后 只 是 影 响 进 程 对 临 界 资 源 的 释 放 次 序,而 不 会 引 起 系 统 死 锁,因 此 可 以 互 换 位 置。25.我 们 在 为 某 一 临 界 资 源 设 置 一 把 锁 肌 当 归 1时 表 示 关 锁,当 归。时 表 示 锁 已 打 开。试 写 出 开 锁 和 关 锁 的 原 语,并 利 用 他 们 实 现 互 斥。答:整 型 信 号 量:lock(W):while W=1 do no-opW:=l;unlock(W):W:=0;记 录 型 信 号 量:lock(W):W:=W+1;if(Wl)then block(W,L)unlock(W):W:=W-1;if(W0)then wakeup(W,L)例 子:Var W:semaphore:=0;beginrepeatlock(W);critical sectionunlock(W);remainder sectionuntil false;end26.试 修 改 下 面 生 产 者 一 消 费 者 问 题 解 法 中 的 错 误:答:producer:beginrepeatproducer an item in nextp;wait(mutex);wait(full);/*应 为 wait(empty),而 且 还 应 该 在 wait(mutex)的 前 面*/buffer(in):=nextp;/*缓 冲 池 数 组 游 标 应 前 移:in:=(in+l)mod n;*/signal(mutex);/*signal(full);*/until false;endconsumer:beginrepeatwait(mutex);wait(empty);/*应 为 wait(full),而 且 还 应 该 在 wait(mutex)的 前 面*/nextc:=buffer(out);out:=out+l;/*考 虑 循 环,应 改 为:out:=(out+l)mod n;*/signal(mutex);/*signal(empty);*/consumer item in nextc;until false;end27.试 利 用 记 录 型 信 号 量 写 出 一 个 不 会 出 现 死 锁 的 哲 学 家 进 餐 问 题 的 算 法.答:Var chopstick:array0,,4 of semaphore;所 有 信 号 量 均 被 初 始 化 为 I,第 i 位 哲 学 家 的 活 动 可 描 述 为:RepeatWait(chopsticki);Wait(.chopstick(i+1)mod 5);Ea.t;Signal(chopsticki);Signal(chopstick(i+l)mod 5)Ea.t;Think;Until false;28.在 测 量 控 制 系 统 中 的 数 据 采 集 任 务,把 所 采 集 的 数 据 送 一 单 缓 冲 区;计 算 任 务 从 该 单 缓 冲 中 取 出 数 据 进 行 计 算.试 写 出 利 用 信 号 量 机 制 实 现 两 者 共 享 单 缓 冲 的 同 步 算 法。答:a.Var mutex,empty,full:semaphore:=1,1,0;gather:beginrepeatgather data in nextp;wait(empty);wait(mutex);buffer:=nextp;signal(mutex);signal(full);until false;endcompute:beginrepeatwait(full);wait(mutex);nextc:=buffer;signal(mutex);signal(empty);compute data in nextc;until false;endb.Var empty,full:semaphore:=1,0;gather:beginrepeatgather data in nextp;wait(empty);buffer:=nextp;signal(full);until false;endcompute:be