코드를 작성할 때 malloc 사용하면 heap segment의 일정 부분이 할당됩니다. 프로세스의 세그먼트 일부분을 할당할 때 리눅스가 heap을 어떻게 핸들링하는지 알아보겠습니다. OS에서는 프로세스의 memory context를 구성하는 기본 단위를 세그먼트라고 부르는데 리눅스에서는 virtual memory area(VMA)라고 부릅니다. virtual memory area은 각 프로세스들이 갖는 logical address space에 존재하는 일정한 메모리 영역입니다. 이런 세그먼트를 사용자가 직접 만들 수 있는데 이때 system call mmap이 사용이 됩니다. 위 사진은 리눅스가 관리하는 유저 프로세스의 메모리 레이아웃을 도식화한 것입니다. 파란색 박스는 세그먼트, VMA로 보면 됩니다..