c - Linux中为CFS定义的函数在哪里

标签 c linux-kernel operating-system scheduling kernel

sched_class对于完全公平调度程序 (CFS),有为 enqueue_task 定义的函数原型(prototype)。实际的函数实现是在哪里定义的?搜索给我一个定义here (以下)。但这是任务排队发生的地方吗?如果是的话 p->sched_class->enqueue_task

在哪里
 713 static void enqueue_task(struct rq *rq, struct task_struct *p, int flags)
 714 {
 715        update_rq_clock(rq);
 716        sched_info_queued(p);
 717        p->sched_class->enqueue_task(rq, p, flags);
 718 }

最佳答案

它似乎被分配给 kernel/sched/fair.c:5343 处的 sched_class 结构并定义于 kernel/sched/fair.c:2178 .

关于c - Linux中为CFS定义的函数在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13535867/

相关文章:

assembly - 如何读取特定内核的(性能计数器)寄存器?

linux - 操作系统如何知道要调用哪个设备驱动程序?

operating-system - 实时操作系统如何工作?

c - Valgrind 向 malloc 报告愚蠢的 arg,我如何找出位置?

linux - 在 Linux 上提取 TCP 往返时间 (RTT) 估计

linux - 系统调用如何被信号中断?

linux - 用户空间内存编辑程序

c - 看似随机的 opendir() 失败 C

c - 可以通过什么方式编写代码以便不需要在 C 中调用库?

c - Linux 夺旗编程难题