立即学习:https://edu.csdn.net/course/play/7883/161190?utm_source=blogtoedu
3.3 存储管理
存储管理主要是指对内存的管理,负责内存分配和回收,内存的保护和扩充.
- 存储管理的目的是尽量提高内存的使用效率.
内存的分配方式有两种
- 连续的分配方式
- 离散的分配方式
一.连续分配方式
指为一个用户程序分配一个连续的内存空间.
(1) 单一连续分配
(2) 固定分区分配
(3) 动态分区分配
为把一个新作业装入内存,需按照一定的分配算法,从空闲分区表或空闲分区链中选出一分区分配给该作业.
常用的分配算法:
a. 首次适应算法
b. 循环首次适应算法
c. 最佳适应算法
d. 最坏适应算法
内碎片和外碎片区别:
(4) 可重定位分区分配(解决外碎片问题)
如果在系统中只有若干了小分区,即使它们的容量总和大于要装入的程序,但由于这些分区不相邻,也无法将程序装入内存.
解决方法:将内存中的所有作业进行移动,使它们全部邻接,这样把原来分散的小分区拼接成大分区,这种方法称为"拼接"或"紧凑".(非常耗费CPU时间)
a.动态重定位的实现
在动态运行时装入的方式,将相对地址转换为物理地址的工作在程序指令真正要执行时才进行.地址转换需要重定位寄存器的支持.程序执行时访问的内存地址是相对地址与重定位寄存器中地址相加而成.
二.对换与覆盖技术
1.覆盖技术
一个作业的若干程序段或数据段的某些部分共享内存空间.
2.对换技术
把内存中暂时不能运行的进程或者暂时不用的程序和数据,调到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程和进程所需要的程序和数据调入内存.
对换的分类:
- 整体对换(或进程对换):以整个进程为单位
- 页面对换或分段对换:以页或段为单位
连续分配方式会形成"碎片",虽然可以通过"紧凑"解决,但开销大.如果允许将一个进程直接分散地装入许多不相邻的分区中,则无需"紧凑",由此产生离散分配方式.
分类:
- 分页存储管理方式:离散分配的基本单位是页
- 分段存储管理方式:离散分配的基本单位是段
三.基本分页存储管理方式
1.页面与页表
2.地址变换机构
1.页面
2.地址变换
3.基本分页式存储管理的实现