Linux进程的理解
来源:知识教程 /
时间: 2024-12-13
经常听说“创建一个进程”,这到底是怎么回事呢?首先能想到的是,进程不是孙猴子,不可能自己蹦出来,肯定是别人“生”的。Linux中,进程是由父进程创建的,准确的说,是父进程中的代码的指令部分主动使用了创建进程的函数fork(),然后一个子进程就被“生”了出来。fork函数如何工作的呢?由于每个进程都有一个PCB,所以它首先要跟操作系统申请一个PCB(PCB是有限的),然后分配新进程内存,接着copy父进程的代码。实际上,fork就是很懒的复制了一下父进程,也就是说,fork函数调用过程中,内存中会会出现两个几乎一模一样的进程,当然除了进程号(它是唯一的)。进程的复制完成后,两个进程都有一个fork函数等待返回(注意,是返回,因为fork函数本身也是一条一条的代码,前面的一部分完成复制功能,子进程出现后,就到了返回的那部分代码了),而它们的返回结果是不同的(操作系统来控制返回结果):父进程中的fork返回子进程的pid;而子进程中的fork返回0;如果fork失败,返回的是-1。
上一篇: Linux管道与重定向
下一篇: Linux命令(2):ls命令