操作系统教程:并发进程_第1页
操作系统教程:并发进程_第2页
操作系统教程:并发进程_第3页
操作系统教程:并发进程_第4页
操作系统教程:并发进程_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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进程的交互(InteractionAmongProcesses):协作和竞争进程的顺序性一个进程在顺序处理器上的执行是严格按序的一个进程只有当一个操作结束后,才能开始后继操作顺序程序设计(1)顺序程序设计是把一个程序设计成一个顺序执行的程序模块,顺序的含义不但指一个程序模块内部,也指两个程序模块之间。顺序程序设计(2)顺序程序设计具有如下的特点:程序执行的顺序性程序环境的封闭性程序执行结果的确定性计算过程的可再现性顺序程序设计(3)

顺序程序设计的例

while(1){input,process,output}78输入机处理器磁带机130150228280300378430450时间处理器利用率:52/(78+52+20)≈35%

顺序程序设计(4)

顺序程序设计串行工作

i1p1o1i2p2o2...顺序程序设计(5)

顺序程序设计的优缺点顺序程序设计的顺序性、封闭性、确定性和再现性给程序的编制、调试带来很大方便,其缺点是计算机系统效率不高。进程的并发性(1)进程执行的并发性:一组进程的执行在时间上是重叠的并发性举例:例如:有两个进程A(a1、a2、a3)和B(b1、b2、b3)并发执行进程的并发性(2)从宏观上看,并发性反映一个时间段中几个进程都在同一处理器上,处于运行还未运行结束状态,从微观上看,任一时刻仅有一个进程在处理器上运行。进程的并发性(3)并发的实质是一个处理器在几个进程之间的多路复用,并发是对有限的物理资源强制行使多用户共享,消除计算机部件之间的互等现象,以提高系统资源利用率。无关的并发进程(1)并发进程分类:无关的,交往的。无关的并发进程:一组并发进程分别在不同的变量集合上操作,一个进程的执行与其他并发进程的进展无关。无关的并发进程(2)

并发进程的无关性是进程的执行与时间无关的一个充分条件,又称为Bernstein条件。

无关的并发进程(3)

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)={}

则并发进程的执行与时间无关。无关的并发进程(4)

例如,有如下四条语句:

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)

两个无关的进程并发执行的例处理器利用率:(52+42)/(78+52+20)≈63%78输入机处理器磁带机130150228280300378430450时间磁带机打印机2062170320交往的并发进程(1)交往的并发进程:一组并发进程共享某些变量,一个进程的执行可能影响其他并发进程的结果。交往的并发进程(2)

并发程序设计的例子

while(1){input,send}while(1){receive,process,send}while(1){receive,output}处理器利用率:(52*n)/(78*n+52+20)=67%78输入机处理器磁带机130150228306208286384364时间交往的并发进程(3)

并行工作

i1p1ipoo1i2p2o2i3p3o3t1t2t3进程时间交往的并发进程(4)

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

交往的并发进程(5)

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

交往的并发进程(6)

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

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

交往的并发进程(8)

(结果不唯一)机票问题processTi(i=1,2)

varXi:integer;begin {按旅客定票要求找到Aj};

Xi:=Aj; ifXi>=1thenbegin

Xi:=Xi-1;Aj:=Xi;{输出一张票};end else{输出票已售完};end;

交往的并发进程(9)

(永远等待)内存管理问题procedureborrow(varB:integer)beginifB>xthen{申请进程进入等待队列等主存资源}

x:=x-B;{修改主存分配表,申请进程获得主存资源}

end;procedurereturn(varB:integer)beginx:=x+B;{修改主存分配表}{释放等主存资源的进程}

end;进程的交往:竞争与协作(1)

并发进程之间的竞争关系进程的互斥并发进程之间的协作关系进程的同步

进程的交往:竞争与协作(2)

第一种是竞争关系

系统中的多个进程之间彼此无关系统中的多个进程之间彼此相关进程的交往:竞争与协作(3)

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

进程互斥(MutualExclusion)解决进程间竞争关系(间接制约关系)的手段。进程互斥指若干进程要使用同一共享资源时,任何时刻最多允许一个进程使用,其他进程必须等待,直到占有资源的进程释放该资源。进程的交往:竞争与协作(5)第二种是协作关系(1)•某些进程为完成同一任务需要分工协作。•进程的同步是解决进程间协作关系(直接制约关系)的手段。进程的交往:竞争与协作(6)第二种

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论