1 / 27

CH3 并发进程

CH3 并发进程. 3.1 并发进程 3.2 临界区管理 3.3 信号量与 PV 操作 3.4 管程 3.5 进程通信 3.6 死锁 3.7 实例研究: Windows2000/XP 同步和通信机制 3.8 实例研究: Linux 信号量机制. 3.1 并发进程. 3.1.1 顺序程序设计 3.1.2 进程的并发性 3.1.3 与时间有关的错误 3.1.4 进程的交互( Interaction Among Processes ):协作和竞争. 进程的顺序性. 一个进程在顺序处理器上的执行是严格按序的 一个进程只有当一个操作结束后,才能开始后继操作.

Download Presentation

CH3 并发进程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CH3 并发进程 3.1并发进程 3.2临界区管理 3.3信号量与PV操作 3.4管程 3.5进程通信 3.6死锁 3.7实例研究:Windows2000/XP同步和通信机制 3.8实例研究:Linux信号量机制

  2. 3.1并发进程 3.1.1顺序程序设计 3.1.2进程的并发性 3.1.3与时间有关的错误 3.1.4进程的交互(Interaction Among Processes):协作和竞争

  3. 进程的顺序性 • 一个进程在顺序处理器上的执行是严格按序的 • 一个进程只有当一个操作结束后,才能开始后继操作

  4. 顺序程序设计(1) • 顺序程序设计是把一个程序设计成一个顺序执行的程序模块,顺序的含义不但指一个程序模块内部,也指两个程序模块之间。 • 顺序程序设计具有如下的特点: • 程序执行的顺序性 • 程序环境的封闭性 • 程序执行结果的确定性 • 计算过程的可再现性

  5. 78 130 150 228 280 300 378 430 450 时 间 输入机 处理器 处理器利用率:52/(78+52+20)≈35% 磁带机 顺序程序设计(3) 顺序程序设计的例 while(1) { input,process,output }

  6. 顺序程序设计(4)顺序程序设计的优缺点 • 顺序程序设计的顺序性、封闭性、确定性和再现性给程序的编制、调试带来很大方便,其缺点是计算机系统效率不高。

  7. 进程的并发性(1) • 进程执行的并发性:一组进程的执行在时间上是重叠的 • 并发的实质是一个处理器在几个进程之间的多路复用,并发是对有限的物理资源强制行使多用户共享,消除计算机部件之间的互等现象,以提高系统资源利用率。

  8. 进程的并发性(2) • 从宏观上看,并发性反映一个时间段中几个进程都在同一处理器上,处于运行还未运行结束状态, • 从微观上看,任一时刻仅有一个进程在处理器上运行。

  9. 无关的并发进程(1) • 并发进程分类:无关的,交往的。 • 无关的并发进程:一组并发进程分别在不同的变量集合上操作,一个进程的执行与其他并发进程的进展无关。 • 并发进程的无关性是进程的执行与时间无关的一个充分条件,又称为Bernstein条件。

  10. 无关的并发进程(2) 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)={ } 则并发进程的执行与时间无关。

  11. 无关的并发进程(3) 例如,有如下四条语句: S1: a := x + y S2: b := z + 1 S3: c := a – b S4: 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条件。其他语句并发执行可能会产生与时间有关的错误。

  12. 20 62 78 130 150 170 228 280 300 320 378 430 450 时 间 输入机 处理器 磁带机 磁带机 打印机 处理器利用率:(52+42)/(78+52+20)≈63% 无关的并发进程(4) 两个无关的进程并发执行的例

  13. 交往的并发进程(1) • 交往的并发进程:一组并发进程共享某些变量,一个进程的执行可能影响其他并发进程的结果。

  14. 78 130 150 384 208 228 286 306 364 时 间 输入机 处理器 磁带机 处理器利用率:(52 * n) /(78*n+52+20)= 67% 交往的并发进程(2) 并发程序设计的例子 while(1) { input,send } while(1) { receive,process,send } while(1) { receive,output }

  15. i p o 进程 t1 i1 p1 t2 i2 o1 p2 t3 i3 o2 p3 时间 o3 交往的并发进程(3)并行工作

  16. 交往的并发进程(4)并发程序设计 • 并发程序设计是:把一个程序设计成若干个可同时执行的程序模块的方法。 • 并发程序设计的特征: 并行性、 共享性、 制约性、 交互性。

  17. 交往的并发进程(5)并发程序设计的优点 •对于单处理器系统,可让处理器和各I/O设备同时工作,发挥硬部件的并行能力。 •对于多处理器系统,可让各进程在不同处理器上物理地并行,加快计算速度。 •简化了程序设计任务。

  18. 交往的并发进程(6)采用并发程序设计的目的 • 充分发挥硬件的并行性,提高系统效率。硬件能并行工作仅有了提高效率的可能性,硬部件并行性的实现需要软件技术去利用和发挥,这种软件技术就是并发程序设计。 • 并发程序设计是多道程序设计的基础,多道程序的实质就是把并发程序设计引入到系统中。

  19. 交往的并发进程(7)与时间有关的错误 • 对于一组交往的并发进程,执行的相对速度无法相互控制,各种与时间有关的错误就可能出现。 • 与时间有关错误的表现形式: • 结果不唯一 • 永远等待

  20. 交往的并发进程(8)(结果不唯一)机票问题 process Ti ( i = 1, 2 ) var Xi:integer; begin {按旅客定票要求找到Aj}; Xi := Aj; if Xi>=1 then begin Xi:=Xi-1; Aj:=Xi;{输出一张票};end else {输出票已售完}; end;

  21. 交往的并发进程(9)(永远等待)内存管理问题 procedure borrow (var B:integer) begin if B>x then {申请进程进入等待队列等主存资源} x:=x-B; {修改主存分配表,申请进程获得主存资源} end; procedure return (var B:integer) begin x:=x+B; {修改主存分配表} {释放等主存资源的进程} end;

  22. 进程的交往:竞争与协作(1)第一种是竞争关系 • 系统中的多个进程之间彼此无关 • 系统中的多个进程之间彼此相关

  23. 进程的交往:竞争与协作(2) 资源竞争的两个控制问题: 一个是死锁(Deadlock)问题, 一个是饥饿(Starvation) 问题,既要解决饥饿问题,又要解决死锁问题。

  24. 进程的交往:竞争与协作(3)进程互斥(Mutual Exclusion) • 是解决进程间竞争关系(间接制约关系)的手段。 • 进程互斥指若干进程要使用同一共享资源时,任何时刻最多允许一个进程使用,其他进程必须等待,直到占有资源的进程释放该资源。

  25. 进程的交往:竞争与协作(4)第二种是协作关系(1)进程的交往:竞争与协作(4)第二种是协作关系(1) •某些进程为完成同一任务需要分工协作。 •进程的同步是解决进程间协作关系(直接制约关系)的手段。

  26. 进程的交往:竞争与协作(5)第二种是协作关系(2)进程的交往:竞争与协作(5)第二种是协作关系(2) •进程同步指两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于协作进程的消息或信号,当一个进程没有得到来自于协作进程的消息或信号时需等待,直到消息或信号到达才被唤醒。

  27. 进程的交往:竞争与协作(6)第二种是协作关系(3)进程的交往:竞争与协作(6)第二种是协作关系(3) • 进程互斥关系是一种特殊的进程同步关系,即逐次使用互斥共享资源,是对进程使用资源次序上的一种协调。

More Related