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



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

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

最佳答案

  • 在 Linux 上,默认的实时量子长度常数是 declared as RR_TIMESLICE ,至少在 4.x 内核中是这样; HZ 必须在配置内核时定义。
  • 暂停其量子已过期的线程和恢复它之间的间隔可能取决于很多事情,例如 load average
  • 为了能够至少以某种程度的准确度预测运行时间,给目标进程 realtime priority ;实时进程按照 round-robin algorithm 进行调度,这通常比常见的 Linux 调度算法更简单、更可预测。
  • 要获取实时量子长度,请调用 sched_rr_get_interval()
  • 关于linux - 线程量子 : How to compute it,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42899151/

    10-12 04:05