- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
习题课(一)PV操作应用
习题课(一) PV操作的应用 PV原语的含义 P:passeren pass V:verhoog increment P操作和V操作是不可中断的程序段,称为原语。 PV操作对于每一个进程来说,都只能进行一次,而且必须成对使用。在PV原语执行期间不允许有中断的发生。 PV原语的含义 信号量S是一整数 P(S)原语操作的动作是: (1)S减1; (2)若S减1后仍大于或等于零,则进程继续执行; (3)若S减1后小于零,则该进程被阻塞后进入与该 信号相对应的队列中,然后转进程调度。 V(S)原语操作的动作是: (1)S加1; (2)若相加结果大于零,则进程继续执行; (3)若相加结果小于或等于零,则从该信号的等待 队列中唤醒一等待进程,然后再返回原进程继续执 行或转进程调度。 用PV操作实现进程的互斥与同步 解决此类问题的一般方式: 根据问题给出的条件,确定进程有几个或几类; 确定进程间的制约关系——是互斥,还是同步; 各相关进程间通过什么信号量实现彼此的制约,标明信号量的含义和初值; 用PV操作写出相应的代码段 验证代码的正确性:设以不同的次序运行各进程,是否能保证问题的圆满解决,切忌按固定顺序执行各进程。 苹果桔子问题 桌上有一只盘子,每次只能放入一只水果;爸爸专 向盘子中放苹果(apple),妈妈专向盘子中放桔子 (orange),一个儿子专等吃盘子中的桔子,一个女 儿专等吃盘子里的苹果。请用P、V操作实现爸爸、 妈妈、儿子、女儿四个并发进程的同步与互斥。 苹果桔子问题 解: sp:semaphore; /* 盘子里可以放几个水果 */ sg1:semaphore; /* 盘子里有桔子 */ sg2:semaphore; /* 盘子里有苹果 */ sp := 1; /* 盘子里允许放一个水果*/ Sg1:= 0; /* 盘子里没有桔子 */ sg2 := 0; /* 盘子里没有苹果*/ cobegin 苹果桔子问题 process father begin L1:削一个苹果; 盘子为空吗? 把苹果放入plate; 女儿可以拿苹果; goto L1; end; process daughter begin L4: 盘子里有苹果吗? 从plate中取苹果; 盘子又为空; 吃苹果; goto L4; end; 苹果桔子问题 process mother begin L2:剥一个桔子; 盘子为空吗? 把桔子放入plate; 儿子可以拿桔子; goto L2; end; process son begin L3: 盘子里有桔子吗? 从plate中取桔子; 盘子又为空; 吃桔子; goto L3; end; 苹果桔子问题: process father begin L1:削一个苹果; P(sp); 把苹果放入plate; V(sg2); goto L1; end; process mother begin L2:剥一个桔子; P(sp); 把桔子放入plate; V(sg1); goto L2; end; 苹果桔子问题: process son begin L3: P(sg1); 从plate中取桔子; V(sp); 吃桔子; goto L3; end; process daughter begin L4: P(sg2); 从plate中取苹果; V(sp); 吃苹果; goto L4; end; 缓冲问题(一) 有三个并发进程R,M和P,它们共享一个缓冲区B。 进程R负责从输入设备读入一条记录,每读一条记 录后把它存放在缓冲区B中;进程M在缓冲区B中加 工进程R存入的记录;进程P把加工后的记录打印输 出。缓冲区B每次只能存放一条记录,当记录被加 工输出后,缓冲区B中才可存放另一条新记录。请 用P,V操作作为同步机制来描述它们并发执行时能正 确工作的程序。 缓冲问题(一) 解: begin R,M,P:semaphore; R:=1;M:=P:=0; cobegin 缓冲问题 进程R L1: 从输入设备中读取一条记录; P(R); 将读入记录存入缓冲区; V(M); goto L1 进程M L2: P(M); 对缓冲区中的数据信息进行加工,并将其存入缓冲区中;
您可能关注的文档
- 中考常用应用文写作格式与范文示例.doc
- 中考复习现代文阅读主观题类型与答题策略-pykly.ppt
- 中考物理容易被理解错误知识点.doc
- 中考文言文学习——曹刿论战(问题以与答案).ppt
- 中考英语选择填空题与答案精编200题.doc
- 中考复习专题二生物圈中绿色植物精品 人教新课标版.ppt
- 中考考标必背古诗34首原文翻译与解析.doc
- 中考物理信息和图表类型题解题思路.ppt
- 中考语文诗词鉴赏12大题型与解题攻略.doc
- 中职人才培养方案研制依据.ppt
- 军贸行业跟踪报告:军贸市场景气上行,装备出口增长可期(201903).pdf
- 计算机行业产业互联网专题_工业篇9:CAD,研究框架(202206).pdf
- 密集政策下医疗器械行业如何破局(202208).pdf
- 分辙两向-2022年全球经济秩序报告(202210).pdf
- 类脑计算 神经形态计算深度产业报告.pdf
- 基金研究:“大品种”布局加速下,疫苗行业投资价值几何?(202211).pdf
- 供需缺口孕育民营医疗大机遇,细分赛道模式各异(202211).pdf
- 化工行业2022Q4投资策略:看多原油,关注欧洲,布局民爆(202210).pdf
- 经管-奇瑞集团公司税务管理操作手册【上(共两册)】.pdf
- 金融科技行业白皮书1.0-FACEBOOK&branch(2021).pdf
文档评论(0)