相关疑难解决方法(0)

为什么我们需要 fork 来创建新进程?

在Unix中,每当我们想要创建一个新进程时,我们会fork当前进程,创建一个与父进程完全相同的新子进程;然后我们执行 exec 系统调用以将来自父进程的所有数据替换为新进程的所有数据。

为什么我们首先创建父进程的副本而不是直接创建新进程?

process fork architecture

115
推荐指数
4
解决办法
6万
查看次数

为什么有些程序会立即返回 shell 而有些程序直到执行完成才返回?

我从现代操作系统一书中读到,当一个命令运行时,shell 创建一个子进程,等待它直到子进程完成执行,然后等待来自用户的另一个命令。对于像gedit. 终端在我关闭之前不会接受命令gedit。但是,当我打开atom代码编辑器时,shell 立即返回,即使编辑器正在运行,也准备好接受下一个命令。关闭终端不会关闭原子。这是否意味着编辑器不是作为子进程打开的?使这成为可能的潜在机制是什么?

跑步ps au | grep atom给予

<username>      8042  0.0  0.0  15944  2264 pts/1    S+   00:55   0:00 grep --color=auto atom
Run Code Online (Sandbox Code Playgroud)

shell process background-process

14
推荐指数
1
解决办法
1253
查看次数

标签 统计

process ×2

architecture ×1

background-process ×1

fork ×1

shell ×1