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