Re: [理工] 102 清大 資工 計算機系統

作者: hackerick4 (窩顆顆)   2014-02-12 20:24:52
※ 引述《qoojordon (穎川琦)》之銘言:
: ※ 引述《justbearcry (糯米)》之銘言:
: : http://miupix.cc/pm-L3RFS6
: : http://miupix.cc/pm-EZN7YX
: : 這題是只要考慮程式碼是row major 或是column major嗎?
: : 有點不知道要怎麼著手...
: : 然後如果題目沒説在記憶體存放方式,一般是以row major為主對嗎?
: : http://miupix.cc/pm-RDD3WJ
: : http://miupix.cc/pm-CCITMH
: : 感覺可以有很多種順序
: : 我寫512364
: : 可是又超級不確定的
: : 麻煩大家了,謝謝
: 不好意思 , 我想補問下面那一題的前面三小題(6a,6b,6c) , 自己有想法 , 想和各位
: 板友確認交流
: 6a.
: 題目原本的code在 line1 P1會把 R1 卡住 , 當執行到 line4 時 , 因為
: R2沒其他人能signal , 所以導致 P1 被卡在 line4 , 因為P1 , P2互卡對方
: 的資源 , 因此產生deadlock
: 6b.
:   R1  我畫出來的圖像左圖
: ↙ ↖ R1→P1 是在P1(1)
: P1 P2 P1→R2 是在P1(4)
:   ↘ P2→R1 是在P2(1)
: R2
: 6c.
: 如上圖 ,確實會有deadlock , 但無法有一個好的解釋說明為什麼無法從上圖觀察
: 我自己認為 P2(3) 相當於是把 R2→P2 , 這樣就會形成cycle造成deadlock , 想問
: 是否這樣的想法有錯誤
: 6d.
: 若將程式碼中的第三行與第六行對調 , 就可以解決這個問題
: 但整個流程會變成每個 Resource是依序被拿走 , 不是同時被需要
: 大致上是這樣 , 想和大家討論看看 , 有錯誤麻煩指正 , 謝謝大家
題目就有提示 : synchronization barrier
這是一個同步的方法,快的process需要等待慢的process,等到所有的process都到
達檢查點之後才可以繼續
舉個例子來說,
就像是兩個人跑馬拉松,A跑得比B快
為了要讓兩個人不要一直拉開距離
就會在中間設很多屏障(檢查點)
A到的時候會被卡住等B
等到兩個人都到就能往前跑
如果檢查點越密集,那同步率越高
第三行就是一個檢查的點
http://imgur.com/WQcKgFc
所以這是故意用一個Pi(系統)
偷偷的綁住R2資源讓P1卡住,等到P2也到了,那才R2.signal()
Pi放開R2,讓整個能繼續跑
可以用這個概念想想 水H2O 要怎麼同步一個產出H的function和O的function......
作者: qoojordon (穎川琦)   2014-02-14 09:00:00
謝謝回答 , 大致上有個寫法惹 QQ

Links booklink

Contact Us: admin [ a t ] ucptt.com