第四章 进程通信.ppt

  1. 1、本文档共84页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 进程通信 本章主要介绍进程之间的通信,即进程之间信息的传递,分为低级通信和高级通信两部分,低级通信部分是本课程的重点和难点。 4.1 同步与互斥 一.进程同步 同步:指多个相互合作的进程,在一些关键点上,相互等待或交换信息,这种制约关系称为进程同步。 例: 4.1 同步与互斥 二、进程互斥 1.临界资源:一次仅允许一个进程使用的资源。 如:打印机 2.临界区:对临界资源互斥操作的程序段。 一个程序分为四个部分:进入区、临界区、退出区、剩余区 4.1 同步与互斥 注意:临界区只是针对某一临界资源而言的。 若程序段A和B是关于变量x的临界区, 程序段C和D是关于变量y的临界区, 则A与B,C与D要互斥执行 而A与C,B与D,A与D,B与C不需要互斥执行。 4.1 同步与互斥 3.临界区管理的原则 (1)空闲让进 (2)忙则等待 (3)有限等待 (4)让权等待 4.1 同步与互斥 三.同步与互斥的关系 (1)区别 互斥;联系松散,取用资源随机,有则用 同步:联系紧密,按序执行,有资源也不一定可用 (2)联系 都是进程之间的相互制约关系,互斥是特殊的同步,可将二者统称为进程同步。 4.1 同步与互斥 四、进程的两种制约关系 多道程序系统中,进程间存在两种制约关系: 1.直接制约关系 2.间接制约关系 4.2 互斥的实现方法 一、软件解决方法 1.锁技术 将临界区视为一个小房间,拿到临界资源后进入自己的小房间,并加上锁,使用完后打开锁,叫其他人拿走。 锁变量w,w=0,锁打开,资源可用; w=1,锁关闭,资源被占用; 4.2 互斥的实现方法 (1)锁技术实现互斥 Process 1 Process 2 …… …… While w0 do {nothing}; While w0 do {nothing} W:=1; W:=1; critical section; critical section; W:=0; W:=0; 4.2 互斥的实现方法 (2)存在问题 可能会两进程同时进入临界区访问 原因:加锁不及时 (3)改进的锁技术 用原语实现加锁和开锁 加锁原语:lock(w) 开锁原语:unlock(w) 4.2 互斥的实现方法 Lock(w) L: if (w=1) then goto L else w:=1; Unlock(w) w:=0; 4.2 互斥的实现方法 思考:用开锁和关锁原语实现互斥 4.2 互斥的实现方法 二、硬件解决方法 1.禁止中断(中断屏蔽的方法) Repeat 关中断 critical section 开中断 Remainder Until false 4.2 互斥的实现方法 2.硬件指令方法 (1)TS指令(TestSet) Function TS(var i:integer):boolean; Begin if i=0 then begin i:=1; TS:=true end; else TS:=false End; 4.2 互斥的实现方法 Program mutualexclusion Const n=… (* number of process*) Var bolt:integer; Procedure P(i:integer) Begin repeat repeat no_op until TS(bolt); critical section Bolt:=0; remainder Until false end 4.2 互斥的实现方法 Begin (*main program*) Bolt:=0; Cobegin p(1

文档评论(0)

awang118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档