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