pmap 명령어/proc/<PID>/status/proc/<PID>/maps아래는 32비트 리눅스에서의 프로세스 메모리 구조

코드가 적재되는 영역이다. 프로그램 실행 코드 즉, 기계어가 올라가는 영역으로 어플리케이션 수행시 임의로 이 영역에 데이터를 쓰려고 하면 메모리 접근 위반 에러가 발생함
전역 변수가 적재되는 영역. 전역 변수(global variable)와 정적 변수(static variable), 초기화된 배열이 사용하는 영역으로 DATA와 BSS로 나뉜다.
DATA 영역은 다시 상수(constant)와 printf와 같은 곳에서 사용하는 포맷 문자열 같은 것들이 저장되는 읽기 전용 영역과 초기화된 전역 변수가 저장되는 읽기/쓰기가 가능한 영역으로 나뉜다.BSS(Block Started by Symbol) 영역은 초기화되지 않은 전역 변수나 정적 변수가 저장되는 영역으로, main 함수를 실행하기 전에 NULL(0)로 초기화된다.동적으로 메모리를 할당해서 사용하는 영역. 프로그램에서 malloc과 new, free, delete 등으로 동적으로 메모리를 할당하고 해제하는 경우에 사용하는 메모리 영역이다. TEXT와 DATA영역에서 주로 메모리 액세스 위반 에러가 발생한다면 힙 영역에서는 메모리 사용후 적절히 해제하지 않으면, 메모리 사용량이 점진적으로 증가하는 메모리 누수가 발생한다.
프로세스나 스레드 수행 시 함수 호출에 사용되는 영역이다. 프로그램의 수행은 함수 호출을 통해 이뤄지는데, 함수 호출 시 사용되는 지역변수와 매개변수, 함수 종료 시 복귀 주소가 여기에 저장된다. 함수가 종료되면 해당 함수에서 사용하던 메모리는 반환한다. 이 영역은 어플리케이션 수행 시 자동으로 NULL로 초기화되지 않는다.