网站大量收购闲置独家精品文档,联系QQ:2885784924

2.2进程同步案例.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.3 进程的同步 在多道程序系统中,由于资源共享或进程合作,使进程间形成间接相互制约和直接相互制约关系,这需要用进程互斥与同步机制来协调两种制约关系。 进程同步的主要任务是使并发执行的进程间有效的共享资源和相互合作, 进程的同步机制──信号量及P.V操作(解决进程同步互斥问题) 1.两种形式的制约关系 直接相互制约关系(同步) 间接相互制约关系(互斥) 共享变量 直接作用(相互合作): 进程间的相互联系是有意识的安排的,直接作用只发生在相交进程间 间接作用(资源共享): 进程间要通过某种中介发生联系,是无意识安排的,可发生在相交进程之间,也可发生在无关进程之间 “临界资源”(Critical Resource): 一段时间内只允许一个进程访问的资源 交往的并发进程 (结果不唯一)机票问题 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; 进程的交往: 第一种是竞争关系 系统中的多个进程之间彼此无关 系统中的多个进程之间彼此相关 进程互斥(Mutual Exclusion) 解决进程间竞争关系(间接制约关系)的手段。 进程互斥指若干进程要使用同一共享资源时,任何时刻最多允许一个进程使用,其他进程必须等待,直到占有资源的进程释放该资源。 第二种是协作关系(1) ?某些进程为完成同一任务需要分工协作。 ?进程的同步是解决进程间协作关系(直接制约关系)的手段。 ? 进程同步指两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于协作进程的消息或信号,当一个进程没有得到来自于协作进程的消息或信号时需等待,直到消息或信号到达才被唤醒。 进程互斥关系是一种特殊的进程同步关系,即逐次使用互斥共享资源,是对进程使用资源次序上的一种协调。 生产者--消费者问题表述 有界缓冲问题 有K个生产者和m个消费者,连接在一个有n个单位缓冲区的有界缓冲上。其中,producer和consumer都是并发进程,只要缓冲区未满,生产者p生产的产品就可投入缓冲区;只要缓冲区不空,消费者进程c就可从缓冲区取走并消耗产品。 生产者-消费者问题算法描述(1) var n,integer; type item=…; var buffer:array[0...n-1] of item; in,out:0,1,…n-1; counter:integer:0,1,…n; 生产者-消费者问题算法描述(2) Producer:repeat .   produce an item in nextp; .  while counter=n do no-op;   buffer[in]:=nextp;   in:=(in+1) mod n;   counter:=counter+1    until false; 生产者-消费者问题算法描述(3) Consumer:repeat   While counter=0 do no-op; nextc:=buffer[out]; out:=(out+1) mod n; counter:=counter-1; consume the item in nextc;    Until false 3.临界区 并发进程中访问临界资源的那段代码叫“临界区”(Critical Section) 交往的并发进程 (结果不唯一)机票问题 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; 基本概念: 进程互斥:指在多道程序环境下,每次只允许一个进程对临界资源进行访问。 进程同步:指多个相关进程在执行次序上的协调。 临界资源:一次仅供一个进程使用的资源。 在进程中涉及到临界资源的程序段叫临界区 多个进程的临界区称为相关临界区 3.临界区 临界区的调度原则: 一次至多允许一个进程进入临界区内 一个进程不能无限地停留在临界区内 一个进程不能无限地等待进入临界区 4.使用互斥区的原

文档评论(0)

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

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

1亿VIP精品文档

相关文档