ch3-3.2临界区管理_第1页
ch3-3.2临界区管理_第2页
ch3-3.2临界区管理_第3页
ch3-3.2临界区管理_第4页
ch3-3.2临界区管理_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

3 2临界区管理 3 2 1互斥与临界区3 2 2实现临界区管理的几种尝试3 2 3实现临界区管理的软件方法3 2 4实现临界区管理的硬件设施 3 2 1互斥与临界区 1 并发进程中与共享变量有关的程序段叫 临界区 CriticalSection 共享变量代表的资源叫 临界资源 CriticalResource 与同一变量有关的临界区分散在各进程的程序段中 而各进程的执行速度不可预知 如果保证进程在临界区执行时 不让另一个进程进入临界区 即各进程对共享变量的访问是互斥的 就不会造成与时间有关的错误 互斥与临界区 2 临界区的调度原则 一次至多允许一个进程进入临界区内一个进程不能无限地停留在临界区内一个进程不能无限地等待进入临界区即 有空让进 无空等待 择一而入 算法可行 临界区管理的尝试 1 inside1 inside2 Booleaninside1 false P1不在其临界区内 inside2 false P2不在其临界区内 cobeginprocessP1Beginwhileinside2dobeginend inside1 true 临界区 inside1 false end processP2beginwhileinside1dobeginend inside2 true 临界区 inside2 false end coend 临界区管理的尝试 2 inside1 inside2 boolean inside1 false P1不在其临界区内 inside2 false P2不在其临界区内 cobeginprocessP1begininside1 true whileinside2dobeginend 临界区 inside1 false end processP2begininside2 true whileinside1dobeginend 临界区 inside2 false end coend Dekker算法 1 Dekker算法用一个指示器turn来指示应该哪一个进程进入临界区 varinside array 1 2 ofboolean turn integer turn 1or2 inside 1 false inside 2 false cobeginprocessP1begininside 1 true whileinside 2 doifturn 2thenbegininside 1 false whileturn 2dobeginend inside 1 true end临界区 turn 2 inside 1 false end Dekker算法 2 Dekker算法 3 processP2begininside 2 true whileinside 1 doifturn 1thenbegininside 2 false whileturn 1dobeginend inside 2 true end临界区 turn 1 inside 2 false end coend Peterson算法 1 varinside array 1 2 ofboolean turn integer turn 1or2 inside 1 false P1不在其临界区内 inside 2 false P2不在其临界区内 Peterson算法 2 cobeginprocessP1begininside 1 true turn 2 while inside 2 andturn 2 dobeginend 临界区 inside 1 false end Peterson算法 3 processP2begininside 2 true turn 1 while inside 1 andturn 1 dobeginend 临界区 inside 2 false end coend 实现临界区管理的硬件设施 关中断测试并建立指令对换指令 关中断 实现互斥的最简单方法关中断方法的缺点 测试并建立指令 1 TS指令的处理过程TS x 若x true 则x false returntrue 否则returnfalse TS指令管理临界区时 可把一个临区与一个布尔变量s相连 由于变量s代表了临界资源的状态 可把它看成一把锁 测试并建立指令 2 s boolean s true processPi i 1 2 n pi boolean beginrepeatpi TS s untilpi 临界区 s true end 对换指令 1 对换 Swap 指令的功能是交换两个字的内容 Swap a b temp a a b b temp 对换指令 2 lock boolean l

温馨提示

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

评论

0/150

提交评论