亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: shared lib被兩個進(jìn)程引用的話在內(nèi)存中是一份拷貝還是兩份呢? [打印本頁]

作者: DraculaW    時間: 2015-01-15 13:55
標(biāo)題: shared lib被兩個進(jìn)程引用的話在內(nèi)存中是一份拷貝還是兩份呢?
一個liba.so
被X進(jìn)程引用后又被Y進(jìn)程引用,
在執(zhí)行時,liba是在系統(tǒng)中占據(jù)一份內(nèi)存呢還是分別在X和Y進(jìn)程中各保留一份內(nèi)存?
作者: zhaohongjian000    時間: 2015-01-15 13:57
大體情況:代碼段是一份,數(shù)據(jù)段各一份。
作者: hanxin83    時間: 2015-01-15 17:12

大體情況:.text段是一份或多份, .data段各一份, .rodata是一份或多份.

多份情況一般是地址空間被占用, 但它又有重定位表的時候....
作者: zsszss0000    時間: 2015-01-15 18:23
共享庫可以被多進(jìn)程“共享”,如果在物理內(nèi)存中需要很多份的話,浪費內(nèi)存。
但是我想問一下,在虛擬地址空間的話,庫的地址是否也是相同的呢?
共享庫都是用地址無關(guān)方式編譯成功的,是不是在不同進(jìn)程看來這個庫的地址可以不一樣呢?
作者: hanxin83    時間: 2015-01-16 09:30
可以不一樣的. 地址無關(guān)方式編譯在32位上可能是用的寄存器+offset的方式, 在64位上直接就是rip相對尋址的方式.
不過仍然可能有重定位表, 比如, 你用了函數(shù)批針, 當(dāng)然我沒有親自試過.
只是理論上的分析.




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2