a,b,c,d.....分别代表时间,从最早往后面。
白色区域表示空闲内存。灰色区域表示进程占据的内存,蓝色区域表示操作系统占据的内存,这部分是固定好的。
看内存碎片的发展过程:
a图表示,假设内存目前有56m的内存空间。到了b图,有个进程占了20m的内存,现在还剩下36m了。到了d图,新的进程占据内存,只剩下4m。
c,f图,有的进程释放掉内存空间,腾出来了。腾出来的空间被其他进程可以申请。随着时间的推移,到后面就会有空隙的内存,无法使用。
比如h图显示,中间有空隙的6m,6m,4m。假设一个进程目前需要10m空间。那么现在根本找不到连贯的内存空间可以用。相当于这部分内存是没有使用的,像碎片一样(比如玻璃碎片,不是整块的,没法拿来使用),这些内存碎片是浪费掉的。
理解了内存碎片,也方便理解磁盘碎片了。都是碎片,只不过是磁盘,而不是内存。