동적 메모리 할당과 ptmalloc2 이해


동적 메모리 할당과 ptmalloc2 이해

이번에는 리눅스에서 동적으로 메모리를 관리(dynamic memory management)하는 부분에 대해 살펴봅니다. 메모리 관리라 함은 프로그램이 실행 도중 요청할 경우 운영체제가 메모리의 정해진 영역을 할당하고 해제하는 전반적인 과정을 일컬으며, 동적으로 일어지는 경우 동적으로 메모리를 할당(allocation)하고, 이를 다시 반환(free)해주는 두 가지 주요 과정을 포함합니다. 이렇게 메모리를 상황에 따라 각 프로세스에 제대로 배분해주는 도구를 Memory allocator라고 하는데, 이러한 메모리 사용은 프로그램 실행에 있어 필수적인 만큼 매우 자주 호출되어 사용되기 때문에 메모리를 할당하고 반납할때는 최대한의 속도와 성능을 보장하기 위해 특수한 알고리즘과 복잡한 시스템이 차용됩니다. 구글은 tcmalloc, 페이스북/파이어폭스(브라우저)는 jemalloc, 리눅스는 ptmalloc2 등 각자 다양한 Memory allocation 관리기법을 활용하고 있습니다. ptm...


#bins #pthread #ptmalloc2 #관리 #단편화 #동적할당 #리눅스 #메모리 #설명 #예제 #운영체제 #이론 #POSIX #컴퓨터시스템 #fragmentation #dynamic #locality #C언어 #consolidation #malloc #memory #C #FIFO #메모리구조 #GDB #heap #thread_safe #thread #multithreading #mutex

원문링크 : 동적 메모리 할당과 ptmalloc2 이해