- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实习二:并发控制
多生产者P-消费者C问题
2010年5月13 日星期四
题目说明(1)
实习要求
• 在Windows XP环境下,实现多生产者P-消
费者C 问题
• 对某一个生产者有需求的全部消费者C均访
问过某缓冲区后,该生产者和其它生产者才
可以向这个缓冲区存放产品
• 要求构造一个输入数据文本,运行后,显示
对应的输出结果
2010年5月13 日星期四
题目说明(2)
测试文本格式
• 测试文件包括n+1行
• 第一行为缓冲区数目,以下每行为一个记录,记录的字段
用空格分开
• 记录的第一个字段是线程序号,第二字段标记为C或P,第
三字段是表示生产/消费时间,对于C,之后的字段表示它使
用哪些生产者(以线程序号表示)的产品
• 示例:
• 5
1 p 3
2 p 4
3 c 4 1
4 p 2
5 c 2.1 1 2 4
2010年5月13 日星期四
思考题
1.了解Win32 API 中定义的IPC函数,说明比较说明涉及到的
几种同步对象。你猜测哪一种操作速度比较快,证实你
的想法,并给出一个合理的解释。实现本实习互斥的过
程中,哪个对象效率比较高?为什么?
2. 在该问题中存在哪些同步问题,哪些互斥问题?
3.缓冲区的大小对实验结果有何影响?如果缓冲区是无限大
的,那么输入、输出进程读、写缓冲区需要什么条件?
4.若使用进程间通信方式实现该问题,具体需要怎么做?
5.线程在实现同步的时候,主要有那些同步对象,这些同步
对象各有什么特点?
6.本实验出现的函数及其参数,名称与含义。
2010年5月13 日星期四
相关知识
Windows支持的三种内核同步对象
在Windows 中提供了互斥对象、信号量对象和
事件对象等三种同步对象和相应的系统调用 ,
用于进程和线程同步
这些同步对象都有一个用户指定的对象名称,
不同进程中用同样的对象名称来创建或打开对
象,从而获得该对象在本进程的句柄
2010年5月13 日星期四
相关知识
•互斥对象(Mutex)就是互斥信号量,在一个时刻
只能被一个线程使用
•它的相关API包括:CreateMutex、OpenMutex
和ReleaseMutex
– CreateMutex创建一个互斥对象,返回对象句柄
– OpenMutex打开并返回一个已存在的互斥对象句柄,
用于后续访问
– ReleaseMutex释放对互斥对象的占用,使之成为可用
2010年5月13 日星期四
相关知识
•信号量对象(Semaphore)就是资源信号量,取值
的取值在0到指定最大值之间,用于限制并发访
问的线程数
•它的相关API包括:CreateSemaphore、
OpenSemaphore和ReleaseSemaphore
– CreateSemaphore创建一个信号量对象,在输入参数
原创力文档


文档评论(0)