操作系统 进程同步与通信ppt课件.ppt

操作系统 进程同步与通信ppt课件.ppt

ID:59269156

大小:3.46 MB

页数:201页

时间:2020-09-22

操作系统 进程同步与通信ppt课件.ppt_第1页
操作系统 进程同步与通信ppt课件.ppt_第2页
操作系统 进程同步与通信ppt课件.ppt_第3页
操作系统 进程同步与通信ppt课件.ppt_第4页
操作系统 进程同步与通信ppt课件.ppt_第5页
资源描述:

《操作系统 进程同步与通信ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章进程同步与通信、 进程死锁一个程序内部常常存在并发成份,即存在着可并发执行的程序段或语句。例:read(a);从设备1上输入信息aread(b);从设备2上输入信息bc=a+b;计算cwrite(c);从设备上输出信息c并发成分与其它语句之间存在着相互制约的关系,为描述这些优先关系,定义一个描述工具:优先图。4.1并发执行实现S1S2S3S4例2:Parbeginread(a);read(b);Parendc:=a+b;write(c);4.1并发编程方法例1:ParbeginS1;S2;Parend;S3;S4;优先图并发语句S1S2S4S3S6S5S7例:利用并发语

2、句实现优先图BeginS1;ParbeginS3;BeginS2;S4;ParbeginS5;S6;Parend;End;Parend;S7;End第一种并发编程方法全手工:创建进程/线程fork,waitpthread_create、pthread_join第二种并发编程方法并发识别器:自动对任意语句Si定义两个操作:R(Si):Si执行时进行读操作的变量W(Si):Si执行时进行写操作的变量例如:R(read(a))=Φ;W(read(a))={a};R(c=a+b)={a,b};W(c=a+b)={c};下面的判断方法对不对?如何判断语句能否并发执行?相邻语句S1、S2

3、如果同时满足下列条件,则它们可以并发执行:1.R(S1)∩W(S2)=Φ2.W(S1)∩R(S2)=Φ3.W(S1)∩W(S2)=Φ第三种方法:Fork/Join原语forkS1S2joinS3S0S0;count:=2;forkL1;S1;gotoL2L1:S2;L2:joincount;S3;半自动:优先图(并发语句)→程序fork:join:将fork指令产生的并发成分进行合并S1S2S3S0fork指令将原来顺序执行的活动分为两个并发执行的活动。pid=fork();if(pid==0)gotoL1;设若干个并发活动需要在特定的位置上合并,为了合并,可以设想Join指

4、令完成以下动作:count=count-1;if(count!=0)exit();例1:read(a);read(b);c:=a+b;write(c);程序可改写为:count:=2;forkL1;read(a);gotoL2L1:read(b);L2:joincount;c:=a+b;write(c)S1;count1:=2;forkL1;S2;S4;count2:=2;forkL2;S5;gotoL3;L1:S3;L2:joincount1;S6;L3:joincount2;S7;S1S2S4S3S6S5S7例3:练习:分别用并发语句和Fork/Join实现优先图S1S2

5、S4S3S6S5与时间有关的错误问题(1)设某游乐场使用了一个计算机软件,其中用一个变量count表示在场的人数。当有人进入,则PIN进程完成count++,当有人离开,则POUT进程完成count--进程PINProcessPIN{intR1;R1=count;R1=R1+1;count=R1;}进程POUTProcessPOUT{intR2;R2=count;R2=R2-1;count=R2;}与时间有关的错误问题(1)两个进程的串行执行假设某一时刻count=nintR1;R1=count;R1=R1+1;count=R1;intR2;R2=count;R2=R2-1;

6、count=R2;正确结果count=n不变假设某一时刻count=nintR2;R2=count;R2=R2-1;count=R2;intR1;R1=count;R1=R1+1;count=R1;正确结果count=n不变与时间有关的错误问题(1)并发执行一种错误的可能结果:假设某一时刻count=nR1=count;count=nR1=R1+1;PIN进程被挂起R2=count;R2=R2-1;count=n-1count=R2;POUT进程结束,PIN唤醒count=R1;错误的结果值count=n+1,应该为n与时间有关的错误问题(1)并发执行另一种错误的可能结果:假

7、设某一时刻count=nR1=count;count=nR1=R1+1;PIN进程被挂起;R1=n+1R2=count;count=nR2=R2-1;POUT进程被挂起,PIN唤醒R2=n-1count=R1;PIN进程结束,POUT唤醒count=n+1count=R2;POUT进程结束,count=n-1错误的结果值count=n-1,应该为n与时间有关的错误问题(2)问题描述:设一个飞机航班售票系统有n个售票点,每个售票处通过终端访问系统公共数据区,假定公共数据区中的一些单元Aj(j=1,2,……

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。