1 实验3 读者/写者问题与进程同步 3
1 实验目的 理 解 临 界 区 和 进 程 互 斥 的 概 念 , 掌 握 用 信 号 量 和 PV 操 作 实 现 进 程 互 斥 的 方 法
2 实验要求 在 windows 或 者 linux环 境 下 编 写 一 个 控 制 台 应 用 程 序 ,该 程 序 运 行 时 能 创 建 N 个 线 程 ,其 中 既 有 读 者 线 程 又 有 写 者 线 程 , 它 们 按 照 事 先 设 计 好 的 测 试 数 据 进 行 读 写 操 作
请 用 信 号量 和 PV 操 作 实 现 读 者 /写 者 问 题
读 者 /写 者 问 题 的 描 述 如 下 : 有 一 个 被 许 多 进 程 共 享 的 数 据 区 , 这 个 数 据 区 可 以 是 一 个 文 件 , 或 者 主 存 的 一 块 空 间 ,甚 至 可 以 是 一 组 处 理 器 寄 存 器
有 一 些 只 读 取 这 个 数 据 区 的 进 程 ( reader) 和 一 些 只 往 数 据区 中 写 数 据 的 进 程 ( writer)
以 下 假 设 共 享 数 据 区 是 文 件
这 些 读 者 和 写 者 对 数 据 区 的 操 作必 须 满 足 以 下 条 件 : 读 —读 允 许 ; 读 —写 互 斥 ; 写 —写 互 斥
这 些 条 件 具 体 来 说 就 是 : ( 1) 任 意 多 的 读 进 程 可 以 同 时 读 这 个 文 件 ; ( 2) 一 次 只 允 许 一 个 写 进 程 往 文 件 中 写 ; ( 3) 如 果 一 个 写 进 程 正 在 往 文 件 中 写 , 禁 止 任 何 读 进 程 或 写 进 程 访 问 文 件 ; ( 4) 写 进 程 执行 写 操 作 前, 应 让已有 的 写 者