suiyun2008 发表于 2005-8-19 22:46:19

菜鸟请教: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;
}

yuyulvxian 发表于 2005-8-30 14:18:27

可能是要考虑SMP的情况吧
页: [1]
查看完整版本: 菜鸟请教:2.4dup_task_struct的疑惑