Linux内核必须能够根据进程的PID找出对应的PCB。顺序扫描进程链表并检查PCB的PID域是可行但效率相当低的。为了加速查找,引入了哈希表,于是建立了一个pid_hash的结构。
1、pid_hash的声明(kernel/pid.c):
static struct hlist_head *pid_hash;
pid的初始化是在内核初始化(即start_kernel函数中)的时候完成的。由pidhash_init完成:
Linux内核必须能够根据进程的PID找出对应的PCB。顺序扫描进程链表并检查PCB的PID域是可行但效率相当低的。为了加速查找,引入了哈希表,于是建立了一个pid_hash的结构。
1、pid_hash的声明(kernel/pid.c):
static struct hlist_head *pid_hash;
pid的初始化是在内核初始化(即start_kernel函数中)的时候完成的。由pidhash_init完成: