问答题 在内存管理中,内部碎片和外部碎片各指的是什么?在固定式分区管理、可变式分区分配、页式虚拟存储系统、段式虚拟存储管理中,各会存在何种碎片?为什么?
【正确答案】对于这类题,可以在草稿纸上模拟一下各种分配方式。简单地分配出去几块,再回收几块,看看是否会出现剩余的内存区域满足不了新的申请的情况,如果有那就说明有外部碎片,如果没有就说明有内部碎片,因为不是有外部碎片就是有内部碎片,不可能都没有。 在内存管理中,内部碎片就是已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间;外部碎片指的是还没有被分配出去(不属于任何进程),但由于大小太小而无法分配给申请内存空间的新进程的内存空闲区域。 固定分区管理会存在内部碎片,因为固定分区管理的每一个分区大小固定且分配给指定的进程,所以整个分区都属于一个进程,但如果进程比分区小,就会留下无法利用的空间。 可变式分区分配会存在外部碎片,因为每个分区大小不固定,所以不可能分配给一个进程多余的空闲区域,但是由于进程需要一段连续的空闲区域,而内存中小的空闲区域可能满足不了进程的需求,就成了无法分配出去的外部碎片。 页式虚拟存储系统会存在内部碎片,因为页的大小是固定的,每个进程的大小不会都刚好是页大小的整数倍,所以进程的最后一页往往都会存在一些已经分配给该进程但无法利用的空间。 段式虚拟存储管理会存在外部碎片,因为一个段的分配需要连续的区域,而段长又不固定,所以内存中会存在一些小的空闲区域不能分配给任何一段,就成了无法分配出去的外部碎片。
【答案解析】