
schedule
BestWangJie
linux内核学习记录总结与思考,写的不对的非常欢迎纠正。
展开
-
__schedule流程中pick_next_task代码学习
前面已经学习了deactivate_task这个接口,它是将当前的任务从rq中移除,移除之后自然需要pick_next_task来选取下一个执行的任务。Pick_next_task接口会首先判断当前程序的调度类是不是公平调度,以及rq中running状态的任务数和rq中cfs调度rq中的running状态的任务数目,条件符合就使用CFS的pick_next_task_fair方法选取下一个执行任务,核心的调用流程如下:pick_next_task_fair put_prev_task ...原创 2020-09-13 13:10:23 · 433 阅读 · 0 评论 -
__schedule流程中deactive_task代码学习
deactive_task使用场景在__schedule处理中, deactive_task用于将当前的任务从rq中删除,如下流程图,在非内核抢占且当前任务不处于运行状态,如果当前任务存在待处理的信号量,要将这个任务状态设置成TASK_RUNNING,如果没有才调用deactive_task,将当前任务从rq中删除。task_struct中的state字段描述进程的当前状态,进程一共有五个状态:statestate descriptionTASK_RUNNING运行:进程是可执原创 2020-08-08 18:39:48 · 435 阅读 · 0 评论