Questions tagged «algorithms»

1
为什么在Linux负载计算中没有使用简单的1/5/15分钟移动平均值?
直到最近,我还认为负载平均(如顶部所示)是状态“可运行”或“正在运行”的进程数的n个最后值的移动平均值。并且n将由移动平均线的“长度”定义:由于计算平均负载的算法似乎每5秒触发一次,因此对于1分钟的平均负载,n将为12,对于5分钟的平均负载,n将为12x5,而12x15 15分钟的平均负载。 但是后来我读了这篇文章:http : //www.linuxjournal.com/article/9001。这篇文章很老,但是今天在Linux内核中实现了相同的算法。平均负载不是移动平均,而是一种我不知道名称的算法。无论如何,我在一个假想的周期性负载下对Linux内核算法和移动平均值进行了比较: 。 这是个很大的差异。 最后,我的问题是: 为什么选择这种实现方式而不是对任何人都具有真正意义的真实移动平均值? 为什么每个人都说“ 1分钟平均负载”,因为算法考虑了比最后一分钟更多的时间。(从数学上讲,是自启动以来的所有度量;实际上,考虑到舍入误差-仍然是很多度量)

5
是否有一种算法可以确定符号链接是否循环?
如果Unix系统遇到包含符号链接循环或符号链接太多的路径,通常会出错,因为它们对一次路径查找中要遍历的符号链接的数量有限制。但是,有没有一种方法可以真正确定给定的路径是否解析为某种路径或是否包含循环,即使该路径包含的链接数量超出了unix愿意遵循的范围?还是这是一个无法确定的正式问题?如果可以决定,是否可以在合理的时间/内存范围内决定(例如,无需访问文件系统上的所有文件)? 一些例子: a/b/c/d where a/b is a symlink to ../e and e is a symlink to f and f is a symlink to a/b a/b/c/d where a/b/c is a symlink to ../c a/b/c/d where a/b/c is a symlink to ../c/d a/b/c/d where a/b/c is a symlink to /a/b/e where a/b/e …

3
为什么缓存交换有意义?
对我来说,缓存换出的页面听起来适得其反。如果交换页面,首先将它们缓存在内存中,而不必将它们移到正确的位置有什么好处?即使主动调换页面,“仅仅”调换页面是否更有意义?实际上,缓存交换只是浪费资源吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.