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