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

第三章进程的同步及通信.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章进程的同步与通信 主要内容 进程同步(重点) 信号量机制(重点) 管程机制(自学) 经典的进程同步问题 (重点和难点) 进程通信 在多道程序系统中,由于资源共享或进程合作,使进程间形成间接相互制约和直接相互制约关系,这需要用进程互斥与同步机制来协调两种制约关系。 ★进程同步的主要任务是使并发执行的进程间进行有效的共享资源和相互合作, ★进程的同步机制──信号量及P.V操作(解决进程同步互斥问题) 3.1 进程同步的基本概念 进程间的相互制约关系(理解) 临界资源(掌握) 临界区(掌握) 硬件同步机制(了解) 1.进程间的相互制约关系 (1)间接相互制约关系 对于某些资源,必须保证互斥地访问,由此在多个进程间形成的。 (2)直接相互制约关系 多个进程相互合作完成同一任务,而形成的。 2.临界资源 是指在一段时间内,只允许一个进程访问的资源,或称独占资源。 3.临界区 在每个进程中访问临界资源的那段代码。 进入区:临界区前面增加一段用于进行上述检查的代码,用于检查并设置它为正被访问的标志; 。 退出区:临界区加上的一段代码,用于将临界区正被访问的标志恢复为未被访问的标志。 剩余区:进程中除进入区、临界区及退出区之外的其它部分的代码。 同步机制应遵循的规则 空闲让进 当无进程处于临界区时,允许一个请求进程进入。 忙则等待 当有进程处于临界区时,试图进入的进程必须等待。 有限等待 对要求访问临界资源的进程,保证有限时间内进入,避免“死等”。 让权等待 当进程不能进入自己的临界区时,应释放处理机,以免“忙等”。 4.硬件同步机制 目前许多计算机已提供了一些特殊的硬件指令,允许对一个字中的内容进行检测和修正,或者是对两个字的内容进行交换等。 在对临界区进行管理时,可以将标志看作为一个锁。 4.硬件同步机制 利用这些特殊的指令来解决临界区问题: 关中断 利用Test-and-set指令实现互斥 利用Swap指令实现进程互斥 (1)关中断 实现方法 在进入锁测试之前,关闭中断,直到完成锁测试并上锁之后,才能打开中断。 优点 进程在临界区执行期间,计算机不响应中断,不会引发调度,不会发生进程切换或线程切换 保证了对锁的测试和关锁操作的连续性和完整性,有效地保证了互斥。 (1)关中断 缺点 ①滥用关中断权力可能导致严重后果; ②关中断时间过长,会影响系统效率,限制了处理器交叉执行程序的能力; ③关中断方法也不适用于多CPU 系统,因为,在一个处理器上关中断,并不能防止进程在其它处理器上执行相同临界段代码。 (2)利用Test-and-set指令实现互斥 方法 借助一条硬件指令“测试并建立”指令TS(Test-and-Set),该指令看作为一条原语。 TS指令的一般性描述 fuction TS(var lock:boolean):boolean; begin TS:=lock; lock:=true; end 为每个临界资源设置一个布尔变量lock,lock初值为false,表示该临界资源空闲。 例:使用TS实现互斥的进程结构 repeat … while TS(lock) do skip; critical section; remainder section; until false (3)利用Swap指令实现进程互斥 含义 对换指令,在Intel 80x86又成为XCHG指令,用于交换两个字的内容。 处理过程描述 procedure Swap(var a,b:boolean) var temp:boolean; begin temp:= a; a:=b; b:= temp; end 互斥访问临界资源的方法 为每个临界资源设置一个全局的布尔变量lock,其初值为false , 在每个进程中再利用一个局部布尔变量key。 利用Swap指令实现进程互斥的循环进程repeat key:=true; repeat Swap( lock,key) until key=false; 临界区操作; lock:=false; … until false; 利用硬件指令的出现的问题 “忙等”,即进程在进入不了临界区时,不放弃处理器,而不断地进行测试。 结果 不符合“让权等待”,造成处理机浪费 解决方法 信号量机制 3.2 信号量机制 整型信号量和记录型信号量(掌握) AND型信号量和信号量集(理解) 管程机制(自学) 1.整型信号量 信号量的提出 196

文档评论(0)

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

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

1亿VIP精品文档

相关文档