同步通信与死锁

同步通信与死锁

ID:27518277

大小:259.00 KB

页数:22页

时间:2018-12-01

同步通信与死锁_第1页
同步通信与死锁_第2页
同步通信与死锁_第3页
同步通信与死锁_第4页
同步通信与死锁_第5页
资源描述:

《同步通信与死锁》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章同步、通信与死锁2010年10月第三章并发进程3.1并发进程3.2临界区管理3.3信号量与PV操作3.4管程3.5进程通信3.6死锁3.7Linux同步机制和通信机制3.8Windows2003同步机制和通信机制3.1并发进程3.1.1顺序程序设计3.1.2进程的并发性3.1.3进程的交互:协作和竞争进程的顺序性一个进程在顺序处理器上的执行是严格按序的,一个进程只有当一个操作结束后,才能开始后继操作顺序程序设计是把一个程序设计成一个顺序执行的程序模块,顺序的含义不但指一个程序模块内部,也指两个程序模块之间

2、。顺序程序设计特点程序执行的顺序性程序环境的封闭性程序执行结果的确定性计算过程的可再现性进程的并发性(1)进程执行的并发性:一组进程的执行在时间上是重叠的。并发性举例:有两个进程A(a1、a2、a3)和B(b1、b2、b3)并发执行。从宏观上看,并发性反映一个时间段中几个进程都在同一处理器上,处于运行还未运行结束状态。从微观上看,任一时刻仅有一个进程在处理器上运行。进程的并发性(2)进程i1p1ipoo1i2p2o2i3p3o3t1t2t3时间并行工作i4t4i5P4进程的并发性(3)并发的实质是一个处理器在几

3、个进程之间的多路复用,并发是对有限的物理资源强制行使多用户共享,消除计算机部件之间的互等现象,以提高系统资源利用率。无关的并发进程并发进程分类:无关的,交往的。无关的并发进程:一组并发进程分别在不同的变量集合上操作,一个进程的执行与其他并发进程的进展无关。并发进程的无关性是进程的执行与时间无关的一个充分条件,又称为Bernstein条件。Bernstein条件R(pi)={a1,a2,…an},程序pi在执行期间引用的变量集W(pi)={b1,b2,…bm},程序pi在执行期间改变的变量集若两个程序的变量集交集

4、之和为空集:R(p1)∩W(p2)∪R(p2)∩W(p1)∪W(p1)∩W(p2)={}则并发进程的执行与时间无关。Bernstein条件举例例如,有如下四条语句:S1:a:=x+yS2:b:=z+1S3:c:=a–bS4:w:=c+1于是有:R(S1)={x,y},R(S2)={z},R(S3)={a,b},R(S4)={c};W(S1)={a},W(S2)={b},W(S3)={c},W(S4)={w}。S1和S2可并发执行,满足Bernstein条件。其他语句并发执行可能会产生与时间有关的错误。交往的并发

5、进程交往的并发进程:一组并发进程共享某些变量,一个进程的执行可能影响其他并发进程的结果。并发程序设计的优点•对于单处理器系统,可让处理器和各I/O设备同时工作,发挥硬部件的并行能力。•对于多处理器系统,可让各进程在不同处理器上物理地并行,加快计算速度。•简化了程序设计任务。采用并发程序设计的目的充分发挥硬件的并行性,提高系统效率。硬件能并行工作仅有了提高效率的可能性,硬部件并行性的实现需要软件技术去利用和发挥,这种软件技术就是并发程序设计。并发程序设计是多道程序设计的基础,多道程序的实质就是把并发程序设计引入到

6、系统中。与时间有关的错误对于一组交往的并发进程,执行的相对速度无法相互控制,各种与时间有关的错误就可能出现。与时间有关错误的表现形式:结果不唯一永远等待(结果不唯一)机票问题//飞机票售票问题voidT1(){voidT2(){{按旅客订票要求找到Aj};{按旅客订票要求找到Aj};intX1=Aj;intX2=Aj;if(X1>=1){if(X2>=1){X1--;X2--;Aj=X1;Aj=X2;{输出一张票};{输出一张票};}}elseelse{输出信息"票已售完"};{输出信息"票已售完"};}}(永

7、远等待)主存管理问题申请和归还主存资源问题intX=memory;//memory为初始主存容量voidborrow(intB){voidreturn(intB){while(B>X)X=X+B;{进程进入等待主存资源队列};{修改主存分配表};X=X-B;{释放等主存资源进程};{修改主存分配表,进程获得主存资源};}}进程的交往:竞争与协作(1)第一种是竞争关系系统中的多个进程之间彼此无关系统中的多个进程之间彼此相关资源竞争的两个控制问题:一个是死锁(Deadlock)问题,一个是饥饿(Starvation

8、)问题,既要解决饥饿问题,又要解决死锁问题。进程的交往:竞争与协作(2)进程互斥(MutualExclusion)进程互斥是指若干个进程因相互争夺独占型资源时所产生的竞争制约关系。进程的交往:竞争与协作(3)第二种是协作关系(1)•某些进程为完成同一任务需要分工协作。•进程同步指为完成共同任务的并发进程基于某个条件来协调它们的活动,因为需要在某些位置上排定执行的先后次序而等待、传递信号

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

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

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