虚拟内存-逻辑地址,物理地址,分段,分页

早期的计算机内存使用:

  直接使用物理地址,如果多个程序都放入内存中会引发很多问题:

  1.进程之间地址不隔离,容易互相修改,引发安全问题 2. 内存效率太低,因为进程是随机分配地址,所以零散的空间不能合并起来利用 3.程序运行地址不确定

 

分段-------为了解决地址隔离以及地址不确定的问题

分段---中间层,也就是间接寻找物理地址,即虚拟内存(引入逻辑地址)

为每个进程分配一个虚拟的4GB空间

此时分段还是将一整个程序导入内存中使用,时间空间效率都底下

 

分页则可以只导入要使用的部分(页)

重点还分页:请求页(怎能请求页面),置换页(该换谁怎么换),页面分配(一次要读多少页)

请求页有点看不懂

页面置换算法:

最佳置换算法:(无法实现只能作为参考),淘汰以后都不用或者长时间不用的页面

先进先出算法

最近最久未使用置换算法:加载进来的页面,每个都有个时间标记,记录自从上次被访问到现在的时间

时钟置换算法:第一次进来的全置为1,之后被访问到的时候也置为1,寻找0的页面,其中遇到的1都置为0,某一页被替换时指针指向下一帧,

页面分配策略:

驻留集大小(调入多少页)

调入页面的时机:1.预测调页(猜测可能哪个用的多,由程序员控制用于进程首次调入),2.请求调入(运行期间需要的时候请求调入)

外存分为文件区与对换区(用来进程页面调用的),文件区零散分布,对换区连续分布所以快

从何处调入页面:1.系统对换区空间足够:只使用对换区调用,2.系统对换区空间不足:不修改的使用文件区,需要修改的使用对换区

posted @ 2021-03-07 16:55  爱晒太阳的懒猫。。  阅读(194)  评论(0编辑  收藏  举报