Linux 内核源码 linux-5.6.18\kernel\sched\sched.h
中 , 定义的 struct sched_class
调度类结构体 , 就是 " 调度器 " 对应的类 ;
sched_class
调度类结构体 中的 task_woken
函数指针 , 指向一个函数 , 调用该函数 , 可以将 休眠或阻塞中的 " 进程 " 唤醒 ;
void (*task_woken)(struct rq *this_rq, struct task_struct *task);
源码路径 : linux-5.6.18\kernel\sched\sched.h#1732 ;
sched_class
调度类结构体 中的 set_cpus_allowed
函数指针 , 指向一个函数 , 调用该函数 , 可以修改 " 进程 " 在 CPU 中的 " 亲和力 " ;
void (*set_cpus_allowed)(struct task_struct *p,
const struct cpumask *newmask);
源码路径 : linux-5.6.18\kernel\sched\sched.h#1734 ;
sched_class
调度类结构体 中的 rq_online
函数指针 , 指向一个函数 , 调用该函数 , 可以 启动 执行队列 ;
void (*rq_online)(struct rq *rq);
源码路径 : linux-5.6.18\kernel\sched\sched.h#1737 ;
sched_class
调度类结构体 中的 rq_offline
函数指针 , 指向一个函数 , 调用该函数 , 可以 禁止 执行队列 ;
void (*rq_offline)(struct rq *rq);
源码路径 : linux-5.6.18\kernel\sched\sched.h#1738 ;