linux - 进程之间是如何共享代码段的?
高洛峰
高洛峰 2017-04-17 14:42:13
0
1
855

如果一个程序运行了两个实例,那么有两个进程,这两个进程应该共享代码吧。
但是网上虚拟地址空间的布局中,每个进程都有代码段。那么进程是怎么共享代码的?难道是后来产生的进程的代码段指向前面产生进程的代码段?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(1)
巴扎黑

如果一個程式運行了兩個實例,很遺憾,這兩個程式的程式碼並不會共享,因為程式碼在程式執行時就被裝載到內存,第二個程式再啟動時,系統沒法判斷也不會判斷這個程式是否還是原來的程式(如果程式被更新或更改),所以仍然會把程式碼重新載入到記憶體的另一塊區域。

程式碼的共享體現應該是链接库中,特別是动态链接库中。因為函式庫被設計成動態連結的,所以程式可以在運行後再確定程式碼所在的記憶體位址,這也就能實現多個程式呼叫同一塊程式碼了。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板