ImageVerifierCode 换一换
格式:PPTX , 页数:45 ,大小:262.32KB ,
资源ID:8649362      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8649362.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(进程的同步与互斥.pptx)为本站上传会员【精***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

进程的同步与互斥.pptx

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,2020/4/23,1,2025/2/23 周日,第,3,章 进程管理,3.1,进程的引入,3.2,进程的结构,3.3,进程控制,3.4,进程的同步与互斥,3.5,进程间通信,3.6,进程调度,3.7,死锁,3.8,线程,2,2025/2/23 周日,两种制约关系,直接相互制约关系(同步),间接相互制约关系(互斥),产生的原因,进程合作,资源共享,3,2025/2/23 周日,进程的同步(,1,),直接相互制约关系(同步),指系统中一些进程需要相互合作,共同完成一项任务,这种协作进程之间相互等待对方消息或

2、信号的协调关系称为,进程同步,.,具体说,并发进程在一些关键点上可能需要互相等待与互通消息,进程间的相互联系是,有意识,的安排的。,产生的原因,进程合作,4,2025/2/23 周日,进程的同步(,2,),一般同步问题有两类,保证一组合作进程按逻辑需要的执行次序执行,【,例,】,司机,P1,售票员,P2,REPEAT REPEAT,启动 关门 正常运行 售票 到站停 开门,UNTIL FALSE UNTIL FALSE,保证共享缓冲区(共享数据)的合作进程的同步,【,例,】,输入,进程,PI,缓冲区,缓冲区,计算,进程,PC,打印,进程,PP,5,2025/2/23 周日,进程的互斥,是解决进

3、程间竞争关系,(,间接制约关系,),的手段。,间接相互制约关系(互斥),是指若干个进程同时竞争一个,需要互斥使用的资源,时,任何时刻最多允许一个进程去使用,其他要使用该资源的进程必须等待,直到该资源被释放。进程间要通过某种中介发生联系,是,无意识,安排的。,产生的原因,资源共享,互斥是一种特殊的同步,逐次使用互斥资源,也是对进程使用资源次序上的一种协调。,6,2025/2/23 周日,临界资源,临界资源,系统中某些资源,一次只允许一个进程使用,,称这样的资源为临界资源或互斥资源或共享变量。,硬件临界资源:打印机、磁带机,软件临界资源:只能排它使用的变量、表格、队列,7,2025/2/23 周日

4、临界资源实例,二人合作存款,count=100;,P,A,S1:N=count;,S2:N=N+100;,S3:count=N;,P,B,S4:M=count;,S5:M=M+200;,S6:count=M;,执行情况:,(,1,),P,A,P,B,P,B,P,A,count=400,(,2,),S1,P,B,S2,S3,count=200,(,3,),S4,P,A,S5,S6,count=300,因,count,是一个互斥性使用的变量,是一个临界资源,8,2025/2/23 周日,临界区,临界区(临界段),在进程中访问临界资源的那段代码区。,例子,9,2025/2/23 周日,具有临界资源

