第三章 进程管理之进程互斥与同步.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 进程管理之进程互斥与同步

3.5 进 程 互 斥 互斥的加锁实现: 当某个进程进入临界区后,它将锁上临界区,直到它退出时为止。并发进程在进入临界区时,先检测该临界区是否被锁。如果被锁,则只有开锁之后才有可能获得使用该临界区。 例:过独木桥。 进程互斥举例: 生产围棋的工人不小心把相等数量的黑子和白子混装载一个箱子里,现要用自动分拣系统把黑子和白子分开,该系统由两个并发执行的进程组成,功能如下:  (1)进程A专门拣黑子,进程B专门拣白子; (2)每个进程每次只拣一个子,当一个进程在拣子时不允许另一个进程去拣子; 练习: P、V原语实现 用P、V原语实现下图 PA PC PB * * 3.5.1 资源共享所引起的制约 进程的并发执行,不仅仅是用户程序的执行开始时间的随机性和提高资源利用率的结果,也是资源有限性导致资源的竞争与共享对进程的执行过程进行制约所造成的。 把不允许多个并发进程交叉执行的一段程序称为临界部分或临界区。 临界资源: 由不同并发进程共享的资源称为临界资源。 临界区: 或包含临界资源的最小代码段程序称为临界区。 或:一次仅允许一个进程使用的资源. 间接制约: 由于共享某一共有资源而引起的在临界区内不允许并发进程交叉执行的现象,称为由共享共有资源而造成的对并发进程执行速度的间接制约,简称间接制约。 进程间的关系: 1.无任何关系 2.间接制约关系 3.直接制约关系 **由 共享资源 引起。 互斥: 一组并发进程中的一个或多个程序段,因共享某一公有资源而导致他们必须以一个不允许交叉执行的单位执行。即不允许两个以上共享该资源的并发进程同时进入临界区称为互斥。 即:指多个进程不能同时使用同一个资源. 临界区管理: 即一组并发进程互斥执行时必须满足的准则: 1 不能假设各进程的相对速度。进程间是平等的。在临界区内任一指令结束后,任何一个进程都可以进入。 2 并发进程中的某个进程不在临界区时,它不阻止其他进程进入临界区。 3并发进程中的多个进程申请进入临界区时,只能允许一个进程进入。 4 申请进入临界区的进程,应该在有限时间内能够进入临界区。 设该临界区的类名为S,key[S]表示该锁定位于类名为S 的临界区。 key[S]=0 不可以进入 key[S]=1 可以进入 Lock(key[S]) 临界区 Unlock(key[S]) 加锁实现 Lock(x): local v repeat v x; until v=1 X 0 参考: 书P51 3.5.3信号量和P、V 原语: 1.信号量: 用于表示资源数目或请求使用某一资源的进程数. 信号量类别: 1.共有信号量 2.私有信号量 信号量sem是一整数,当sem大于等于零时,代表可以使用资源,当sem小于零时表示正在等待使用该临界区的进程数。 2. P、V原语: P:是荷兰语Passeren 相当于英语的Pass; V: 是荷兰语Verhoog 相当于英语的increment 1 sem减1; 2 若sem减1后仍大于等于零,则进程继续执行; 3 若sem减1后小于零,则该进程被阻塞插入到等待队列中,然后转入进程调度. P原语操作 : 1 Sem加1; 2 若加1后结果大于零,进程继续执行; 3 若结果小于等于零,则从该信号的等待队列中唤醒一个等待进程,然后继续原进程执行或转进程调度. V原语操作: ★一次P(S)操作,意味着进程请求分配一个该类资源 。 一次V(S)操作,意味着进程释放相应的一个资源 。 当信号量的值小于0时,表明有进程被阻塞,需要唤醒。 3.5.4用P V原语实现进程互斥 PA: PB: P(sem) P(sem) S S V(sem) V(sem) ****sem的取值为1,0,-1,为什么? 用信号量实现两并发进程PA PB 互斥的描述: 设sem为互斥信号量, 互斥实现描述 利用信号量及P、V操作实现进程的互斥 Pa: Pb: . . . . . . P(mutex) P(mutex) 分配打印机 释放打印机 (读写分配表)

文档评论(0)

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

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

1亿VIP精品文档

相关文档