CS

프로세스 메모리(스택, 힙, 데이터 영역, 코드 영역) 구조 개념 및 특징

cob 2023. 1. 13. 08:28

 

프로세스 메모리 

 

 

프로세스 메모리 구조

  • 스택은 위 주소부터 할당되고, 힙은 아래 주소부터 할당된다.

 

 

 


1. 스택(Stack)

  • 동적인 특징을 가진다.
  • 지역변수, 매개변수, 함수가 저장된다
  • 컴파일 시에 크기가 결정된다.
  • 함수가 함수를 재귀적으로 호출하게 되면 동적으로 크기가 늘어날 수 있는데, 이때 힙과 스택의 메모리 영역이 겹치면 안 되기 때문에 힙과 스택 사이의 공간을 비워 놓는다.

 

 


2. 힙(Heap)

  • 동적인 특징을 가진다.
  • 런타임 시에 크기가 결정되고 동적 할당할 때 사용된다. ex) 벡터 같은 동적 배열은 힙에 동적 할됭된다.

 

 

 


3. 데이터 영역

  • 전역변수, 정적변수가 저장된다.
  • 정적인 특징을 갖는 프로그램이 종료되면 사라지는 변수가 들어있다.
  • 데이터 영역은 BSS영역과 Data 영역으로 나뉜다.
    - BSS 영역 : 초기화가 되지 않은 변수가 0으로 초기화되어 저장된다.
    - Data 영역 : 0이 아닌 다른 값으로 할당된 변수들이 저장된다.

 

 


4. 코드 영역

  • 정적인 특징을 가진다.
  • 프로그램에 내장되어 있는 소스 코드가 들어가 있는 영역이다.
  • 수정 부가능한 기계어로 저장되어 있다.
반응형