OS · MEMORY

malloc/free 내부 흐름

malloc은 요청 크기에 맞는 free block을 찾고, 없으면 OS에서 더 큰 영역을 받아 쪼개 쓰며, free는 블록을 반환해 재사용 후보로 만듭니다.

할당 흐름

allocator
request size프로그램이 바이트 수 요청
free list맞는 빈 블록 탐색
split/return큰 블록을 나눠 포인터 반환
free/coalesce반환 블록을 합쳐 재사용
request sizefree listsplit/returnfree/coalesce

주의 지점

check
단편화작은 할당과 해제가 반복되면 빈 공간이 쪼개집니다.
확장내부 공간이 부족하면 brk/mmap 등으로 OS에 요청합니다.
이중 해제이미 반환한 포인터를 다시 free하면 메모리가 깨질 수 있습니다.
누수free하지 않은 블록은 프로세스가 끝날 때까지 남습니다.