[理工] OS concurrent

作者: yoz4ni (yoooooz)   2020-05-23 14:35:15
請問一下框起來的部分
https://i.imgur.com/uBIpV46.jpg
上面寫 execute concurrently
concurrent 不是是一段時間有多個 process 在執行嗎,那為什麼會有 share data 的問題
不是在切換 process 的時候會把狀態存起來,要執行時在放回去嗎?
謝謝
作者: zaqxsw2230 (qianling)   2020-05-23 14:58:00
我自己認為是PA執行完未將變數assign回去,然後PB使用到這個變數就會錯誤
作者: b0920075 (Void)   2020-05-23 17:40:00
multithread 可以對同個 shared data 操作阿,不然幹嘛要 lockthread 的情況下 switch 只會存 pc,regs,local variable,如果是共用的 shared data(global variable)之類的話又不會保存
作者: b10007034 (Warren)   2020-05-24 00:35:00
提醒樓上這邊的shared data是有一致性問題的Global variable 對多個process(像是fork出來的)來說是獨立的
作者: plsmaop (plsmaop)   2020-05-24 08:15:00
因為共享資源的存取與寫入不是原子操作
作者: b0920075 (Void)   2020-05-24 14:53:00
喔靠北我以為是multithread,沒看到問的是process切換就算是 multiprocess 共享一段記憶體空間好了,contextswitch 的時候 pcb 也不會保存記憶體裡面的內容吧(按到噓sorry
作者: joey11121 (KRjoyz)   2020-05-24 18:51:00
race condition去複習一下
作者: yoz4ni (yoooooz)   2020-05-25 00:24:00
context switch 時,share data 會被影響到,這樣對ㄇ
作者: kyuudonut (善良老百姓)   2020-06-05 19:14:00
不對,不同的 process 也不見得會 touch 同一份資料

Links booklink

Contact Us: admin [ a t ] ucptt.com