生产者消费者问题操作系统课程设计
《生产者消费者问题操作系统课程设计》由会员分享,可在线阅读,更多相关《生产者消费者问题操作系统课程设计(10页珍藏版)》请在毕设资料网上搜索。
1、题 目:题 目:生产者生产者- -消费者问题消费者问题的模拟实现的模拟实现 一、一、设计目的设计目的 本课程设计是学习完“操作系统原理”课程后进行的一次全面的综合训练, 通过课程设计,更好地掌握操作系统的原理及实现方法,加深对操作系统基础理 论和重要算法的理解,加强学生的动手能力。 二、二、设计内容设计内容 (1 1)概述)概述 设计目的:通过研究 Linux 的进程机制和信号量实现生产者消费者问题的 并发控制。 说明:有界缓冲区内设有 20 个存储单元,放入/取出的数据项设定为 1-20 这 20 个整型数。 设计要求:(1)每个生产者和消费者对有界缓冲区进行操作后,即时显示有界 缓冲区的全
2、部内容,当前指针位置和生产者/消费者县城的标识符。(2)生产者和 消费者各有两个以上。(3)多个生产者或多个消费者之间须有共享对缓冲区进行 操作的函数代码。 (2 2)设计原理)设计原理 通过一个有界缓冲区把生产者和消费者联系起来。假定生产者和消费者的优先级是 相同的,只要缓冲区未满,生产者就可以生产产品并将产品送入缓冲区。类似地,只要 缓冲区未空,消费者就可以从缓冲区中取走产品。应该禁止生产者向满的缓冲区送入产 品,同时也应该禁止消费者从空的缓冲区中取出产品,这一机制有生产者线程和消费者 线程之间的互斥关系来实现。与计算打印两进程同步关系相同,生产者和消费者两进程 P 和 C 之间应满足下列
3、两个同步条件: 只有在缓冲池中至少有一个缓冲区已存入消息后,消费者才能从中提取信息, 否则消费者必须等待。 只有缓冲池中至少有一个缓冲区是空时,生产者才能把消息放入缓冲区,否则 生产者必须等待。 为了满足第一个同步条件,设置一个同步信号量 full,它代表的资源是缓冲区满, 它的初始值为 0,它的值为 n 时整个缓冲池满。这个资源是消费者类进程 C 所有,C 进 1 程可以申请该资源,对它施加 P 操作,而 C 进程的合作进程生产者进程 P 对它施加 V 操 作。同样为了满足第二个同步条件,设置另一个同步信号量 empty,它代表的资源是缓 冲空区,它的初始值为 n,表示缓冲池中所有缓冲区空。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 生产者 消费者 问题 操作系统 课程设计
