作者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/cn.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