【发布时间】:2016-11-05 01:41:08
【问题描述】:
我知道对于 DLL,可执行文件在进程之间共享。但是对于用户定义的程序,当我在两个终端上运行“测试”时,我们称之为“测试”。程序可执行文件是否将为这两个进程共享,或者每个进程都有一个单独的副本?谢谢。
【问题讨论】:
-
如果它们的进程ID不同,我认为可执行代码也会不同。
-
您的问题含糊不清。一提到
DLL,就会想到共享对象。在 Linux 中,它等同于*.so文件。这些共享对象在针对它编译用户程序或用户程序加载它时被加载到内存中。但是你跟进了两个同时执行的程序。在用户空间的上下文中,这根本不是共享的。位于磁盘上的二进制文件是共享的,因为它没有被第一次执行独占锁定。两次执行都会在内存中拥有自己的副本,并且都有独立的程序计数器、堆栈指针、变量等。
标签: linux