1、虚拟内存概述

  • 有些进程实际需要的内存很大,超过物理内存的容量
  • 多道程序设计,使得每个进程可用物理内存更加稀缺
  • 不可能无限增加物理内存,物理内存总有不够的时候
  • 虚拟内存是操作系统内存管理的关键技术
  • 使得多到程序运行和打程序运行成为现实
  • 把程序使用内存划分,将暂时不使用的内存放置在辅存中

20211226143838.png

  • 逻辑空间
    • 程序在磁盘中不是以连续的方式存储的,逻辑空间就是这些不连续的地址空间组合起来形成的逻辑上的完整程序的全部数据
    • 物理主存从这个逻辑空间中获取想要的数据

2、程序的局部性原理

局部性原理是指CPU访问存储器时,无论是==存取指令==,还是==存取数据==,所访问的存储单元都==趋于聚集在一个较小的连续区域中==。

  • 程序运行时,无需全部装入装入内存,装载部分即可
  • 如果访问页不在内存,则发出缺页中断,发起页面置换
  • 从用户层面看,程序拥有很大的空间,即是==虚拟内存==

==虚拟内存实际是对物理内存的补充,速度接近于内存,成本接近于辅存==

3、虚拟内存的置换算法

  • 先进先出算法(FIFO)
  • 最不经常使用算法(LFU)
  • 最近最少使用算法(LRU)

3.1、主存页面的替换时机

20211226143852.png

  • 替换策略发生在Cache-主存层次、主存-辅存层次
  • Cache-主存层次的替换策略主要是为了解决==速度问题==
  • 主存-辅存层次主要是为了解决==容量问题==