linux提供3个system call来创建进程:clone(),fork(),vfork(),其中fork(),vfork()在实现上是通过调用clone()来进行的。而clone()在底层上是通过调用do_fork()来实现的。
do_fork()主要包括以下几个步骤:
1.首先是从pid bitmap中找到一个合适的pid
2.拷贝父进程的process descriptor(通过copy_process()函数)
3.然后根据各种flag决定父进程和子进程的运行状态:是先运行父进程,还是子进程?要不要将父进程或者子进程的状态置为stop等等?
2009/01/17 六
进程的创建
最新推荐文章于 2021-10-17 21:18:15 发布