【c++】【Linux】内存碎片

【c++】【Linux】内存碎片

内碎片

分配给进程未被使用的部分
当内存被分配给某个进程时,分配的内存块可能比实际需求稍大,未被使用的部分称为内碎片
例如,
如果需要3.6k内存 此时根据buddy伙伴系统内存分配方式 最少分配4k为一页 那其中0.4k未被使用的内存就是内碎片
如果使用malloc里面的brk()分配内存,随着系统频繁地 malloc 和 free ,尤其对于小块内存,堆内将产生越来越多不可用的碎片

外碎片

操作系统中无法利用的小内存
在系统中,由于内存分配和释放的不连续性,留下了许多零散的、无法利用的小块内存,这些小块内存加起来尽管足够,但无法分配给较大的进程。
例如,一个 4 KB 的进程释放了内存,但在其两端都是被占用的内存块,导致无法分配给需要更大连续空间的进程。

你可能感兴趣的:(Linux,c++,linux,服务器)