看板 Grad-ProbAsk 關於我們 聯絡資訊
請問一下框起來的部分 https://i.imgur.com/uBIpV46.jpg
上面寫 execute concurrently concurrent 不是是一段時間有多個 process 在執行嗎,那為什麼會有 share data 的問題 不是在切換 process 的時候會把狀態存起來,要執行時在放回去嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.125.221.109 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1590215717.A.442.html
zaqxsw2230: 我自己認為是PA執行完未將變數assign回去,然後PB使 05/23 14:58
zaqxsw2230: 用到這個變數就會錯誤 05/23 14:58
b0920075: multithread 可以對同個 shared data 操作阿,不然幹嘛 05/23 17:40
b0920075: 要 lock 05/23 17:40
b0920075: thread 的情況下 switch 只會存 pc,regs,local variabl 05/23 17:44
b0920075: e,如果是共用的 shared data 05/23 17:44
b0920075: (global variable)之類的話又不會保存 05/23 17:44
b10007034: 提醒樓上這邊的shared data是有一致性問題的 05/24 00:35
b10007034: Global variable 對多個process(像是fork出來的)來 05/24 00:36
b10007034: 說是獨立的 05/24 00:36
plsmaop: 因為共享資源的存取與寫入不是原子操作 05/24 08:15
b0920075: 喔靠北我以為是multithread,沒看到問的是process切換 05/24 14:53
b0920075: 就算是 multiprocess 共享一段記憶體空間好了,context 05/24 15:26
b0920075: switch 的時候 pcb 也不會保存記憶體 05/24 15:26
b0920075: 裡面的內容吧(按到噓sorry 05/24 15:28
joey11121: race condition去複習一下 05/24 18:51
yoz4ni: context switch 時,share data 會被影響到,這樣對ㄇ 05/25 00:24
kyuudonut: 不對,不同的 process 也不見得會 touch 同一份資料 06/05 19:14