为什么我们使用fork()或exec()系统调用创建新进程?

时间:2017-02-18 18:23:32

标签: process fork exec

我们在课堂上教授使用 fork() exec()系统调用创建新流程。

假设我们使用fork()创建了一个子进程,这个新创建的进程的目的是什么?为什么我们创建了这个过程?

我在询问我们必须创建新流程的应用程序。

1 个答案:

答案 0 :(得分:0)

创建新流程的一些示例用法:

  • 在shell环境中,您运行的每个命令(如ls)都是自己的二进制文件。主shell程序将fork()然后执行相关的实用程序。
  • Apache httpd服务器等Web服务器将使用fork()创建一个新进程来处理单独的请求。
  • 某些网络浏览器(如Chrome)会为每个打开的标签创建新流程,以便利用不同流程之间的隔离来提高安全性。
  • 每次通过GUI菜单(例如Windows中的开始菜单或MacOS中的扩展坞)打开应用程序时,桌面环境都会分叉并执行新进程。
  • 在构建代码时,将make fork等系统和执行编译器构建为单独的进程。

还有很多其他的,但这些是一些示例,当您可能需要在程序中使用多个进程时。