操作系统面试题(十五):虚拟内存技术的局部性原理
局部性原理
局部性原理不仅适用于程序结构,也适用于数据结构
正是由于局部性原理的存在,才可以实现只装入部分程序到内存就开始运行
局部性原理的表现:
- 时间局部性:如果程序中的某条指令一旦执行,不久之后该指令可能再次被执行。如果某数据彼访问过,不久之后该数据可能被再次访问
产生时间局部的典型原因:程序中的循环
- 空间局部性:一旦程序访问了某个存储单元,不久之后其附近的存储单元也将被访问(程序在一段时间内访问同一范围内的地址)
产生空间局部性的典型原因:指令一般都是顺序存放,顺序执行。数据一般都是以向量、数组、表等形式存储的
《计算机操作系统》一书中这样定义局部性原理:程序在执行的过程中,往往呈现了局部性规律,某个时间段中,程序的执行仅局限于一小部分,程序访问的存储空间也局限于某个空间
小结
时间局部性:通过将近来使用的指令和数据保存到高速存储器中,并使用高速存储器的层次结构实现
空间局部性:通常是使用较大的高速缓存,并将预取机制集成到高速缓存中控制逻辑实现
虚拟内存技术实际上就是建立了“内存-外存”的两级存储器结构,利用局部性原理实现高速缓存,进而进行数据交换