Thread Quantum:如何计算它

时间:2017-03-20 08:47:50

标签: linux multithreading language-agnostic

我一直在阅读一些关于线程量子的帖子和文章(hereherehere)。显然,Windows根据窗口“模式”(服务器或其他东西)为线程量程分配固定数量的CPU滴答。但是从最后一个链接我们可以读到:

  在Linux下10-200个时钟周期(即10-200毫秒)之间的

(线程量子),尽管有些   粒度在计算中引入

有没有办法在Linux上计算量子长度? 无论如何计算它是否有意义? (因为根据我的理解,线程仍然可以被抢占,没有什么能够在整个量程期间强制线程运行)

从开发人员的角度来看,我可以看到编写一个程序的兴趣,该程序可以根据线程数量和“他们做什么”来预测程序的运行时间(可能会删除所有测试以找到最佳数量的线程会有点整洁,虽然我不确定这是正确的方法)

1 个答案:

答案 0 :(得分:3)

  1. 在Linux上,默认的实时量子长度常量是declared as RR_TIMESLICE,至少在4.x内核中是这样;配置内核时必须定义HZ
  2. 之间的间隔暂停量程已过期的线程并恢复它可能取决于很多事情,例如load average
  3. 为了能够至少以一定程度的准确度预测运行时间,请给出目标流程realtime priority;实时进程是在round-robin algorithm之后安排的,这通常比普通的Linux调度算法更简单,更可预测。
  4. 要获得实时量子长度,请致电sched_rr_get_interval()