目录

https://blog.csdn.net/weixin_45792450/article/details/109314765


内存管理概述

存储层次结构

总结 内存管理

内存保护的方法

上下限寄存器

在CPU中设置上下限寄存器,用于分别存放作业在主存中的上限和下限地址

界地址寄存器

界地址寄存器存有进程的最大逻辑地址,若不越界,加上重定位寄存器(存有进程的起始物理地址)的值即为物理地址

程序装入内存细节

编译
链接
装入


分区存储管理

分类

固定式分区:程序适应分区
可变式分区:分区适应程序

固定式分区的内存分配

单一队列分配方式
总结 内存管理

多队列分配方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zHno74Uf-1605840204431)(https://markdown-1300303058.cos.ap-chengdu.myqcloud.com/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/%E6%80%BB%E7%BB%93/clipboard_20201120_093234.png)]

区别:多队列方式考虑了程序大小与分区大小的匹配

可变式分区的内存分配

总结 内存管理

总结 内存管理

说明
首次适应与下次适应算法:搜索可用空间的代价
最佳适应与最坏适应算法:分配后残余碎片大小
固定式分区分配有内碎片;可变式分区有外碎片

覆盖技术

总结 内存管理

交换技术

总结 内存管理


页式存储管理

基本概念

总结 内存管理

地址结构

总结 内存管理

总结 内存管理

地址变换

总结 内存管理

总结 内存管理

多级页表

总结 内存管理

说明:对两级页表,顶级页表的作用就是为了查表得出次级页表的地址,然后从次级页表中找到需要页号-存储块映射关系(若次级页表不在内存中,将有调入页表的操作)

快表

总结 内存管理

总结 内存管理


段式存储管理

地址结构

总结 内存管理

总结 内存管理

地址变换

总结 内存管理


段页存储管理

总结 内存管理

总结 内存管理

总结 内存管理


虚拟页式管理

局部性原理

时间局部性
空间局部性

请求调页过程

  • 状态位P:指示该页是否调入内存
  • 访问字段A:记录访问频次,供页面置换算法参考
  • 修改位M:标识该页在调入内存后是否被修改
  • 外存地址:用于指出该页的外存地址

如果进程在运行中发生缺页现象,需要进入缺页中断机构进行处理,请求操作系统将所缺页面调入内存。此时进程被阻塞,等待调页完成时的唤醒。

缺页中断与一般中断有两个明显区别:

  1. 缺页中断在指令执行期间产生和处理中断信号,而非一条指令执行完成后,属于内中断
  2. 一条指令执行期间,可能产生多次缺页中断

工作集模型

抖动

在页面置换过程中,如果出现了刚刚换出的页面又要调入内存,刚刚换入的页面要调出内存的情况,这种频繁的页面调度行为就称为抖动。如果经常发生抖动,势必会造成处理机资源的浪费,大大降低系统效率。

工作集理论

工作集是进程活跃地访问页面的集合,为使程序有效地运行,工作集必须放在主存中,否则会发生抖动现象,进行过度的页面调度活动。

工作集模型原理:让操作系统跟踪每个进程的工作集,并为进程分配大于其工作集的物理块。如果还有空闲物理块,则可以再调入一个进程增加多道程序数,如果所有工作集之和增加到超过可用物理块,那么操作系统会暂停一个进程,将其页面调出并将物理块分配给其他进程,防止出现抖动现象。


页面置换算法

最优置换(optimal page-replacement,OPT)

从主存中移出永远不再需要的页面,如无这样的页面存在,则应选择最长时间不需要访问的页面。这种方法可用保证最低的缺页率,但是实际中准确预测页面使用情况是很困难的,这种方法无法实现。

总结 内存管理

先进先出(First-in, First-out,FIFO)

总结 内存管理

总结 内存管理

最近最少使用(Least recently used,LRU)

总结 内存管理

时钟置换算法(CLOCK)

总结 内存管理

相关文章: