- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 信号量的应用 2、用信号量的P、V操作实现同步 进程的同步是指相互合作的一组进程,各自以独立、不可预知的速度向前推进,在此过程中必须要协调步伐,才能更好完成同一项任务。为了解决这一问题,同样引入信号量,称为同步信号量。 我们可以用同步信号量来描述前驱后继关系。 P1 P2 P3 * semaphore S1=S2=0;//表示P1和P2都没做,还没给P3发消息 void P1( ) { …… V(S1); } void P2( ) { …… V(S2); } void P3( ) { P(S1); P(S2); …… } * 利用信号量实现前趋关系:这是一类同步问题,解法固定。 对同步问题,合作进程间需要收发几条消息相应就设置几个信号量,且同步信号量的初值一般为0,表示消息未产生。 初始结点对应的操作可直接执行,然后用V操作给其各个后继结点分别发一条“已完成前趋操作”的信息。 中间结点对应的操作:执行前用P接收前趋结点发来的信息,执行后用V操作给后继结点发一条已完成的信息。 终止结点:必须在该结点分别用P操作收到各个前趋的消息后才能执行。 * 信号量的应用 例:并发执行的进程P1和P2中,分别有代码段C1和C2,要求c1在C2开始前完成。 现在设置一个表示前驱的关系的信号量s12, 其初值为0。 C1 C2 semaphore s12= 0; //s12代表前驱关系 void P1( ) { while(1) { C1; V(s12); } } void P2( ) { while(1) { P(s12); C2; } } * 信号量的应用 2、利用信号量的P、V操作实现同步 说明: 同步信号量的初值一般为0。 同步信号量的P、V原语要成对出现,但是,它们分别出现在不同的进程代码中。 * 一条小河上有一座东西向独木桥,规定每次只允许一个人过桥。现河东和河西都有人在等待过桥,如果把每个过桥者看做一个进程,为保证安全,用信号量和P、V操作来管理。希望东边有人过桥后,西边也有个人过桥,两边轮流过。 semaphore s1= 1;//s1代表东边的人先过桥 semaphore s2= 0;//s2代表西边的人先让东边的人过桥 void e2w( ) { while(1) { P(s1); pass( ); V(s2); } } void w2e( ) { while(1) { P(s2); pass( ); V(s1); } } * 信号量的应用 例: 有A、B两进程,A进程从卡片机读信息入单缓冲区,B进程负责加工读进单缓冲区的信息。假设A进程只读一次信息,B进程只取一次信息。 分析: A进程,向单缓冲区写入信息 B进程,从单缓冲区读出信息 A、B两进程之间存在相互制约的关系。 单缓冲区buf A B * semaphore s=0; //s代表缓冲区中没数据,也就是A没有给B发消息,应让PA先放数据 void PA( ) { putdata( ); V(s); } void PB( ) { P(s); getdata( ); } * 信号量的应用 信号量及P、V操作讨论 1) 信号量的物理含义: S.value0表示有S.value个资源可用. S.value=0表示无资源可用. S.value0则| S.value |表示信号量S的等待队列中的进程个数. P(S):表示申请一个资源. V(S):表示释放一个资源. 信号量的初值应该大于等于0. 互斥信号量的初值一般是1。 同步信号量的初值一般为0. * 信号量的应用 2) P.V操作必须成对出现 (1)有一个P操作就一定有一个V操作 (2)当为互斥操作时,它们同处于同一进程. (3)当为同步操作时,则不在同一进程中出现. (4)如果P(s1)和p(s2)两个操作在一起,那么P操作的顺序至关重要:一个同步P操作与一个互斥P操作在一起时,同步P操作在互斥P操作前。 (5)两个V操作顺序无关紧要。 * 信号量的应用 讨论 对于两个并发进程共享一个程序段,而每次只允许一个进程进入该程序段,互斥信号量可能的取值: 互斥信号量的值仅取1、0和-1
您可能关注的文档
- (1.14)--操作系统第八周教学安排.doc
- (1.14.1)--11.1 Introduction, Buckling and材料力学材料力学.ppt
- (1.14.2)--11.2 Columns with Pinned Ends材料力学材料力学.ppt
- (1.14.3)--11.3 Columns with Other Support材料力学材料力学.ppt
- (1.14.4)--11.4 Columns with Eccentric Axia材料力学材料力学.ppt
- (1.14.5)--11.5 Elastic and Inelastic Colum材料力学材料力学.ppt
- (1.14.6)--11.6 Design Formulas for Columns材料力学材料力学.ppt
- (1.14.7)--11.7 Chapter Summary Review材料力学材料力学.ppt
- (1.15)--3.3产品形态中的形状要素——面.ppt
- (1.15)--操作系统第六周教学安排.doc
- 高中生物:光催化材料在生物降解领域的应用研究及教学策略教学研究课题报告.docx
- 基于云计算与边缘计算技术的智能英语写作教学平台设计教学研究课题报告.docx
- 智慧校园学习社区互动机制与学生学习习惯培养研究教学研究课题报告.docx
- 小学校园周边环境污染与儿童疾病预防研究教学研究课题报告.docx
- 高中生对AI在太空增强现实中的伦理现实交互课题报告教学研究课题报告.docx
- 高中地理教学中地理信息技术应用与可持续发展教育的课题报告教学研究课题报告.docx
- 初中英语写作中段落主题句的提炼与展开方法课题报告教学研究课题报告.docx
- 高中物理实验中电磁感应现象与无线充电技术应用的探索课题报告教学研究课题报告.docx
- 人工智能在学生个性化学习系统界面个性化学习路径规划中的应用教学研究课题报告.docx
- 智能研修专项课题:智能教学系统在特殊教育中的应用与效果分析教学研究课题报告.docx
原创力文档


文档评论(0)