作者ianwuzack (不求回报)
看板Grad-ProbAsk
标题Re: [理工] [OS]-临界区域
时间Tue Sep 29 23:54:24 2009
※ 引述《work76 (work)》之铭言:
: do {
: flag[i] = true;
: while (flag[j]);
: cs
: flag[i]=false;
: rs
: } (1);
: 知道这个程式结果会
: 一、满足互斥(为什麽,可以帮忙解释一下吗?)
要嘛两个都进不去(两个都想进去)
要嘛其中一个为true的进去(一个想进去一个不想进去)
要嘛两个都不想进去
所以不会两个都同时在CS内 所以满足互斥
: 二、process不满足
: 因为Pi和Pj都为真,都无法进入导致deadlock.
: 三、bounded waiting满足(为什麽,可以帮忙解释一下吗?)
如果i在CS内,而j在while等
则i离开CS後会将flag[i]设为false(此时j就可进入)
所以如果i离开CS後又再企图进入CS
必定无法在j之前进入
所以j至多等一次之後就可进入
所以满足bounded waiting
应该是酱吧@@?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 58.114.87.174