操 作 系 统 实 验 报 告 ——生 产 者 和 消 费 者 问 题 姓 名 : 学 号 : 班 级 : 一 、实验内容 1、模拟操 作 系 统 中进程同步和 互斥; 2、实 现生 产 者 和 消 费 者 问 题 的算法实 现; 二、实验目的 1、熟悉临界资源、信号 量及 PV 操 作 的定义与物理意义; 2、了解进程通信的方法; 3、掌握进程互斥与进程同步的相关知识; 4、掌握用信号 量机制解决进程之间的同步与互斥问 题 ; 5、实 现生 产 者 -消 费 者 问 题 ,深刻理解进程同步问 题 ; 三、实验题目 在 Windows 操 作 系 统 下用 C 语言实 现经典同步问 题 : 生 产者 —消 费 者 ,具体要求如下: (1)一个大小为 10 的缓冲区,初始状态为空。 (2)2 个生 产 者 ,随机等待一段时间,往缓冲区中添加数据,若缓冲区已满,等待消 费 者 取走数据之后再添加,重复 10 次。 (3)2 个消 费 者 ,随机等待一段时间,从缓冲区中读取数据,若缓 冲 区 为 空 , 等 待 生 产 者 添 加 数 据 之 后 再 读 取 , 重 复 10 次 。 四 、思想 本 实 验 的 主 要 目 的 是 模 拟 操 作 系 统 中 进 程 同 步 和 互 斥 。 在 系 统 进程 并 发 执 行 异 步 推 进 的 过 程 中 , 由 于 资 源 共 享 和 进 程 间 合 作 而 造 成 进程 间 相 互 制 约 。 进 程 间 的 相 互 制 约 有 两 种 不 同 的 方 式 。 ( 1) 间 接 制 约 。 这 是 由 于 多 个 进 程 共 享 同 一 资 源 ( 如CPU、共享 输入/输出设备) 而 引起的 , 即共 享 资 源 的 多 个 进 程 因系 统 协调使用资 源 而 相 互 制 约 。 ( 2) 直接 制 约 。 只是 由 于 进 程 合 作 中 各个 进 程 为 完成 同 一 任务而造 成 的 , 即并 发 进 程 各自的 执 行 结果互 为 对方 的 执 行 条件, 从而 限制各个 进 程 的 执 行 速度。 生 产 者 和 消费者 是 经典的 进 程 同 步 问题, 在 这 个 问题中 , 生 产 者不 断的 向缓 冲 区 中 写入数 据 , 而 消费者 则从缓 冲 区 中 读 取 数 据 。 生 产者 进 程 和 消费者 对缓 冲 区 的 操 作 ...