网站大量收购闲置独家精品文档,联系QQ:2885784924

进程并发与互斥.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

*consumer:begin单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简意赅地阐述您的观点。L2: P(full);单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简意赅地阐述您的观点。P(mutex);takeonefrombuffer;V(empty);单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简意赅地阐述您的观点。V(mutex);consumeproduct;gotoL2;end;coend;*采用信号量机制:full是“满”数目,初值为0,empty是“空”数目,初值为N。实际上,full和empty是同一个作用,始终有full+empty=Nmutex用于访问缓冲区时的互斥,初值是1每个进程中各个P操作的次序是重要的:先检查资源数目,再检查是否互斥——否则可能死锁(为什么?)*无论是生产者进程还是消费者进程,其中V操作的次序是无关紧要的,但P操作的次序不能颠倒。*读者-写者问题(thereaders-writersproblem)问题描述:对共享资源的读写操作,任一时刻“写者”最多只允许一个,而“读者”则允许多个“读-写”互斥,“写-写”互斥,“读-读”允许*采用信号量机制:mutex互斥信号量:实现读者与写者、写者与写者之间的互斥,初值是1。Rcount读者共享的变量:表示“正在读”的进程数,初值是0;Rmutex表示对Rcount的互斥操作,初值是1。P(Rmutex);if(Rcount==0)thenP(mutex);++Rcount;V(Rmutex);read;P(Rmutex);--Rcount;if(Rcount==0)thenV(mutex);V(Rmutex);ReaderP(mutex);write;V(mutex);Writer*哲学家用餐问题在该问题中设想有5位哲学家,他们共同坐在一张餐桌前用餐,用餐过后开始思考问题。他们的生活方式可描述为一个单调的循环:思考-饥饿-用餐-再思考-。已知餐桌上摆的是面条,每个人必须左右手各拿到一把叉子才可以开始进餐。而餐桌上只有5把叉子,任两个哲学家之间有一把,见图所示。*第i位哲学家的行为过程可描述为下面的形式。ProcessPhilosopher(i)BeginWhile(true)BeginThinking();P(mutex[i]); //请求左叉子P(mutex[i+1]mod5); //请求右叉子Eating(); //用餐过程V(mutex[i]); //释放左叉子V(mutex[i+1]mod5); //释放右叉子End;End;*1.AND型信号量集附:信号量集#2022*Swait(S1,S2,…,Sn) //P原语;{while(TRUE){if(S1=1S2=1…Sn=1){ //满足资源要求时的处理;for(i=1;i=n;++i)--Si; //注:与wait的处理不同,这里是在确信可满足//资源要求时,才进行减1操作;break;}else{ //某些资源不够时的处理;调用进程进入第一个小于1信号量的等待队列Sj.queue;阻塞调用进程;}}}*Ssignal(S1,S2,…,Sn){for(i=1;i=n;++i){++Si; //释放占用的资源;for(eachprocessPwaitinginSi.queue)//检查每种资源的等待队列的所有进程;{从等待队列Si.queue中取出进程P;if(判断进程P是否通过Swait中的测试)//注:

文档评论(0)

SYWL2019 + 关注
官方认证
内容提供者

权威、专业、丰富

认证主体四川尚阅网络信息科技有限公司
IP属地北京
统一社会信用代码/组织机构代码
91510100MA6716HC2Y

1亿VIP精品文档

相关文档