1.不用判断调度标志。直接调用schedule函数:
进程睡眠直接调用schedule函数发生调度
进程完成任务主动让出cpu,调用cond_resched函数立即发生调度
2.判断调度的标志来调用schedule函数。
1.系统调用或中断返回前,判断调度的标志是否设置。如果设置就调用schedule函数。
2.调用preempt_enable时,给preempt_count减1,然后判断是否为0,为0调用__preempt_schedule,该函数内部还是判断了调度标志是否设置。
设置调度标志的时机:时钟的中断处理函数,wake_up_prcoess