Linux源码笔记-任务切换
(1)被动调度的决策:定时检查时间片
timer_handler
clock_event_device->event_handler
tick_handle_periodic
tick_periodic
do_timer
update_process_times
scheduler_tick
task_struct->sched_class->task_tick
task_tick_fair
entity_tick
check_preempt_tick
resched_curr
set_tsk_need_resched
TIF_NEED_RESCHED
(2)抢占式调度的执行:中断或系统调用结束时
preempt_enable
preempt_schedule
preempt_schedule_common
_schedule
context_switch
switch_to
finish_task_switch
(3)主动调度的执行:主动让出CPU。
schedule
_schedule
context_switch
switch_to
finish_task_switch
浙公网安备 33010602011771号