动态分区分配
动态分区分配又称为可变分区分配。这种分配方式不会预先划分内存分区,而是在进程装入内存时,根据进程的大小动态地建立分区,并使分区的大小正好适合进程的需要。因此系统分区的大小和数目是可变的。(eg: 假设某计算机内存大小为 64 MB, 系统区 8 MB, 用户区共 56 MB.)
我们需要考虑下述三个主要问题:
- 系统要用什么样的数据结构记录内存的使用情况?
- 当很多个空闲分区都能满足需求时,应该选择哪个分区进行分配?这个问题就是动态分区分配算法解决的问题。
- 如何进行分区的分配和回收?在回收的时候,注意若存在的相邻的空闲区,需要进行合并操作。
如果内存中空闲空间的总和本来可以满足某进程的要求,但由于进程需要的是一整块连续的内存空间,因此这些“碎片”不能满足进程的需求。