作者christianSK (AG)
看板Grad-ProbAsk
標題Re: [理工] [OS] - critical section problem
時間Sat Aug 21 15:11:27 2010
※ 引述《nypgand1 (祈附‧征前御祭)》之銘言:
: var flag: array[0..1] of Boolean; (initailly false)
: turn: 0..1; (initailly 1)
: The following program is for process Pi (i = 0 or 1),
: with Pj (j = 1 or 0) being the other process
: repeat
: flag[i]:=ture;
: while turn < > i
: do begin
: while flag[j] do no-op;
: turn:=i;
: end
: //critical section
: flag[i]:=false;
: //remainder section
: until fasle;
: 類似像這樣給code然後要求證明
: mutual exclusive、progress、bounded waiting
: 這三個的題目蠻多的 變化也很多
: 想問說這類的題目有沒有什麼解題技巧?
: 如果沒有的話 純解這題也可以
: 謝謝!!
我想提出一點我的看法 有錯請指正
# Mutual Exclusion
我想到一個case會不滿足
當Pi執行到 while flag[j] do no-op; 而Pj尚無進入CS之意願
而當Pi準備將turn設成i時 Pj有意願進入且直接進入CS (因為turn=j,不會被while卡住)
其後Pi又搶到CPU將turn設成i 也進入CS中
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.189.11
推 chris750630:其實後來吃飯時想想 我寫錯了 XDDD 08/21 15:23
→ christianSK:那是我對的嗎XD? 08/21 15:24
→ chris750630:然後我還回錯篇 sorry XDD 08/21 15:24
→ chris750630:讓我在想想 XDD 08/21 15:26
推 nypgand1:看起來是對的耶!! 那可以幫我看看另外兩個條件有無符合嗎 08/21 15:26
→ nypgand1:我還有幾個比較瑣碎的問題在上面上那篇 謝謝兩位XD 08/21 15:26
→ nypgand1:所以大家都是自己在腦中跑跑看嗎 還是有什麼技巧? 08/21 15:27
→ christianSK:我是一行一行看 看到了這行如果CPU被搶走會怎麼樣 08/21 15:28