程序转换为流程

时间:2015-11-30 14:28:44

标签: linux process operating-system

我正在用c语言练习Linux编程。但我对程序如何成为一个过程并不感兴趣,程序成为一个过程涉及的主要步骤是什么?

2 个答案:

答案 0 :(得分:0)

这取决于操作系统。我知道有两种模式。

  1. 用户登录系统时会创建该进程。系统设置在进程后台运行的命令解释程序。一个告诉命令解释器运行程序。这会加载程序并开始执行。程序退出时,控制权返回命令解释程序,同一进程可以运行另一个程序。

  2. 进程始终是另一个进程的克隆(unix方法)。通常起点是一个shell。你告诉shell运行一个程序。 shell创建自己的副本,创建一个新进程。然后它加载你想要运行的程序,替换shell。该程序完成后,该过程即告终止。

答案 1 :(得分:0)

在shell上键入命令时,它会通过fork()创建新的相同进程,然后调用其中一个exec函数来分离此进程,以便新创建的进程可以执行自己的代码。在这个exec函数中,程序的代码和数据从存储在硬盘上的二进制文件(在linux ELF上)加载到内存中。