linux下一个程序相连的两次被调度执行的间隔是多长时间?
linux下一个程序相连的两次被调度执行的间隔是多长时间?一直对这个没有任何概念。假设一个linux系统上有50个进程在运行,除了一个进程是所谓的CPU hog外(代码如下),其余进程的大部分时间是空闲状态。
这种情况下,cpu hog 某次被调度执行,无间断的运行了n条指令后被调度走了,此时刻为t0, 过了一会,调度器将cpu hog再次调度进来执行,此时刻为t1.
t1-t0 对目前的常见的PC来说大概是个什么量级的数?
int main() {
while(1);
return 0
} 这种情况一,CPU应该都被它占了。大部份情况下是不会切换它出去的。切换出去的话就看切到准头上了,如是是FIFO,那就得等FIFO主动退出罗。如果切到另一个睡醒的CFS,是可以从CFS的代码上算出来个大概值的。如果你只是想看一下,不想去深入了解,可以直接通过ftrace功能,测出来。 对于while(1),不会主动放弃CPU,只能被抢占,所以它会跑满分配给它的时间。
关于CFS,每一个进程的最大时间跟它的优先级以及当前CPU上的runnable的进程有关。
页:
[1]