二、使用临界段的原则 有空让进:当无进程在临界段时,任何有权使用 临界段的进程可进入 无空等待:不允许两个以上的进程同时进入临界 段 多中择一:当无进程在临界段,而同时有多个进 程要求进入临界段,只能让其中之 进入临界段,其他进程须等待 有限等待:任何进入临界段的要求应在有限的时 间内得到满足 让权等待:处于等待状态的进程应放弃占用CPU, 以使其他进程有机会使用CPU
二、使用临界段的原则: 有空让进:当无进程在临界段时,任何有权使用 临界段的进程可进入 无空等待:不允许两个以上的进程同时进入临界 段 多中择一:当无进程在临界段,而同时有多个进 程要求进入临界段,只能让其中之一 进入临界段,其他进程须等待 有限等待:任何进入临界段的要求应在有限的时 间内得到满足 让权等待:处于等待状态的进程应放弃占用CPU, 以使其他进程有机会使用CPU
5.3互斥 进程互斥的解决方法: 1、互斥的软件方法 2、互斥的硬件方法
5.3 互斥 进程互斥的解决方法: 1、互斥的软件方法 2、互斥的硬件方法
硬件方法 允许在一个存储周期内测试和修改一个字的 内容,或者交换两个字的内容,指令的执行 不可中断。 TS指令 ·SWAP指令 开关中断指令
硬件方法 允许在一个存储周期内测试和修改一个字的 内容,或者交换两个字的内容,指令的执行 不可中断。 • TS指令 • SWAP指令 • 开关中断指令
硬件解法(1) “测试并设置”TS指令 function TS(var flag: while TS (lock)do O SKIp, boolean): boolean begin 临界段 TS:- flag lock f alse flag:= true end
硬件解法 (1) “测试并设置”TS指令 function TS (var flag: boolean):boolean begin TS:= flag; flag:= true; end; while TS(lock) do skip; 临界段 lock := false;
硬件解法(2 “交换”SWAP指令 procedure SWAP( var e true a, b: boolean) repeat begin SWAP(lock, key) temp until key= false; a: =b b: =temp, 临界区 end lock: = false
硬件解法 (2) “交换”SWAP指令 procedure SWAP ( var a,b:boolean) begin temp:=a; a := b; b: = temp; end key := true; repeat SWAP(lock,key); until key = false; 临界区 lock:=false;