为什么要引用虚拟内存管理?
普通内存管理是一次性把程序加载完,而虚拟内存是请求分页加载,你需要的时候再加载
1.1 什么是虚拟内存
1.1.1 概念
具有请求调入和置换的功能,从逻辑上对内存容量加以扩充的一种存储器系统
1.1.2 局部性原理
时间局部性:在短时间内有可能对同一个数据进行操作。
空间局部性:不断地访问一个数组中的元素。
基于此,把这些反复访问的内容,放入到缓存中。缓存可以提高执行效率。
1.1.3 虚拟内存的特征
多次性:动态地,按需将程序加载到内存中。
对换性:进程不一定要常驻内存了,可以挂起,放在硬盘缓存中。
虚拟性:通过缓存技术使得我的内存看起来很大,其实是运用了缓存技术。
1.1.4 虚拟内存的实现
请求分页存储管理
请求分段存储管理
请求段页式存储管理
1.2 请求分页管理
1.2.1 页表机制
新增的四个字段
状态位P:0代表没有放入内存,那么也就没由块号。1代表放入到了内存。
访问字段A:整个页被访问了多少次
修改位M:这个页内中的数据是否被修改过
外存地址:在缓存中的位置
1.2.2 缺页中断机构
程序执行的时候,要访问的数据(页)没在内存中,所以会产生缺页中断。
将外存中的块加载到空闲的内存块中,并且更新请求分页。
同时根据页面置换算法,可以淘汰一些页,并更新请求分页。
1.2.3 地址变换机构
...........
1.3 页面置换算法
1.4 页面分配策略