프로세스 주소 공간



구조

프로세스 주소 공간 구조

code (text) 영역

  • CPU가 해석 가능한 기계어 형태로 프로그램 코드가 저장되어 있는 공간
  • Read-Only (프로그램 수정 방지)
  • 같은 프로그램으로 실행된 여러 프로세스는 동일한 코드


data 영역

  • 코드가 실행되면서 사용하는 전역 변수, 정적 변수 데이터가 저장되어 있는 공간
  • 프로그램 시작과 함께 할당, 프로그램 종료 시 소멸


stack 영역

  • 지역 변수, 매개변수 등 호출한 함수가 종료되면 되돌아올 임시적인 자료를 저장하는 독립적인 공간
  • 함수 호출과 함께 할당, 함수 호출 완료 시 소멸
  • 메모리의 높은 주소 → 낮은 주소로 할당
  • 함수가 stack 영역을 초과하면 stack overflow 에러 발생


heap 영역

  • 생성자, 인스턴스와 같이 동적으로 할당되는 데이터들을 저장하는 공간
  • 런타임에 따라 크기 결정
  • 동적으로 할당 / 해제
  • 메모리의 낮은 주소 → 높은 주소로 할당