※ 引述《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