操作系统教程(第4版),孙钟秀主编,高等教育出版社 第3章 同步、通信与死锁课件

操作系统教程(第4版),孙钟秀主编,高等教育出版社 第3章 同步、通信与死锁课件

ID:30400657

大小:562.51 KB

页数:196页

时间:2018-12-29

操作系统教程(第4版),孙钟秀主编,高等教育出版社   第3章 同步、通信与死锁课件_第1页
操作系统教程(第4版),孙钟秀主编,高等教育出版社   第3章 同步、通信与死锁课件_第2页
操作系统教程(第4版),孙钟秀主编,高等教育出版社   第3章 同步、通信与死锁课件_第3页
操作系统教程(第4版),孙钟秀主编,高等教育出版社   第3章 同步、通信与死锁课件_第4页
操作系统教程(第4版),孙钟秀主编,高等教育出版社   第3章 同步、通信与死锁课件_第5页
资源描述:

《操作系统教程(第4版),孙钟秀主编,高等教育出版社 第3章 同步、通信与死锁课件》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第3章同步、通信与死锁主要内容并发进程临界区管理信号量与PV操作管程进程通信死锁Linux同步机制和通信机制Windows2003同步机制和通信13.1并发进程3.1.1顺序程序设计3.1.2进程的并发性3.1.3进程的交互:协作和竞争23.1.1顺序程序设计进程的顺序性一个进程在顺序处理器上的执行是严格按序的,一个进程只有当一个操作结束后,才能开始后继操作。顺序程序设计是把一个程序设计成一个顺序执行的程序模块,顺序的含义不但指一个程序模块内部,也指两个程序模块之间。3顺序程序设计特点程序执行的顺序性

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

3、poo1i2p2o2i3p3o3t1t2t3时间并行工作i4t4i5P4t56并发的实质并发的实质是一个处理器在几个进程之间的多路复用,并发是对有限的物理资源强制行使多用户共享,消除计算机部件之间的互等现象,以提高系统资源利用率。72、并发进程的特性无关的并发进程一组并发进程分别在不同的变量集合上操作,一个进程的执行与其他并发进程的进展无关。并发进程的无关性是进程的执行与时间无关的一个充分条件,又称为Bernstein条件。交往的并发进程一组并发进程共享某些变量,一个进程的执行可能影响其他并发进程的结

4、果。8Bernstein条件R(pi)={a1,a2,…an},程序pi在执行期间引用的变量集W(pi)={b1,b2,…bm},程序pi在执行期间改变的变量集若两个程序的变量集交集之和为空集:R(p1)∩W(p2)∪R(p2)∩W(p1)∪W(p1)∩W(p2)={}则并发进程的执行与时间无关。9Bernstein条件举例例如,有如下四条语句: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)

5、={c};W(S1)={a},W(S2)={b},W(S3)={c},W(S4)={w}。S1和S2可并发执行,满足Bernstein条件。其他语句并发执行可能会产生与时间有关的错误。10并发程序设计的优点对于单处理器系统,可让处理器和各I/O设备同时工作,发挥硬部件的并行能力。对于多处理器系统,可让各进程在不同处理器上物理地并行,加快计算速度。简化了程序设计任务。11采用并发程序设计的目的充分发挥硬件的并行性,提高系统效率。硬件能并行工作仅有了提高效率的可能性,硬部件并行性的实现需要软件技术去利用和

6、发挥,这种软件技术就是并发程序设计。并发程序设计是多道程序设计的基础,多道程序的实质就是把并发程序设计引入到系统中。123、与时间有关的错误对于一组交往的并发进程,执行的相对速度无法相互控制,各种与时间有关的错误就可能出现。与时间有关错误的表现形式:结果不唯一永远等待13(结果不唯一)机票问题//飞机票售票问题voidT1(){voidT2(){{按旅客订票要求找到Aj};{按旅客订票要求找到Aj};intX1=Aj;intX2=Aj;if(X1>=1){if(X2>=1){X1--;X2--;Aj=

7、X1;Aj=X2;{输出一张票};{输出一张票};}}elseelse{输出信息"票已售完"};{输出信息"票已售完"};}}14T1、T2并发执行,可能出现如下交叉情况:T1:X1=Aj;//X1=mT2:X2=Aj;//X2=mT2:X2--;Aj=X2;{输出一张票};//Aj=m-1T1:X1--;Aj=X1;{输出一张票};//Aj=m-1同一张票卖给两位旅客15(永远等待)主存管理问题申请和归还主存资源问题intX=memory;//memory为初始主存容量voidborrow(intB

8、){voidreturn(intB){while(B>X)X=X+B;{进程进入等待主存资源队列};{修改主存分配表};X=X-B;{释放等主存资源进程};{修改主存分配表,进程获得主存资源};}}16若对borrow和return的并发执行不加限制将会导致错误,例如:Borrow:while(B>X);Return:X=X+B;{修改主存分配表};{释放等待主存资源的进程};此时,因为borrow还没有进入等待队列,因此,return的释放操作是空操作

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

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

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