malloc은 빈 블록을 찾고 free는 다시 합친다
작은 요청은 allocator의 bin에서 처리하고, 큰 요청은 mmap 같은 별도 경로를 쓰며, free는 인접 빈 블록을 합쳐 단편화를 줄인다.
request
size class
요청 크기 정렬
find
free list/bin
맞는 블록 선택
place
split
남는 공간 분리
free
coalesce
인접 빈 블록 병합
동작
좋은 신호
나쁜 신호
reuse
기존 빈 블록 사용
fragmentation 증가
split
필요 크기만 할당
너무 작은 조각
coalesce
큰 빈 블록 회복
메타데이터 손상
mmap
큰 객체 분리
system call 증가