操作系统课程设计生产者消费者
《操作系统课程设计生产者消费者》由会员分享,可在线阅读,更多相关《操作系统课程设计生产者消费者(13页珍藏版)》请在毕设资料网上搜索。
1、 1 (操作系统课程设计) 生 产 者 和 消 费 者 学生姓名: 学生学号: 班 级: 2 一、课程题目分析 这个题目是生产者向消费者提供商品,消费者消耗商品,并且两组人共用同 一缓冲区。生产者提供了商品之后消费者才能去取商品,消费者若不取走商品则 当缓冲区用完之后生产者则不能再向缓冲区中添加新的商品。 思考问题: (1)对于生产者进程:每产生一个数据,则需去访问共用缓冲区是否有已 满,未满则可以将该数据存入并通知消费者进程,否则不能。 (2)对于消费者进程:每当想去消费(取出数据)时,则需访问缓冲区是 否为空,为空则不能消费(取出数据) ,否则可以取,并通知生产者。 (3)缓冲区是个临界资
2、源,所有的进程对于该空间都是共享的,所以,还 有互斥问题存在。 二、课程设计目的 通过实验模拟生产者与消费者之间的关系, 了解并掌握他们之间的关系及原 理。由此增加对进程同步问题的了解: (1)掌握基本的同步互斥算法,理解生产者与消费者模型 (2)了解 windows 中多线程(多进程)的并发执行机制,线程(进程)间 的同步于互斥 (3)学习使用 windows 中基本的同步对象,掌握相应的 API。 三、 课程设计内容 有n个生产者和m个消费者, 连接在具有k个单位缓冲区的有界环转缓冲上, 故又称有界缓冲问题。其中 Pi和 Cj都是并发进程,只要缓冲区未满,生产者进 程 Pi所生产的产品就可
3、投入缓冲区;类似地,只要缓冲区非空,消费者进程 Cj 就可以从缓冲区取走并消耗产品。 四、开发环境 操作系统:Windows 系统 编写语言:C+语言 五、系统分析设计 (一)算法原理 生产者消费者问题是典型的进程同步问题, 这些进程必须按照一定的生 产率和消费率来访问共享缓冲区,用 P、V 操作解决生产者和消费者共享单缓冲 区的问题,可设置两个信号量 empty 和 full,其初值分别为 1 和 0,empty 指示 能否向缓冲区放入产品,full 指示能否从缓冲区取出产品。为了使其协调工作, 必须使用一个信号量 mutex(初值为 1) ,以限制生产者和消费者互斥地对缓冲区 进行存取,另
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 生产者 消费者
