linux主调度器(三)

    主调度器调度层次如下:

    schedule

        __schedule

            pick_next_task

    在pick_next_task里面会根据stop->dl->rt->fair->idle的顺序,遍历各个调度类,从中选择一个进程放入cpu执行。pick_next_task里面也进行了优化:如果cpu运行队列rq中所有进程都是普通进程,那么直接从fair_sched_class调度类中选择一个进程调度执行。

    进程进入cpu执行的时候会记录开始执行的时间,进程从cpu中切换出去之后,会记录进程在cpu上总的执行时间。例如stop进程:

    pick_next_task_stop:stop->se.exec_start = rq_clock_task(rq);   记录进程进入cpu执行时候的时间;

    put_prev_task_stop:记录进程在cpu上执行的总时间

猜你喜欢

转载自blog.csdn.net/qq_38712943/article/details/79924886