每个过程有多少个连续循环?

时间:2017-05-24 12:09:36

标签: multiprocessing

我刚刚在多处理过程中读到,当等待进程进入上下文时,整个缓存变得无效,我们看到很多缓存未命中。我想知道一个进程在进入等待状态之前连续运行多长时间......它是否足够长,以便可以有意义地使用新更新的缓存?但是,其他流程将等待太长时间?感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

简单的答案是"是的,它通常足够长"。如果它不够长,他们就不会在芯片上放置缓存。时间由操作系统控制,您可以在此处查看帖子:Linux Scheduler Time Slice

但是,有些情况可能不够长。这通常是您有大量I / O而中间计算不多的地方。一个很好的例子是像telnet这样的程序,它可以读取一个字符,输出一个字符,然后进入睡眠状态。但是,我并不认为说整个缓存无效是正确的。只有当新进程使用足够的内存来覆盖前一进程中的所有缓存条目时,才会发生这种情况。

为了避免这样的问题,您应该使用缓冲文件I / O或数据库访问,应用程序中的缓存并避免逐个字符处理。