[理工] OS fork请教

楼主: etesia329 (Etesia)   2017-12-09 23:08:09
https://i.imgur.com/0JQtcoA.jpg
想请问31题的第二小题(正确答案选B)
为什么算出来是3,小a 不是全域变量吗?
谢谢!
作者: bighb69738 (Vic)   2017-12-09 23:31:00
如果你的a 宣告在 fork 之前 fork 会有 a这个变量吗?fork 的生命周期应该在 fork的那一段开始才跟父有关联若这样 a++ 只在main 中执行3次
作者: TMDTMD2487 (ㄚ冰)   2017-12-10 00:15:00
这不是thread 而是fork 用出来的就是一个process的copy不管你local还global他都是一个个独立的process
作者: bighb69738 (Vic)   2017-12-10 00:17:00
你的那张图 跟 原题 不一样 你的print 在那个if 条件式里
作者: TMDTMD2487 (ㄚ冰)   2017-12-10 00:20:00
value是是父的global 而fork出来的是另一个process也有value也是global但他是child process的global如果你是if这部分不懂 你可以参考这个 #1Q1MWncd (Grad-ProbAsk)#1Q1MWncd (Grad-ProbAsk)我是很直觉的觉得你把create thread跟fork搞混了@@
作者: alan23273850   2017-12-10 11:23:00
关键字:copy on write (COW)

Links booklink

Contact Us: admin [ a t ] ucptt.com