→ harryooooooo: 不同process各自看到的記憶體狀態是各自獨立的,這 01/23 13:01
→ harryooooooo: 叫virtual memory 01/23 13:01
→ b10007034: 那請問H大,C code看到的pointer都是看到 01/23 13:13
→ b10007034: virtual address嗎? 01/23 13:14
→ b10007034: OS處理掉COW的底層運作,我連addr都沒辦法看到不一致 01/23 13:15
→ b10007034: 對嗎? 雖然實際上透過MMU分配的physical addr不一樣 01/23 13:17
→ harryooooooo: 我覺得OS也沒理由讓你觀察到address不一致吧,一是 01/23 13:54
→ harryooooooo: 你看到的addr本來就是假的,二是對OS而言fork的時候 01/23 13:54
→ harryooooooo: page table entry之類的東西當然是能不用改就不要改 01/23 13:54
→ harryooooooo: 比較方便。不過addr突然被改的話process大概也沒辦 01/23 13:54
→ harryooooooo: 法跑了就是。 01/23 13:54
→ harryooooooo: 看到的是不是virtual address跟程式語言無關 是跟你 01/23 13:57
→ harryooooooo: 的OS和硬體有關 首先硬體要支援 然後OS也要開 01/23 13:57
→ b10007034: 大概了解了,謝謝h大 01/23 15:22
→ school4303: 看起來是考研的題目XD 01/23 20:50
→ school4303: 我記得這種題目不會完全是C code 很多時候只是方便出 01/23 20:52
→ school4303: 題才寫成這樣 真的跑code跟答案會不一樣 01/23 20:52
→ b10007034: 嗯,謝謝你的意見 01/23 21:03
→ b10007034: 我看題目的程式碼完整到可以直接編譯執行就手癢弄了一 01/23 21:03
→ b10007034: 下 01/23 21:03
推 mmmmei: 你的parent先sleep(5) 怎麼是parent先print? 01/24 04:10
→ b10007034: 後面還有一點趣事,因為我的環境是virtualbox上的Ubunt 01/24 07:59
→ b10007034: 所以我找了一台mac來用,結果發現答案一樣 01/24 08:00
→ b10007034: To m大我也不知道為甚麼耶...只關注地址而已 囧 01/24 08:02
→ b10007034: 以為使用VM會有差別,看起來是沒有?暫時想不通 01/24 08:03
推 cphe: 你這個ptr只是個變數內容,印出來當然一樣啊 01/24 08:15
→ b10007034: 謝C大回覆,可以請問一下有哪些情況地址會不一樣嗎? 01/24 08:21
推 Schottky: 地址不一樣是什麼意思?代表 parent 原本建好的 tree 01/26 07:40
→ Schottky: 遺傳給 child 時整組壞光光嗎? 01/26 07:40
推 dces4212: 他倆 address space 不同,所以不會有共用之類問題 01/26 16:01
推 asd15723: 那個print不是印出值而已嗎 不是sharedval的address吧 01/27 12:36
→ asd15723: (? 01/27 12:36
→ asd15723: 地址會不一樣 01/27 12:37
→ asd15723: 應該是指 01/27 12:37
→ asd15723: print("%p",&ptrsharedval)? 01/27 12:37
推 dces4212: 還有就是fork是複製原本process的context, 所以位置會 01/27 12:50
→ dces4212: 一樣 01/27 12:50
推 dces4212: asd, 樓主只是想問那個 char 的位置吧 所以就直接用pt 01/27 12:55
→ dces4212: r內容看了。另外ptr的位置應該也是一樣的 01/27 12:55
→ cphe: ptr內容是copy的一定會一樣,至於address,就跟最上面說的 01/27 18:31
→ cphe: 推文最上面說的是virtual address,copy on write只是決定要 01/27 18:31
→ cphe: 不要真的建一個page table真的mapping到physical address 01/27 18:32