静态重定位特点
一个作业装入内存时,必须要给它分配要求的全部内存空间,若没有足够的内存,则不能装入该作业,一旦作业进入内存,整个运行期间就不能在内存中移动,也不能申请内存空间
动态重定位特点
可以将程序分配到不连续的存储区中,在程序运行之前可以只装入它的部分代码即可投入运行,然后在允许期间,根据需要动态申请内存分配
覆盖与交换
覆盖
将用户空间分为一个固定区和若干个覆盖区,将经常活跃的部分放在固定区,其余部分按调用关系分段。首先将那些将要访问的段放入覆盖区,其他段放在外存中,在需要调用前,系统再将其调入覆盖区,替换覆盖区中原有的段。
交换
把处于等待状态的程序从内存移到辅存,把内存空间腾出来,这一过程又称换出;把准备好竞争CPU运行的程序从辅存移到内存,这一过程称为换入
连续分配管理方式
单一连续分配
内存分为系统区和用户区,系统区仅供操作系统使用,用户区是为用户提供的,内存中只有一道程序,无须进行内存保护。
固定分区分配(内部碎片)
将用户空间划分为若干固定大小的区域,每个分区只装入一道作业,分区大小可以一样,也可以不一样
动态分区分配(外部碎片)
不预先划分内存,在进程装入内存时,根据进程的大小动态地建立分区,使分区地大小正好适合进程地需要。
- 首次适应算法:空闲区以地址递增地次序链接,分配内存时顺序查找,找到大小能满足要求的第一个空闲分区
- 最佳适应算法:空闲分区按容量递增的方式形成分区链,分配时按顺序查找,找到大小能满足要求的第一个空闲分区
- 最坏适应算法:与最佳适应算法相反,空闲分区按容量递减的方式形成区链,找到第一个能满足要求的空闲分区
- 循环首次适应算法:由首次适应算法演变,区别是分配内存时从上次查找结束的位置开始继续查找
非连续分配管理方式
基本分页存储管理方式
不会产生外部碎片,会产生比较小的内部碎片,从计算机的角度考虑
一级页表
二级页表
基本分段存储管理方式
从用户的角度考虑,每段的长度不固定,段号和段内偏移一定要显示给出,所以分段管理的地址空间是二维的。
段页式管理方式
先将地址空间分成若干逻辑段,每段都有自己的段号,然后再将每段分成若干大小固定的页。在一个进程中,段表只有一个,页表可以有多个。