5、的进程结构,/*,进入区*,/,critical section;/*,临界区*,/,/*,退出区*,/,remainder section;/*,剩余区*,/,entry section,exit section,10,2025/2/23 周日,访问临界区应遵循的原则,空闲让进,当无进程在临界区时,任何有权使用临界区的进程可进入。,忙则等待,不允许两个以上的进程同时进入临界区。,有限等待,任何进入临界区的要求应在有限的时间内得到满足。,让权等待,不能进入临界区的进程应放弃占用,CPU,。,11,2025/2/23 周日,临界区互斥解决方法,硬件,缺点:成本高,软件,用编程解决,缺点:,(1)

6、忙等待,(2),实现过于复杂,需要高的编程技巧,信号量机制,12,2025/2/23 周日,信号量机制,一类资源,抽象成,S,(信号量),信号量,只能由,P,、,V,操作对其进行操作的变量。,信号量的使用应注意,必须置一次且只能置一次初值。,初值只能为非负整数,实现互斥时初值为,1,。,只能执行,P,、,V,操作。,13,2025/2/23 周日,P,、,V,操作,P(S),:表示申请一个资源。,V(S),:表示释放一个资源。,P,、,V,操作必须成对出现,有一个,P,操作就一定有一个,V,操作。,14,2025/2/23 周日,整型信号量,整型信号量,信号量,S,:整型量,除初始化外仅能通

7、过,P,、,V,操作访问,P,和,V,操作原语定义:,var S:integer;S=1;,P(S),:,while S 0 do no-op,S=S-1,;,V(S),:,S=S+1,;,一类资源,抽象成,S,(信号量),整型量,15,2025/2/23 周日,利用整型信号量实现进程互斥,P(S),V(S),P,1,P,2,互斥区,P(S),V(S),16,2025/2/23 周日,记录型信号量,记录型信号量,信号量,S,:记录型数据结构,一个分量为整型量,value,另一个分量为信号量队列,L,;,信号量的物理含义,当,S.value,0,:表示可用资源个数,当,S.value,0,:表示

8、可用资源正好用完,当,S.value0,:表示等待该类资源的进程数,一类资源,抽象成,S,(信号量),value,0,L=nil,信号量的值,(-2),信号量队列指针,17,2025/2/23 周日,struct semaphore,int value;,int*L;,void P(struct semaphore S);,S.value=S.value 1;/*,把信号量减去,1*/,if S.value 0 then block(S.L);,/*,若信号量小于,0,,则调用,P(S),的进 程被置成等待信号量,S,的状态*,/,物理意义:申请一个资源,如果申请成功,则返回;如果申请不成功,

9、则挂在该资源的等待队列上。,void V(struct semaphore S);,S.value=S.value+1;/*,把信号量加,1*/,if S.value 0:,表示有,S,.value,个资源可用,S,.value,=0:,表示无资源可用,S,.value,0:,则,|S,.value,|,表示等待队列中的进程个数,信号量的初值应该大于等于,0,20,2025/2/23 周日,P,、,V,操作讨论,(2),P(S),:表示申请一个资源,V(S),:表示释放一个资源。,P,、,V,操作必须成对出现,有一个,P,操作就一定有一个,V,操作,P,、,V,操作的优点,简单,而且表达能力强

10、可解决任何互斥问题,P,、,V,操作的缺点,不够安全,,P,、,V,操作使用不当会出现死锁,遇到复杂互斥问题时,实现复杂。,21,2025/2/23 周日,用,P,、,V,操作实现互斥,信号量初值为,1,对于两个并发进程,互斥信号量的值仅取,1,、,0,和,-1,三个值,:,若,mutex.value,1,表示没有进程进入临界区,若,mutex.value,0,表示有一个进程进入临界区,若,mutex.value,-1,表示一个进程进入临界区,另一个进程等待进入。,22,2025/2/23 周日,利用,P,、,V,操作实现两个进程互斥的模板如下,:,struct semaphore mute

11、x;,mutex.value=1;mutex.L=nil;,cobegin,Process P1,:Begin,M,P(mutex);,临界区,1,V(mutex);,M,End,Process P2,:Begin,M,P(mutex);,临界区,2,V(mutex);,M,End,coend,23,2025/2/23 周日,使用,PV,操作实现互斥应注意,识别临界资源,是否被共享,;,是否有排它性使用要求。,临界区代码应尽量短小,不能有死循环。,P,和,V,原语应分别紧靠临界区的头尾。,P,、,V,操作在同一进程中必须成对出现。,24,2025/2/23 周日,思考题,用记录型信号量解决二人

