虚拟内存
最后更新于:2022-04-02 04:05:34
[TOC]
## 问题
一个游戏十几G,物理内存只有4G,那这个游戏是怎么运行起来的?
> 答:通过虚拟内存
## 虚拟内存概述
1. 有些进程实际需要的内存很大,超过物理内存的容量
2. 多道程序设计,使得每个进程可用物理内存更加稀缺
3. 不可能无限增加物理内存,物理内存总有不够的时候
4. 虚拟内存是操作系统内存管理的关键技术
5. 使得多道程序运行和大程序运行成为现实
6. 把程序使用内存划分,将部分暂时不使用的内存放置在辅存
![51E0537D-06CB-4E44-969D-D4E341965807.png](http://img03.sogoucdn.com/app/a/100520146/17b196a7a8f8e099462f4293bd2c7974)
## 程序的局部性原理
**局部性原理**是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。
- 程序运行时,无需全部装入内存,装载部分即可
- 如果访问页不在内存,则发出缺页中断,发起页面置换
- 从用户层面看,程序拥有很大的空间,即是虚拟内存
## 虚拟内存的置换算法
1. 先进先出算法(FIFO)
2. 最不经常使用算法(LFU)
3. 最近最少使用算法(LRU
### 与高速缓存的区别
#### 替换时机不同
**高速缓存替换时机**
![7388C51E-5507-4DA9-AAC6-0DAF5834FD42.png](http://img04.sogoucdn.com/app/a/100520146/931cfb9625a41438d08a72fcf522e2d3)
**主存页面的替换时机**
![ABF294A2-634E-4504-BAC4-24109C44F01E.png](http://img04.sogoucdn.com/app/a/100520146/c89c7530115e4145c09b8d9ec70476ce)
#### 目的不同
**高速缓存**
Cache-主存层次的替换策略主要是为了解决速度问题
**主存页面**
主存-辅存层次主要是为了解决容量问题
';