Linux内核学习之BogoMIPS值的计算
--------------------------------------------------------------------------------
作者:曹磊
对于每一个linux编程爱好者来说,他们都有一个共同的心愿,就是了解linux的内核。但是linux内核的庞大与复杂让人望而生畏。往往是鼓足勇气一头扎进去,学得昏天黑地的,却没有学到什么。这里我想说,初学者不妨先学习学习内核中一些简单的函数,从中既可以得到乐趣,又能了解到内核的一些编程风格。然后,再将linux划分成几个部分,如进程调度、内存管理等,对每个部分从原理上去把握了解。接着,在详细分析各个部分的具体实现。最后,各部分串在一起,把过去单独分析时,不懂的地方加以重新了解。这样循环监禁,可以让我们更快更系统的学习linux的内核。
这是我对内核学习的一些理解,欢迎各位提宝贵意见。我今天向大家介绍的是linux内核中一个有趣的函数calibrate_delay()。
calibrate_delay()函数可以计算出cpu在一秒钟内执行了多少次一个极短的循环,计算出来的值经过处理后得到BogoMIPS值,Bogo是Bogus(伪)的意思,MIPS是millions of instructions per second(百万条指令每秒)的缩写。这样我们就知道了其实这个函数是linux内核中一个cpu性能测试函数。由于内核对这个数值的要求不高,所以内核使用了一个十分简单而有效的算法用于得到这个值。这个值虽然不准确,但也足以令我们心动。如果你想了解自己机器的BogoMIPS,你可以察看/proc/cpuinfo文件中的最后一行。在你知道了自己cpu的BogoMIPS之后,如果你觉得不过瘾ÿ