看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《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...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.34.142.218
qoojordon:謝謝回答 , 大致上有個寫法惹 QQ 02/14 09:00
b10007034: 推,好想法 01/15 15:23
tinhanho: 感謝 01/02 21:06