内存管理

为了实现较小的内存空间运行较大的程序。采用以下两种策略
1 覆盖策略

 需要程序员在程序中实现程序的模块化,并且程序中要实现模块覆盖部分的代码。每次换出的为进程的一部分代码

2 交换策略

操作系统实现交换,程序员不需要考虑,以进程为交换单位,即每次换出的内存为一个进程的所有内容

交换与覆盖.jpg

不足

交换覆盖的不足.jpg

为了解决以上两者的不足,提出

虚存技术

虚存技术的目的

1 像 覆盖技术那样,不把程序的所有内容全部放到内存,并且还要实现操作系统自动完成覆盖,无需程序员考虑

2 像 交换技术那样,能够实现进程在内存与外存间交换,并且还要实现,进程的部分内容在内存与外存之间作交换。

基本概念

虚存的基本概念.jpg

基本特征

虚存的特征.jpg

分页内存页面结构.jpg

queyezhongduan.jpg

虚存技术的要求程序具有良好的局部性原理

程序的局部性原理

 指程序在执行过程的一个较短时期,所执行的指令地址和指令操作数地址,分别局限在一定区域

     

时间局部性 

 一条指令的执行和下一次执行,一个数据的访问和下一次访问都集中在一个较短的时期内

   

空间局部性指

   当前指令和邻近的指令,当前指令访问的数据,和邻近的指令访问的数据都集中在一个较小的区域内

程序局部性原理实例.jpg

磁盘中的文件 与 内存中的页之间的映射关系

后备存储.jpg

SWAP分区 的作用

应用程序在运行过程中,产生的数据,没有所映射的磁盘文件,那么当发生页面置换的时候,这些数据被置换出内存时,就会放到SWAP分区。