C 调度程序时间量如何随线程数变化?

C 调度程序时间量如何随线程数变化?,c,linux-kernel,scheduled-tasks,scheduling,C,Linux Kernel,Scheduled Tasks,Scheduling,据我所知,调度程序在线程上执行抢占之前的默认时间约为100ms,这个时间量如何随繁忙线程的数量(需要进行上下文切换)而变化 如果有200个线程在运行,其中100个线程使用了~100ms,那么其他100个线程就不会这么高兴了。有没有像完整线程循环时间这样的实体?量子的基础是什么 我考虑的是Linux 3.2+内核。CFS方法是每个进程将接收处理器时间的1/n。 它有一个目标延迟。这是每个进程都有机会执行某些代码的时间 为了实现这一点,调度器在指定的时间内运行一个进程,称为时间片。通常,时间片是目标

据我所知,调度程序在线程上执行抢占之前的默认时间约为100ms,这个时间量如何随繁忙线程的数量(需要进行上下文切换)而变化

如果有200个线程在运行,其中100个线程使用了~100ms,那么其他100个线程就不会这么高兴了。有没有像完整线程循环时间这样的实体?量子的基础是什么


我考虑的是Linux 3.2+内核。

CFS方法是每个进程将接收处理器时间的1/n。 它有一个目标延迟。这是每个进程都有机会执行某些代码的时间

为了实现这一点,调度器在指定的时间内运行一个进程,称为时间片。通常,时间片是目标延迟除以正在运行的进程数


但当运行进程的数量接近无穷大时,时间片接近于零。由于这最终将导致不可接受的转换成本,CFS对分配给每个进程的时间片施加了一个下限。这个下限称为最小粒度。默认值为1毫秒。因此,即使可运行进程的数量接近无穷大,每个进程至少运行1毫秒,以确保产生的切换成本有一个上限

我认为HZ的标准设置为100,即10毫秒。确认: