linux进程管理
文章平均质量分 81
bullbat
爱好程序设计,对待问题喜欢追根溯源。
展开
-
进程ID号
关于进程ID号,在深入理解linux内核架构中已经讲得很清楚了。下面是主要的部分。 UNIX进程总是会分配一个号码用于在其命名空间中唯一地标识它们。该号码被称作进程ID号,简称PID。用fork或clone产生的每个进程都由内核自动地分配了一个新的唯一的PID值。 1. 进程ID 但每个进程除了PID这个特征值之外,还有其他的ID。有下列几种可能的类型。 处于某个线程组(在一个进程中,以标原创 2011-12-19 20:24:05 · 6357 阅读 · 0 评论 -
进程创建
Linux中关于进程创建的主要函数有fork,vfork,clone,他们的实现都是有do_fork来完成的,只是传入的参数有差别,do_fork中调用函数copy_process从父进程中复制相关内容到子进程,其中这个复制量的确定是根据传入参数flag来确定是否需要重新申请内存还是共享父进程的资源,下面对具体的代码进行分析。 /*唯一使用的标志是SIGCHLD。这意味着在子进程终止后原创 2011-12-20 16:51:23 · 2273 阅读 · 0 评论 -
进程创建之copy_process函数
copy_process函数在进程创建的do_fork函数中调用,主要完成进程数据结构,各种资源的初始化。初始化方式可以重新分配,也可以共享父进程资源,主要根据传入CLONE参数来确定。 /* * This creates a new process as a copy of the old one, * but does not actually start it yet. * * I原创 2011-12-20 17:07:48 · 6401 阅读 · 2 评论 -
进程任务结构与初始化
Linux系统的线程实现非常特别:他对线程和进程并不特别区分。对linux而言,线程只不过是一种特殊的进程罢了,后面我们会看到,他们都通过do_fork函数创建,只是传入的参数不一样而已。线程创建时,会共享内核资源。 在内核中,各个进程的task_struct存放在他们内核栈的尾端。这样做是为了让那些像x86那些寄存器较少的硬件体系结构只要通过栈指针就能计算出他的位置而避免额外的寄原创 2011-12-19 14:46:37 · 3297 阅读 · 0 评论