[理工] 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