kernel/sched/core.c
我看到代码的哪一部分来告诉内核正在使用哪种类型的调度来调度线程。还是我在寻找正确的地方?一个多进程可以有多个线程,这些单独的线程是如何调度的?基于进程(本地)或线程池(全局)
编辑:
我目前正在记录文件context_switch
中发生的情况,core.c
以查看进程是如何切换的。但是当我尝试分析这些数据时,它变得太复杂了。任何人都可以提出一个更简单的方法吗?
我在http://lxr.linux.no/linux+v3.6.6/include/linux/sched.h#L36找到了这个
/*
* Scheduling policies
*/
#define SCHED_NORMAL 0
#define SCHED_FIFO 1
#define SCHED_RR 2
#define SCHED_BATCH 3
/* SCHED_ISO: reserved but not implemented yet */
#define SCHED_IDLE 5
但我没有看到它以我能理解的方式在任何地方使用。