研究Linux分页技术碰到著名的局部性原理

  • A+
所属分类:Linux教程
摘要

研究Linux分页技术碰到著名的局部性原理,查资料解释如下:

研究Linux分页技术碰到著名的局部性原理,查资料解释如下:

局部性原理(Principle of Locality)是一个由经验得出的结论:“一个程序90%的时间运行在10%的代码上”。

计算机程序从时间和空间都表现出“局部性”:

1)时间的局部性(Temporal Locality):最近被访问的内存内容(指令或数据)很快还会被访问;

2)空间的局部性(Spatial Locality):靠近当前正在被访问内存的内存内容很快也会被访问。

一个典型的例子就是几乎所有的程序都有循环代码。比如:

for(int i=0; i < 1000; i++)
  for(int j=0; j < 200; j++)
    a[i][j] = i*j;

这段代码从时间和空间上都表现出很强的局部性。

而对于存储器而言,存取速度越快的其成本越高。为了在成本和性能之间进行平衡,现代计算机体系架构往往选择:使用少量性能高但成本也高的存储器作为速度慢而成本也低的存储器的缓存。成本越高的存储器数量越少,但它们被设计为更靠近CPU,所以它们性能要比次级存储器高的多。

所以整个存储器层次是一个金字塔结构,如下图所示:

研究Linux分页技术碰到著名的局部性原理

由于上层存储器是下层存储器的缓冲,基于局部性原理,使用这种架构是正确的选择。因为下层存储器中的数据一旦被装入上层存储器,就很有可能被多次用到,此时CPU则可以在更靠近它的性能也更高的存储器内找到其需要的数据,而不需要每次都要到离它更远,性能也更低的存储器内去存取它们。

除非注明,否则均为@蒲公英网原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.aipgy.com/148743.html

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: