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

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

互斥与临界区 ●并发进程中与共亨变量有关的程序段 ●对临界区的三个要求 ◇一次至多允许一个选程停留在临界区內 ◇一个进程不能无限地停留在临界区內 ◇一个进程不能无限地等待进入临界区 ●临界区的描迷 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;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 南京大学:《操作系统》课程教学资源(PPT课件)第三章(3.1)管程.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第三章(3.5)进程通信.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第三章 死锁.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第二章 处理器管理.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第一章 操作系统概论.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)OS教学要求.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第二章(2.4)负载共享调度算法.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第二章(2.3)处理器调度.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第二章(2.2)非进程内核模型.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第二章(2.1)调试语句.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第一章(1.8)Umix的 Shell.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第一章(1.7)While(true).ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第一章(1.6)多道程序设计与操作系统的形成.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第一章(1.5)操作录.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第一章(1.4)算题过程.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第一章(1.3)硬件的复杂性.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第一章(1.2)资源.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第一章(1.13)分时操作系统特性.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第一章(1.12)微机操作系统的发展.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第一章(1.11)解决资源冲突的策略和技术.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第三章(3.3)并发进程概述.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第三章(3.4)信号量与PV操作.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第四章 存储管理.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第四章(4.5.3)分段式虚拟存储管理.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第四章(4.3)分页式存储管理.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第四章(4.5)虚拟存储管理.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第四章(4.4)页面replace.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第五章 设备管理.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第五章(5.4)缓冲技术.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第五章(5.2)I/o软件原理.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)UNIX操作系统的文件管理讲义.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第六章(6.6)实例研究:Linux.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第六章(6.7)实例研究:Windows 2000.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第六章 文件管理.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第六章(6.3-3)文件管理2.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第七章(7.8)实例研究UnixWare 2.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第七章(7.7)实例研究Windows2000.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第七章 操作系统安全性(7.1-7.3).ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第七章 操作系统安全性(7.4)内部访问授权.ppt
- 南京大学:《操作系统》课程教学资源(PPT课件)第八章(8.3)分布式计算.ppt