第三章同步通信与死锁.ppt

上传人:本田雅阁 文档编号:2580950 上传时间:2019-04-12 格式:PPT 页数:22 大小:259.01KB
返回 下载 相关 举报
第三章同步通信与死锁.ppt_第1页
第1页 / 共22页
第三章同步通信与死锁.ppt_第2页
第2页 / 共22页
第三章同步通信与死锁.ppt_第3页
第3页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第三章同步通信与死锁.ppt》由会员分享,可在线阅读,更多相关《第三章同步通信与死锁.ppt(22页珍藏版)》请在三一文库上搜索。

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

2、行的顺序性 程序环境的封闭性 程序执行结果的确定性 计算过程的可再现性,进程的并发性(1),进程执行的并发性:一组进程的执行在时间上是重叠的。 并发性举例:有两个进程A(a1、a2、a3)和B(b1、b2、b3)并发执行。 从宏观上看,并发性反映一个时间段中几个进程都在同一处理器上,处于运行还未运行结束状态。 从微观上看,任一时刻仅有一个进程在处理器上运行。,进程的并发性(2),进程的并发性(3),并发的实质是一个处理器在几个进程之间的多路复用,并发是对有限的物理资源强制行使多用户共享,消除计算机部件之间的互等现象,以提高系统资源利用率。,无关的并发进程,并发进程分类:无关的,交往的。 无关的

3、并发进程:一组并发进程分别在不同的变量集合上操作,一个进程的执行与其他并发进程的进展无关。 并发进程的无关性是进程的执行与时间无关的一个充分条件,又称为Bernstein条件。,Bernstein条件,R(pi)=a1,a2,an,程序pi在执行期间引用的变量集 W(pi)=b1,b2,bm,程序pi在执行期间改变的变量集 若两个程序的变量集交集之和为空集: R(p1)W(p2)R(p2)W(p1)W(p1)W(p2)= 则并发进程的执行与时间无关。,Bernstein条件举例,例如,有如下四条语句: S1: a := x + y S2: b := z + 1 S3: c := a b S4:

4、 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条件。其他语句并发执行可能会产生与时间有关的错误。,交往的并发进程,交往的并发进程:一组并发进程共享某些变量,一个进程的执行可能影响其他并发进程的结果。,并发程序设计的优点,对于单处理器系统,可让处理器和各I/O设备同时工作,发挥硬部件的并行能力。 对于多处理器系统,可让各进程在不同处理器上物理地并行,加快计算速度。 简化了程序设计任务。,采用并发程序设计的目的,充分发挥硬件的并

5、行性,提高系统效率。硬件能并行工作仅有了提高效率的可能性,硬部件并行性的实现需要软件技术去利用和发挥,这种软件技术就是并发程序设计。 并发程序设计是多道程序设计的基础,多道程序的实质就是把并发程序设计引入到系统中。,与时间有关的错误,对于一组交往的并发进程,执行的相对速度无法相互控制,各种与时间有关的错误就可能出现。 与时间有关错误的表现形式: 结果不唯一 永远等待,(结果不唯一)机票问题,/飞机票售票问题 void T1( ) void T2( ) 按旅客订票要求找到Aj; 按旅客订票要求找到Aj; int X1=Aj; int X2=Aj; if(X1=1) if(X2=1) X1-; X

6、2-; Aj=X1; Aj=X2; 输出一张票; 输出一张票; else else 输出信息“票已售完“; 输出信息“票已售完“; ,(永远等待)主存管理问题,申请和归还主存资源问题 int X=memory; /memory为初始主存容量 void borrow(int B) void return(int B) while(BX) X=X+B; 进程进入等待主存资源队列; 修改主存分配表; X=X-B ; 释放等主存资源进程; 修改主存分配表,进程获得主存资源; ,进程的交往:竞争与协作(1) 第一种是竞争关系,系统中的多个进程之间彼此无关 系统中的多个进程之间彼此相关 资源竞争的两个控制

7、问题: 一个是死锁(Deadlock)问题, 一个是饥饿(Starvation)问题,既要解决饥饿问题,又要解决死锁问题。,进程的交往:竞争与协作(2) 进程互斥(Mutual Exclusion),进程互斥是指若干个进程因相互争夺独占型资源时所产生的竞争制约关系。,进程的交往:竞争与协作(3)第二种是协作关系(1), 某些进程为完成同一任务需要分工协作。 进程同步指为完成共同任务的并发进程基于某个条件来协调它们的活动,因为需要在某些位置上排定执行的先后次序而等待、传递信号或消息所产生的协作制约关系。,进程的交往:竞争与协作(4)第二种是协作关系(2), 进程同步指两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于协作进程的消息或信号,当一个进程没有得到来自于协作进程的消息或信号时需等待,直到消息或信号到达才被唤醒。,进程的交往:竞争与协作(5),进程互斥关系是一种特殊的进程同步关系,即逐次使用互斥共享资源,是对进程使用资源次序上的一种协调。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1