内存管理
对内存的划分和动态分配
功能
内存空间的分配与回收
地址转换
内存空间的扩充
存储保护
1、程序装入和链接
编译->链接->装入
程序链接的三种方式
静态链接
装入时动态链接
运行时动态链接
装入的三种方式
绝对装入
重定位装入
动态运行时装入
逻辑地址空间与物理地址空间
逻辑地址空间:每个模块从0号单元开始编制
物理地址空间:物理单元的集合,地址重定位
内存保护
1、设置上下限寄存器,,CPU要访问时,与两个寄存器相比,判断有无越界
2、重定位寄存器(最小物理地址)
和 界地址寄存器(逻辑地址最大值)
重定位寄存器 加的
逻辑地址+重定位寄存器的值=物理地址
界地址寄存器是用来 比的
与逻辑地址的值来判断是否越界
覆盖与交换
扩充内存
1、覆盖
同一程序或进程
一个固定区,若干覆盖区
将要访问的段->覆盖区
活跃部分->固定区
其他->外存
特点:更新的地方只有覆盖区
不在覆盖区的段会常驻内存
2、交换
不同进程
等待状态的程序内存移入辅存 换入,换出
有关交换需要注意:
需要备份存储
执行时间比交换时间长,转移时间与交换内存时间成正比
换出要完全空闲
交换空间使用快
覆盖成为历史,交换有很大生命力
连续分配管理方式
分配一个连续的内存空间
1、单一连续分配
系统区和用户区
无需内存保护
优点:简单,无外部碎片,可采用覆盖技术
缺点:单用户,单任务,存储器的利用率低
2、固定分区分配
简单多到程序存储方式
分为若干固定大小的区域
分区大小相等:缺乏灵活性
区分大小不等:程序可能太大。而放不进任何一个内存
小,也占用一个完整内存分区
无外部碎片,但不能实现多进程共享一个主存区
动态分区分配
进程转入内存时,根据进程大小动态建立分区
算法:
首次适应
最佳适应
最坏适应
邻近适应