12、存款问题,用,类,C,语言编写进程互斥算法,。,25,2025/2/23 周日,用,P,、,V,操作实现,进程的同步,只要信号量初值是一个大于等于,0,的整数就能达到同步的目的,就可以直接使用,P,、,V,操作实现同步,互斥是一种特殊的同步,P,、,V,操作既可以实现互斥,也可以实现同步,利用信号量实现进程同步的实例,设有三个并发执行的进程,P1,、,P2,、,P3,,其前趋图如下,试用信号量实现这三个进程同步。,设两个同步信号量,S1,、,S2,分别表示进程,P2,、,P3,能否开始执行,struct semaphore S1,S2=0,0;/*,初值均为,0*/,cobegin,P1:,V

13、S1),;,V(S2),;,P2:,P(S1),;,;,P3:,P(S2),;,coend,P1,P3,P2,27,2025/2/23 周日,使用,PV,操作实现同步应注意,信号量的设置,信号量的初值,PV,操作要成对出现,并在不同的进程中,28,2025/2/23 周日,信号量及,P,、,V,操作讨论,(3),(1)P,、,V,操作必须成对出现,有一个,P,操作就一定有一,个,V,操作,(2),当为互斥操作时,它们同处于同一进程,当为同步操作时,则不在同一进程中出现,(3),如果,P(S1),和,P(S2),两个操作在一起,那么,P,操作的,顺序至关重要。,一个同步,P,操作与一个互斥,P

14、操作在一起时,同步,P,操作在互斥,P,操作前,而两个,V,操作无关紧要。,29,2025/2/23 周日,PV,操作实现互斥与同步的模板,进程互斥,S,初值为,1,P1,P2,P(S)P(S),临界区,1,临界区,2,V(S)V(S),在,P1,与,P2,中设置相同的,P,、,V,操作,进程同步,S1,初值为,n,,,S2,初值为,0,P1,P2,P(S1),P(S2),段,1,段,2,V(S2),V(S1),30,2025/2/23 周日,经典的进程同步问题,生产者,/,消费者问题,读者,/,写者问题,哲学家进餐问题,31,2025/2/23 周日,生产者,/,消费者问题,生产者消费者问

15、题是一种同步问题的抽象描述。计算机系统中的每个进程都可以消费(使用)或生产(释放)某类资源。这些资源可以是硬件资源,也可以是软件资源。,当某一进程使用某一资源时,可以看作是消费,称该进程为消费者。而当某一进程释放某一资源时,它就相当于生产者。,32,2025/2/23 周日,生产者,/,消费者问题,(,描述,),通过一个公用缓冲池可以把一群生产者,p1,p2,pm,,和一群消费者,Q1,Q2,Qn,联系起来。如图,:,只要缓冲区未满,生产者就可以把产品送入缓冲区,;,只要缓冲区未空,消费者就可以从缓冲区中取走物品。,33,2025/2/23 周日,生产者,/,消费者问题,(,图示,),34,2

16、025/2/23 周日,生产者,/,消费者问题,(,分析,),为解决生产者消费者问题,应该设两个同步信号量,一个说明空缓冲区的数目,用,empty,表示,初值为缓冲池的大小,N,,另一个说明已用缓冲区的数目,用,full,表示,初值为。,由于在此问题中有,i,个生产者和,j,个消费者,它们在执行生产活动和消费活动中要对缓冲池进行操作。由于缓冲池是一个临界资源,必须互斥使用,所以,另外还需要设置一个互斥信号量,mutex,,其初值为。,struct semaphone empty=n,full=0,mutex=1;,void buffern-1;,int in=,out=0;,35,2025/2

17、/23 周日,生产者,/,消费者问题,(,解决,),Consumerj:,while(1),P(full);,P(mutex);,从,Bufferout,取产品,;,out=(out+1)mod n;,V(mutex);,V(empty),;,消费产品,;,coend;,cobegin,procedurei:,while(1),生产产品,;,P(empty),;,P(mutex);,往,Buffer in,放产品,;,in=(in+1)mod n;,V(mutex);,V(full);,36,2025/2/23 周日,生产者,/,消费者问题,(,思考,),在生产者进程和消费者进程中,两个,P,

