菜鸟请教:2.4dup_task_struct的疑惑
搞不明白为什么会有tsk这么一个东西static struct task_struct *dup_task_struct(struct task_struct *orig)
{
struct task_struct *tsk;
int cpu = smp_processor_id();
tsk = task_cache;
task_cache = NULL;
/*task_cache定义为一个static全局数组,不论什么时候task_cacke总是NULL,内核为什么要搞这么一段东西?直接__alloc_task_struct()不就是了嘛*/
if (!tsk) {
tsk = __alloc_task_struct();
if (!tsk)
return NULL;
}
memcpy(tsk, orig, sizeof(*tsk));
atomic_set(&tsk->usage,1);
return tsk;
} 可能是要考虑SMP的情况吧
页:
[1]