操作系统实现生产者消费者问题

操作系统实现生产者消费者问题

ID:9996430

大小:136.50 KB

页数:13页

时间:2018-05-20

操作系统实现生产者消费者问题_第1页
操作系统实现生产者消费者问题_第2页
操作系统实现生产者消费者问题_第3页
操作系统实现生产者消费者问题_第4页
操作系统实现生产者消费者问题_第5页
资源描述:

《操作系统实现生产者消费者问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、操作系统课程设计操作系统综合设计实现生产者消费者问题目录第一部分:实现生产者与消费者问题一、题目……………………………………………………………………………………………21、课程设计目的…………………………………………………………………………………22、课程设计要求…………………………………………………………………………………2二、设计内容………………………………………………………………………………………2三、开发环境………………………………………………………………………………………3四、分析设计……………………………………………………………………………………

2、…31、设计原理………………………………………………………………………………………32、涉及的数据结构………………………………………………………………………………53、流程图…………………………………………………………………………………………6五、运行示例及结果分析…………………………………………………………………………81、运行示例………………………………………………………………………………………82、运行结果分析:………………………………………………………………………………9六、个人体会………………………………………………………………………………………9

3、七、附录(源程序)………………………………………………………………………………10第一部分:实现生产者与消费者问题一、题目:实现生产者与消费者问题-12-操作系统课程设计此问题是经典的进程同步互斥问题,问题描述参见教材第36页和第46页,要求编程实现,生产者放入产品的和消费者取走产品的速度可以调节。1、课程设计目的:在我们所学的《操作系统》这门课程中,关于经典进程的同步问题进行了一定的描述和探讨,介绍了几个经典的算法,需要我们在实践中学会熟练运用。在生产者与消费者问题中,需要我们了解进程同步的概念,理解信号量机制的原理,掌握运用信号量解决进程同步问题的方法,

4、进而学会运用进程的同步与互斥解决生产者与消费者的冲突问题。2、课程设计要求:生产者与消费者问题可以算作是经典进程同步问题的典型代表。该课程设计要求运用基于单缓冲区和多缓冲区的生产者与消费者问题的多种实现机制,其中利用了数据结构中的循环队列和堆栈来模拟实现是一种比较容易实现的方法。这种思想能够帮助我们更好的理解所学内容,并加以锻炼我们的动手实践能力,实现它内在具有的超强的参考价值和实践意义。该课程设计通过了解进程间的两种制约关系,从而理解信号量机制;通过对实例的分析和讨论,理解信号量机制实现进程的同步及互斥的方法;通过对经典进程同步问题的剖析,初步掌握运用信号

5、量解决进程同步问题的方法。二、设计内容在同一个进程地址空间内执行的两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。消费者线程从缓冲区中获得物品,然后释放缓冲区。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲区。当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻塞,直到新的物品被生产出来,我的具体做法也是如此,建立缓冲区,生产者生产的产品放入,消费者从中取产品,如果没有产品,则等待。三、开发环境此程序的设计在WindowsXP操作系统下,基于MicrosoftVisua

6、lC++6.00环境下的一个关于实现生产者与消费者问题的程序。用C语言实现编程。-12-操作系统课程设计四、分析设计1、设计原理进程同步是指几个进程相互合作,一个进程到达某个点后,除非另一个进程已经完成某些操作,否则就不得不停下来,等待这些操作的结束,这就是进程同步的概念。生产者-消费者问题是一个经典的进程同步问题,该问题最早由Dijkstra提出,用以演示他提出的信号量机制。本作业要求设计在同一个进程地址空间内执行的两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。消费者线程从缓冲区中获得物品,然后释放缓冲区。当生产者线程生产物

7、品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲区。当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻塞,直到新的物品被生产出来。生产者—消费者问题是一种同步问题的抽象描述。计算机系统中的每个进程都可以消费或生产某类资源,当系统中某一进程使用某一资源时,可以看作是消耗,且该进程称为消费者。而当某个进程释放资源时,则它就相当一个生产者。通过一个有界缓冲区把生产者和消费者联系起来。假定生产者和消费者是相互等效的,只要缓冲区未满,生产者就可以将产品送入缓冲区,类似地,只要缓冲区未空,消费者就可以从缓冲区中去走物品并消费它。

8、生产者和消费者的同步关系将禁止生产者向满的缓冲区输送

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。