如何检查内核是否对线程进行本地或全局调度

时间:2012-11-17 22:29:59

标签: c multithreading process linux-kernel scheduler

我看到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

但我不认为它以我能理解的方式在任何地方使用。

0 个答案:

没有答案