创建流程

创建流程

当我在 unix/Linux 中执行程序时,幕后到底发生了什么?

谁负责创建流程?

我是否需要调用内核来启动进程(我的程序的实例)?从这个意义上说,我的程序应该在处理器上运行以进行内核调用,对吗?那么第一个内核调用是如何启动进程的呢?是不是就像陷入了僵局?那么内核首先出现在哪里呢?

抱歉,我刚刚阅读了许多有关所有这些的文档,但仍然无法将这些点联系起来或获得全貌。有人可以用简单的术语详细说明吗?

答案1

死锁是完全不同的事情。

创建流程

传统上 Unix 有一种创建进程的方法forkfork是一个系统调用。它由现有进程调用。这是对内核的调用。它会导致创建一个新进程。新进程与旧进程几乎相同,两个进程都从fork调用中返回。

进程之间的主要区别是: 的返回值fork。进程 ID。

您可能还希望使用exec(也是系统/内核调用)使进程不同:运行不同的程序。

那么它是如何开始的呢。

进程 1 链接到内核。两者同时加载。内核开始运行这个进程。其他一切都来自那里:进程创建新进程,新进程创建新进程(见上文),就像树的分支一样。

相关内容