正在加载图片...
O Mutual Exclusion: second attempt Process 1 Process 2 L:C1=1 L:C2=1 if c2=1 then if c1=1 then d cl=0; go to Ly &c2=0; go to Ly critical section> critical section> 1=0 C2=0 为避免死锁,我们让一进程等待时放弃 reservation(预订) Process 1 sets c1 to o 死锁显然是没有了,但有可能会发生活锁( relock)现象 C1=1,C2=1, Read c2, Read o1,C1=0,C2=0,C1=1,C2=1,C1=0,C2=0 ·可能还会出现某个进程始终无法进入临界区→ starvation 例如:C1=1,C2=1,C1=0, Read c1进入临界区,P1和P2竞争P2始终胜 出 2021/2/11 计算机体系结构Mutual Exclusion: second attempt 2021/2/11 计算机体系结构 23 • 为避免死锁,我们让一进程等待时放弃reservation(预订) – Process 1 sets c1 to 0. • 死锁显然是没有了,但有可能会发生 活锁(livelock) 现象 – C1 = 1, C2=1, Read C2, Read C1, C1 =0, C2 = 0, C1=1, C2=1, C1=0, C2=0 • 可能还会出现某个进程始终无法进入临界区  starvation – 例如: C1=1,C2= 1,C1=0,Read C1 进入临界区 , P1和P2竞争 P2始终胜 出 Process 1 ... L: c1=1; if c2=1 then { c1=0; go to L} < critical section> c1=0 Process 2 ... L: c2=1; if c1=1 then { c2=0; go to L} < critical section> c2=0
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有