局部性原理
时间局部性
程序中的某条指令一旦执行,不久后该指令可能再次执行;
某数据被访问过,不久后该数据可能再次被访问。
产生时间局部性的典型原因是程序中存在着大量的循环操作。
高速缓冲技术:将近期会频繁访问到的数据放到更高速的存储器中,暂时用不到的数据放在更低速的存储器中。
空间局部性
一旦程序访问了某个存储单元,在不久后,其附近的存储单元也将被访问。
因为指令通常是顺序存放,顺序执行的,数据也一般以向量、数组、表等形式存储。
计算机中存储器的层次结构
速度快慢从高到低依次为:
寄存器
高速缓存
内存
外存( 磁盘、磁带)
虚拟内存
定义
1. 基于局部性原理,在程序装入时,可以将程序中很快会用到的部分装入内存,暂时用不到的部分留在外存,就可以让程序开始执行了。
2. 在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。
3. 若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出外存。
4. 在操作系统的管理下,在用户看来似乎有一个比实际内存大得多的内存,这就是虚拟内存。
请求分页管理方式
1. 页表机制:
相比于基本分页管理方式新增4个字段:
状态位 P :用于指示该页是否已调入内存,供程序访问时参考。
访问字段 A :用于记录本页在一段时间内被访问的次数&