请用PV操作解决读者和写者问题

上传人:折*** 文档编号:301772740 上传时间:2022-05-31 格式:DOCX 页数:3 大小:16.13KB
返回 下载 相关 举报
请用PV操作解决读者和写者问题_第1页
第1页 / 共3页
请用PV操作解决读者和写者问题_第2页
第2页 / 共3页
请用PV操作解决读者和写者问题_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《请用PV操作解决读者和写者问题》由会员分享,可在线阅读,更多相关《请用PV操作解决读者和写者问题(3页珍藏版)》请在金锄头文库上搜索。

1、本文格式为Word版,下载可任意编辑请用PV操作解决读者和写者问题 请用PV操作解决读者和写者问题。有两组并发进程:读者和写者,共享一个文件,要求:(1)允大量个读者同时执行读操作(2)在任意写者在完成写操作之前,不允许其他任意的读者和写者工作 3写者预工作,但在它之前已有读者在执行读操作,那么,待现有读者完成读操作后在执行写操作,新的读者和写者均被拒绝。Samapher matex=1/*对文件互斥*/ S1=1/*对Readcount互斥*/ Readcount=0读者记数器。 Reader: Writer: P(S1); P(mutex); Readcount+; Write a fil

2、e; V(S1); V(mutex); Read a file; P(S1); Readcount-; If(Readcount=0) V(mutex); V(S1); 设由n个缓冲区组成缓冲池,每个缓冲区可以存放一个消息,有两类进程:x个生产者和y 个消费者,且只要缓冲池未满,生产者便可以将消息送入缓冲池,而只要缓冲池未空,消费者就可以取走一个消息。各个进程对缓冲池举行互斥访问,用信号量实现协调过程。要求写出访用的信号量、初值及其作用,并写出世产者进程和消费者进程的处理流程(10分) 某寺庙共有老和尚和小和尚若干人,庙外有一口井,只能容一人打水,庙内有6只水桶和一口缸,缸内最多能装30桶水,

3、每只桶每次只能由一人使用,缸每次只能由一人使用。小和尚负责从庙外的井里打水,老和尚使用缸里的水,老和尚取水的单位是桶。请利用信号量和P、V操作描述老和尚和小和尚的活动。 semaphore empty=30; / 表示缸中目前还能装多少桶水,初始时能装30桶水 semaphore full=0; / 表示缸中有多少桶水,初始时缸中没有水 semaphore buckets=6; / 表示有多少只空桶可用,初始时有6只桶可用 semaphore mutex_well=1; / 用于实现对井的互斥操作 semaphore mutex_bigjar=1; / 用于实现对缸的互斥操作 semaphor

4、e mutex_buchet=1; / 用于实现对桶的互斥操作,防止多人同时拿同一只桶yongermonk() while(1)P(empty); P(buckets); P(mutex_bucket); get a bucket; V(mutex_bucket); go to the well; P(mutex_well); get water; V(mutex_well); go to the temple; P(mutex_bigjar); pure the water into the big jar; V(mutex_bigjar); V(buckets); V(full); oldmonk() while(1)P(full); P(buckets); P(mutex_bucket); get a bucket; V(mutex_bucket); P(mutex_bigjar); get water; V(mutex_bigjar); V(buckets); V(empty); 3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号