当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

南京大学:《操作系统》课程教学资源(PPT课件)第三章(3.2)临界区管理

资源类别:文库,文档格式:PPT,文档页数:11,文件大小:79KB,团购合买
临界区管理 1.互斥与临界区 2.实现临界区管理的几种尝试 3.实现临界区管理的软件方法 4.实现临界区管理的硬件设施
点击下载完整版文档(PPT)

临界区管理 互尽与临界区 实现临界区管理的几种尝谜 实现临界区管理的软件方法 实现临界区管理的硬件设施

临界区管理 ⚫ 互斥与临界区 ⚫ 实现临界区管理的几种尝试 ⚫ 实现临界区管理的软件方法 ⚫ 实现临界区管理的硬件设施

互斥与临界区 ●并发进程中与共亨变量有关的程序段 ●对临界区的三个要求 ◇一次至多允许一个选程停留在临界区內 ◇一个进程不能无限地停留在临界区內 ◇一个进程不能无限地等待进入临界区 ●临界区的描迷 shared variable region variable do statement ●临界区的嵌使用 region x do .. region y do.... region y do[…. region x do[……]

互斥与临界区 ⚫并发进程中与共享变量有关的程序段 ⚫对临界区的三个要求 一次至多允许一个进程停留在临界区内 一个进程不能无限地停留在临界区内 一个进程不能无限地等待进入临界区 ⚫临界区的描述 shared variable region variable do statement ⚫临界区的嵌套使用 region x do [ … region y do [ … ] …] region y do [ … region x do [ … ] …]

临界区管理 inside inside: boolean inside false /*P1不在其临界区内*/ inside2:= false;/*P2不在其临界区内*/ process P1 process P2 egIn begin while inside do [ ]i while inside do []; inside 1 true i nsi de2= true 临界区 临界区; ins de1 false: ins ide2 false; en en

临界区管理 inside1,inside2:boolean; inside1 := false; /* P1 不在其临界区内 */ inside2 := false; /* P2 不在其临界区内 */ process P1 begin w h i l e i n s i d e 2 d o [ ]; inside1 := true; 临界区; inside1 := false; end; process P2 begin w h i l e i n s i d e 1 d o [ ]; inside2 = true; 临界区; inside2 := false; end;

临界区管理 ins idel inside: boolean inside:= false /*P1不在其临界区内*/ ins ide2: false /*P2不在其临界区内*/ process P1 process P2 begin beg ins ide1 true ins de2 true while inside do []; while inside do[ 1 临界区; 临界区; ins ide1 fa ai se nside2: false: end end

临界区管理 inside1,inside2:boolean; inside1 := false; /* P1 不在其临界区内 */ inside2 := false; /* P2 不在其临界区内 */ process P1 begin inside1 := true; w h i l e i n s i d e 2 d o [ ]; 临界区; inside1 := false; end; process P2 begin inside2 := true; w h i l e i n s i d e 1 d o [ ]; 临界区; inside2 := false; end;

Dekker算法 o var inside array [1..2 of Boolean; ●Turn: integer; ●turn 1 or 2 o inside [1]:=false o inside 2: =false;

Dekker算法 ⚫ var inside : array[1..2] of Boolean; ⚫ Turn :integer; ⚫ turn := 1 or 2; ⚫ inside[1]:=false; ⚫ inside[2]:=false;

● cobegin ● process P1 ● begin inside[]:=true while inside do if turn=2 then begin inside[l]: =false while turn=2 do begin end inside[1]:=true end 临界区; turn inside[1]:=false end

⚫ cobegin ⚫ process P1 ⚫ begin ⚫ inside[1]:=true; ⚫ while inside[2] do if turn=2 then ⚫ begin ⚫ inside[1]:=false; ⚫ while turn=2 do begin end; ⚫ inside[1]:=true; ⚫ end ⚫ 临界区; ⚫ turn = 2; ⚫ inside[1]:=false; ⚫ end;

● process P2 o begin inside[2]: =true while insidelll do if turn=1 then begin inside[2]: false; while turn=1 do begin end inside[2: =true en d 临界区; turn =1 inside[2]: false ●end; ● coend

⚫ process P2 ⚫ begin ⚫ inside[2]:=true; ⚫ while inside[1] do if turn=1 then ⚫ begin ⚫ inside[2]:=false; ⚫ while turn=1 do begin end; ⚫ inside[2]:=true; ⚫ end ⚫ 临界区; ⚫ turn = 1; ⚫ inside[2]:=false; ⚫ end; ⚫ coend

Peterson算法 ins idel, inside: boolean. turn: integer tur n nsi de1 : false /*P1不在其临界区内*/ inside:= false /*P2不在其临界区内*/ process P1 process P2 begin begin inside . true inside:= true turn 2 turn while(ins ide2 and turn=2) while (ins ide1 and turn=1) do begin end do begin end; 临界区; 临界区; inside false: inside false: end: end:

Peterson算法 inside1,inside2:boolean; turn:integer; turn := 1; inside1 := false; /* P1 不在其临界区内 */ inside2 := false; /* P2 不在其临界区内 */ process P1 begin inside1 := true; turn := 2; while (inside2 and turn=2) do begin end; 临界区; inside1 := false; end; p rocess P2 begin inside2 := true; turn := 1; while (inside1 and turn=1) do begin end; 临界区; inside2 := false; end;

实现临界区管理的硬件设施 0关中断 测试并建立指令TS(x) 若 x=true, AUx: =false; return true 否则 return false ●对换指令sWap(a,b) temp: =a; a: =b; b: temp

实现临界区管理的硬件设施 ⚫ 关中断 ⚫ 测试并建立指令TS(x): 若x=true, 则x:=false; return true; 否则return false; ⚫ 对换指令swap (a,b) temp:=a; a:=b; b:=temp;

则试并建立指令 s: boolean true: process Pi /*i=1 929···9 n米 pi: boolean begin repeat pi =TS (s)until pi 临界区; s true: end

测试并建立指令 s : boolean; s := true; process Pi /* i = 1,2,…,n */ pi : boolean; begin repeat pi := TS(s) until pi; 临界区; s := true; end;

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共11页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有