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