进程之间的同步互斥与通信理发师问题操作系统课程设计说明书(含源程程序)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. 问题具体描述
1.完成 N 个生产者和 M 个消费者之间的并发控制,N、M 不低于 5,数据发送和接收缓冲区 大小不小于 10 个。 2.某个生产者进程生产的消息供 K 个消费者进程消费。K《=M。某些消费进程消费多个生 产者生产的消息。 生产者和消费者之间的对应关系可以在程序开始有一个文件中读入, 也可 以动态调整。 3.每个生产进程生产 M 个消息后结束运行。如果一个消费者进程没有对应的生产者进程在 运行后,也结束运行。
操作系统课程设计
信息科学与工程学院软件实践实训报告
目
录
1. 课程设计目的............................................................................................................. 3 2. 设计要求..................................................................................................................... 3 3. 问题具体描述............................................................................................................. 3 4. 设计分析..................................................................................................................... 3 5. 设计分工..................................................................................................................... 4 6. 数据结构说明............................................................................................................. 4 7. 系统结构说明............................................................................................................. 4 8. 系统调用说明............................................................................................................. 4 9. 分工设计说明............................................................................................................. 5 10. 算法流程图............................................................................................................... 5 11. 分工代码................................................................................................................... 6 12. 整体代码................................................................................................................... 7 13. 程序运行................................................................................................................. 10 14. 总结......................................................................................................................... 11
2
信息科学与工程学院软件实践实训报告
1. 课程设计目的
1.内容围绕操作系统原理中最重要的基本概念和基本原理展开 2.巩固对原理知识的学习效果 3.加深对基本概念的理解 4.学习如何将基本原理和实际设计、应用有机结合 5.锻炼本专业的基本能力
2. 设计要求
1: 进程间通信、并发(同步/互斥)、文件读写 2: 内存管理、Dll、Windows 消息机制、IO (尚未最终定型)
4. Hale Waihona Puke Baidu计分析
课程设计的主要目的是了解并且掌握进程之间的同步互斥, 和进程之间的通信问题。 结 合课本上的生产者与消费者问题可以从这方面来实现一个多进程的小系统, 并且解决多个进 程之间的通信, 并发等问题, 以此来达到课程设计的目的。 理发师问题是将顾客看做生产者, 将理发师作为消费者。 设置一定数量的椅子的数目来作为缓存区的大小。 顾客来到的时候坐 在椅子上,将自己作为“产品” ,理发师理发的时候从椅子上叫走顾客,相当于消费“产品” , 从而达到了课程设计要求的前一个要求。 顾客作为生产者,每到来一个就使计数器 count 增加 1,以便让理发师理发(相当于消 费)至最后一个顾客(相当于产品) 。并且,第 1 个到来的顾客应负责唤醒理发师;如果不 是第 1 个到达的顾客,则在有空椅子的情况下坐下等待,否则离开理发店(该消息可由计数 器 count 获得) 。主要有以下一些函数来实现整个问题的实现过程: (1)用随机函数 random()来产生进入理发店的顾客。 (2)定义理发师的理发函数 cuthair()用来实现理发操作。 (3)定义顾客被理发的函数 gethaircut()用来实现顾客被理发的操作。 (4)用顾客线程 customer 实现对顾客行为的控制。 (5)用理发师线程 barber 实现对理发师行为的控制。 (6)定义主函数 main 实现对两个线程的控制和执行操作。