【发布时间】:2015-04-27 01:36:36
【问题描述】:
进程内存映射通常由栈、文本、data+bss和堆组成。
内存地址独立于文本部分以外的其他进程。
我的问题是关于文本部分,是否只有子进程可以共享
与其父进程相同的文本部分?或其他进程也可以共享它。
================================================ ========================
@avd:是的,参考维基百科
http://en.wikipedia.org/wiki/Process_isolation
“进程隔离可以通过虚拟地址空间来实现,其中进程A的地址空间与进程B的地址空间不同——防止A写入B。”
这就是我的意思是每个进程都有自己的内存映射。
但是,当我阅读操作系统书籍时,它提到文本部分可以共享。所以我对此不是很清楚,或者我可能误解了本书的那部分。
================================================ ======================== 额外信息:
http://www.hep.wisc.edu/~pinghc/Process_Memory.htm
如果要同时执行程序的第二个副本,则进程共享文本段。在此设置中,系统使用指针引用先前加载的文本段,而不是重新加载副本。如果需要,可以在编译时使用 -N 选项关闭共享文本,这是使用 C/C++ 编译器时的默认设置。
【问题讨论】:
-
您能否详细说明“内存地址独立于文本部分以外的其他进程”的意思。 ?
标签: unix process operating-system kernel