内部碎片和外部碎片的区别
操作系统中有两种类型的碎片,即内部碎片和外部碎片。
1、内部碎片化:
当内存被分成安装大小的块时,就会发生内部碎片。每当请求内存的方法时,都会将已安装大小的块分配给该方法。在分配给方法的内存比请求的内存稍大的情况下,分配的内存和请求的内存之间的差异称为内部碎片。
上图清楚地显示了内部碎片,因为分配的内存与所需空间或内存之间的差异称为内部碎片。
2. 外部碎片:
当内存中有足够数量的区域来满足方法的内存请求时,就会发生外部碎片。但是,由于提供的内存是不连续的,因此无法满足进程的内存请求。无论您应用最适合还是最适合的内存分配策略,它都会导致外部碎片。
在上图中,我们可以看到,有足够的空间(55 KB)来运行一个 process-07(需要 50 KB),但内存(片段)不是连续的。在这里使用压缩、分页或分段来使用可用空间来运行进程。
内部碎片和外部碎片的区别:
编号 | 内部碎片 | 外部碎片 |
---|---|---|
1 | 在内部分片固定大小的内存中,分块被指定处理。 | 在外部碎片中,可变大小的内存块被指定给方法。 |
2 | 当方法或进程小于内存时,会发生内部碎片。 | 删除方法或进程时会发生外部碎片。 |
3 | 内部碎片的解决方案是最佳拟合块。 | 外部碎片的解决方案是压缩和分页。 |
4 | 内存被划分为固定大小的分区时会发生内部碎片。 | 当内存根据进程的大小划分为可变大小的分区时,就会发生外部碎片。 |
5 | 分配的内存与所需的空间或内存之间的差异称为内部碎片。 | 不连续的内存碎片之间形成的未使用空间太小,无法为新进程服务,这称为外部碎片。 |
6 | 内部碎片发生在分页和固定分区上。 | 外部碎片发生在分段和动态分区中。 |
7 | 内部碎片发生在将进程分配到大于进程要求的分区时。剩余空间会导致系统性能下降。 | 外部碎片发生在将进程分配给更大的分区时,该分区与所需的内存空间完全相同。 |
8 | 内部碎片发生在最差的内存分配方法中。 | 外部碎片以最佳拟合和首次拟合内存分配方法发生。 |