内部碎片和外部碎片

内部碎片:
固定分区存储管理会产生内部碎片
补充概念:
固定分区存储管理将主存发划分为系统区和用户区,系统区存放操作系统驻留代码和数据,用户区划分为若干个连续区域,每个区域的位置固定,大小可以相同也可以不同,但是每个区域在任意时刻只能装入一道作业,一旦划分好区域,主存中的分区个数就固定了.
当我们在10KB大小的一个分区中装入8KB大小的程序时,此时的分区有2KB被浪费掉了,而且由于每个分区只能装入一个程序,所以这2KB大小的空间也不能被其他的程序使用,此时我们可以说产生了2KB的内部碎片.
当内部积累到一定程度时,将严重影响主存空间的利用率个系统的运行效率

外部碎片:
可变分区存储管理可能产生外部碎片
在可变分区存储管理中,主存中的分区不是事先划分好的,而是在主存空间充足时,根据该作页需要的空间大小分配一个分区给他,实现了作业大小等于分区大小,解决了内部碎片的问题
那么,作业大小等于分区大小为什么还会产生碎片呢?
来看一个例子:
224917.png

上图的四个分区中有三个正在被使用,一个未被使用,那么当我们要装入大小为12KB的作业时,系统会为我们在15KB的空闲区中划分出一个12个KB大小的分区,这样这个15KB大小的分区就变成了一个12KB大小的分区和一个3KB大小的分区,12KB大小的分区被作业占用了,3KB大小的分区因为太小所以能容纳的作业太少,所以被占用的可能性也很小,很多个这种小的内存空间长时间不被占用就是一种对内存空间的浪费,我们称之为外部碎片

内部碎片和外部碎片本质上都是对内存空间的浪费,区分二者的最主要特征就是:内部碎片产生于分区内,外部碎片产生于分区外,内外是相对于分区而言的
内部碎片产生的原因:
在固定分区中,固定分区的大小大于等于作业大小,当分区大小大于作业大小时就会产生不能被其他作业利用的碎片,称为内部碎片
在固定分区存储管理中,10KB大小的分区装入8KB大小的作业,分区内产生了2KB大小的内部碎片.
外部碎片产生的原因:
在可变分区存储管理中,系统划分给作业的分区大小等于作业大小,在分区内就不会产生多余的空间,但是在分区外就可能产生小的内存碎片,因为太小不能被分配给作业,小的碎片长期积累浪费了大量的内存空间,我们称之为外部碎片