




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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:Booleaninside1 := false; /* P1不在其临界区内 */inside2 := false; /* P2不在其临界区内 */cobeginprocess P1 Beginwhile inside2 do begin end;inside1 := true;临界区;inside1 := false; end;process P2 beginwhile inside1 do begin end;inside2 =
3、true;临界区;inside2 := false; end;coendDekker算法(1) Dekker算法用一个指示器turn来指示应该哪一个进程进入临界区。var inside : array1.2 of boolean;turn :integer;turn := 1 or 2; inside1:=false;inside2:=false; cobegin process P1begin inside1:=true;while inside2 do if turn=2 then begin inside1:=false; while turn=2 do begin end; insid
4、e1:=true; end临界区;turn = 2; inside1:=false; end;Dekker算法(2) Peterson算法(1)var inside:array1.2 of boolean;turn:integer;turn := 1 or 2; inside1 := false;/* P1不在其临界区内 */inside2 := false;/* P2不在其临界区内 */Peterson算法(2)cobeginprocess P1 begininside1:= true;turn := 2;while (inside2 and turn=2) do begin end;临界区
5、;inside1 := false; end;Peterson算法(3)process P2 begininside2 := true;turn := 1;while (inside1 and turn=1) do begin end;临界区;inside2 := false; end;coend实现临界区管理的硬件设施 关中断 测试并建立指令 对换指令关中断实现互斥的最简单方法关中断方法的缺点测试并建立指令(1) TS指令的处理过程 TS(x): 若x=true,则x:=false; return true;否则 return false; TS指令管理临界区时,可把一个临区与一个布尔变量s相连,由于变量s代表了临界资源的状态,可把它看成一把锁。 对换指令(1) 对换(Swap)指令的功能是交换两个字的内容: Swap (a,b): temp:=a; a:=b; b:=temp;对换指令(2)lock : boolean;lock := false;process Pi /* i = 1,2,n */ pi : bo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论