操作系统课程设计生产者消费者问题《操作系统》课 程 设 计 题 目:“生产者 - 消费者”问题 学 院:信 息 工 程 学 院 专 业:计算机科学与技术 班 级: 计科 1 3 02 姓 名: 施 胜 飞 指导老师: 徐 向 英 1 月 15 日目录一、课程设计目标………………………………………………………2二、 课题内容…………………………………………………………2 1.实验目的………………………………………………………2 2、实验环境………………………………………………………2 3、实验要求………………………………………………………2三、 设计思路…………………………………………………………3 1.信号量的设置……………………………………………………3 2.系统结构…………………………………………………………4 3.程序流程图………………………………………………………5 4.P V 操作代码……………………………………………………6四、 源代码……………………………………………………………7五、 运行与测试……………………………………………………10六、 心得体会………………………………………………………12一、 课程设计目标 学习 System V 的进程间通信机制,使用信号量和共享内存实现经典进程同步问题“生产者-消费者”问题。具体要求:1.创立信号量集,实现同步互斥信号量。2.创立共享内存,模拟存放产品的公共缓冲池。3.创立并发进程,实现进程对共享缓冲池的并发操作。二、 课题内容1.实验目的(1)掌握基本的同步互斥算法,理解生产者和消费者同步的问题模型。(2)了解 linux 中多线程的并发执行机制,线程间的同步和互斥。2、实验环境:C/C++语言编译器3、实验要求(1)创立生产者和消费者线程在 linux 环境下,创立一个控制台进程,在此进程中创立 n 个线程来模拟生产者或者消费者。这些线程的信息由本程序定义的“测试用例文件”中予以指定。(2)生产和消费的规则在根据上述要求创立线程进行相应的读写操作时,还需要符合以下要求:① 共享缓冲区存在空闲空间时,生产者即可使用共享缓冲区。② 从上边的测试数据文件例子能够看出,某一生产者生产一个产品后,可能不止一个消费者,或者一个消费者多次地请求消费该产品。此时,只有当所有的消费需求都被满足以后,该产品所在的共享缓冲区才能够被释放,并作为空闲空间允许新的生产者使用。③ 每个消费者线程的...