进程和可执行程序

操作环境:Linux

目录

而且有个有意思的现象,我们把一个正在运行的程序删除后,这个程序仍然可以运行。

总结:进程 = 内部数据结构 + 可执行程序,运行时将可执行程序加载到内存中


之前我认为进程就是把可执行程序给运行后的产物,但不是这样的。

准确来说,进程 = 内核数据结构 + 可执行程序(代码 + 数据)

而且有个有意思的现象,我们把一个正在运行的程序删除后,这个程序仍然可以运行。

我们写一个简单的打印进程pid的代码

进程和可执行程序_第1张图片

然后我们运行,来到这个进程的目录中

进程和可执行程序_第2张图片

进程和可执行程序_第3张图片

可以看到很多的属性信息,但我们先看这个,程序的路径

然后我们将这个程序删除,发现程序仍在运行

进程和可执行程序_第4张图片

但是我们发现,进程目录中已经显示这个程序已经被删除了

总结:进程 = 内部数据结构 + 可执行程序,运行时将可执行程序加载到内存中,而我们删除的程序自身是在磁盘中的,所以在这里并不影响程序继续运行

你可能感兴趣的:(Linux,linux,服务器)