32临界区管理.ppt
《32临界区管理.ppt》由会员分享,可在线阅读,更多相关《32临界区管理.ppt(17页珍藏版)》请在三一文库上搜索。
1、3.2 临界区管理,3.2.1 互斥与临界区 3.2.2 实现临界区管理的几种尝试 3.2.3 实现临界区管理的软件方法 3.2.4 实现临界区管理的硬件设施,3.2.1互斥与临界区(1),并发进程中与共享变量有关的程序段叫“临界区”(Critical Section) , 共享变量代表的资源叫“临界资源”(Critical Resource)。 与同一变量有关的临界区分散在各进程的程序段中,而各进程的执行速度不可预知。 如果保证进程在临界区执行时,不让另一个进程进入临界区,即各进程对共享变量的访问是互斥的,就不会造成与时间有关的错误。,互斥与临界区(2),临界区的调度原则: 一次至多允许一个
2、进程进入临界区内 一个进程不能无限地停留在临界区内 一个进程不能无限地等待进入临界区 即-有空让进、无空等待、 择一而入、算法可行。,临界区管理的尝试 (1),inside1,inside2:Boolean inside1 := false; /* P1不在其临界区内 */ inside2 := false; /* P2不在其临界区内 */ cobegin process P1 Begin while inside2 do begin end; inside1 := true; 临界区; inside1 := false; end; process P2 begin while inside1
3、 do begin end; inside2 = true; 临界区; inside2 := false; end; coend,临界区管理的尝试 (2),inside1,inside2:boolean; inside1 := false; /* P1不在其临界区内 */ inside2 := false; /* P2不在其临界区内 */ cobegin process P1 begin inside1 := true; while inside2 do begin end; 临界区; inside1 := false; end; process P2 begin inside2 := tru
4、e; while inside1 do begin end; 临界区; inside2 := false; end; coend,Dekker算法(1),Dekker算法用一个指示器turn来指示应该哪一个进程进入临界区。 var inside : array12 of boolean; turn :integer; turn := 1 or 2; inside1:=false; inside2:=false;,cobegin process P1 begin inside1:=true; while inside2 do if turn=2 then begin inside1:=false
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 32 临界 管理
链接地址:https://www.31doc.com/p-2087998.html