18、操作的执行顺序是否能交换?两个,V,操作的执行顺序是否能交换?,37,2025/2/23 周日,思考题,两个进程合作完成数据计算和打印工作,计算进程未计算完就不可打印,反之也然,双方共用一个缓冲区,写出此算法,。,38,2025/2/23 周日,读者,/,写者问题,有两组并发进程,:,读者和写者,共享一个数据文件,要求:,允许多个读者同时执行读操作,不允许读者、写者同时操作,不允许多个写者同时操作,39,2025/2/23 周日,读者,/,写者问题,如果读者来:,1,)无读者、写者,新读者可以读,2,)有写者等,但有其它读者正在读,则新读者也可以读,3,)有写者写,新读者等,如果写者来:,1,

19、无读者、写者,新写者可以写,2,)有读者,新写者等待,3,)有其它写者,新写者等待,40,2025/2/23 周日,读者写者问题的解法,为实现读者和写者、写者和写者之间的互斥,设置一个互斥信号量,Wmutex=1,由于“读,读”允许,再设置一个整型变量,Readcount,表示正在读的进程数,初值,Readcount=0,由于,Readcount,是一个可被多个读者进程访问的临界资源,所以要为它设置一个互斥信号量,Rmutex=1,读者,写者算法如下:,读者:,P(Rmutex),;,if readcount=0 then,P(Wmutex),;,Readcount=Readcount+1;

20、V(Rmutex),;,读,P(Rmutex),;,Readcount=Readcount-1;,if Readcount=0 then,V(Wmutex),;,V(Rmutex),;,写者:,P(Wmutex),;,写,V(Wmutex),;,41,2025/2/23 周日,哲学家就餐问题,有五个哲学家围坐在一圆桌旁,桌中央有一盘通心粉,每人面前有一只空盘子,每两人之间放一只筷子。,每个哲学家的行为是思考,感到饥饿,取筷子,然后吃通心粉,放筷子,思考。,为了吃通心粉,每个哲学家必须拿到两只筷子,并且每个人只能直接从自己的左边或右边去取筷子。,筷子是临界资源,要用,5,个互斥信号量来表示这,

21、5,只筷子。,42,2025/2/23 周日,哲学家就餐问题解,设,fork5,为,5,个信号量,初值均为,1,struct,semaphore,fork 4;,forki:=1;,Philosopheri,:,While(1),思考;,P(forki);,P(fork(i+1)mod 5),;,进食;,V(forki);,V(fork(i+1)mod 5),;,以上解法会出现死锁,为防止死锁发生可采,取的措施:,最多允许,4,个哲学家同时坐在桌子周围,给所有哲学家编号,奇数号的哲学家必须首,先拿左边的筷子,偶数号的哲学家则反,仅当一个哲学家左右两边的筷子都可用,时,才允许他拿筷子(,),43

22、2025/2/23 周日,思考题,桌子上有一只盘子,每次只能放入一只水果。爸爸专向盘中放苹果,妈妈专向盘中放桔子,一个儿子专等吃盘中的桔子,一个女儿专等吃盘中的苹果。请利用,P,、,V,操作写出父亲、母亲、儿子、女儿进程的同步算法。,44,2025/2/23 周日,思考题,分析:在本题中,应设置三个信号量,s,、,so,、,sa,,,信号量,s,表示盘子是否为空,其初值为,1,;,信号量,so,表示盘中是否有桔子,其初值为,0,;,信号量,sa,表示盘中是否有苹果,其初值为,0,。,同步描述如下:,45,2025/2/23 周日,struct semaphone s=1,so=0,sa=0;,cobegin,father();,mother();,son();,daughter();,coend,father(),p(s);,将水果放入盘中;,v(sa);,mother(),p(s);,将水果放入盘中;,v(so);,son(),p(so);,从盘中取出桔子;,v(s);,吃桔子;,daughter(),p(sa);,从盘中取出苹果;,v(s);,吃苹果;,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服