9.父子進程間的數據共享問題

進程剛執行fork之後,兩個虛擬地址空間的用戶區數據完全相同,如下圖所示:


  如上圖所示,父子進程中都用一個變量(全局變量.data段)int num = 100,當兩個進程僅對該變量執行讀操作時,它們讀取的是物理內存中的同一區域。而當父進程執行num--,子進程執行num++時,就會分別複製一份num放在不同的物理內存區域中,此時,物理內存就含有3份num。

父子進程間的數據共享:讀時共享,寫時複製。

父子進程之間能夠使用全局變量通信?
  不能,兩個進程間內存不能共享。

發佈了119 篇原創文章 · 獲贊 12 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章