본문 바로가기
Programming/알쓸신잡

메모리 구조 [코드, 데이터, 힙, 스택 영역](Memory Structure)

by 말린밴댕이_공부 2022. 11. 11.
반응형

메모리 영역

우리가 아는 OS에서 메모리 영역은 코드(code), 데이터(data), 힙(heap), 스택(stack) 영역으로 나눠진다.

 

  • 코드
    • 프로세스가 실행할 코드와 매크로 상수가 기계어의 형태로 저장된 공간. 중간에 바꿀 수 없게 read-only라는 특징이 있다.
  • 데이터 영역
    • 코드에서 선언한 전역변수 또는 static변수 등등이 저장된 공간. 실행 도중에 변경이 될 수 있어서 read-write로 지정되어 있다.
    • 프로그램의 시작과 동시에 메모리에 할당되고, 프로그램이 종료되면 메모리에서 소멸이 된다.
  • 힙 영역
    • 우리가 흔히 사용하는 malloc, calloc으로 heap영역의 메모리를 사용한다. 할당을 통해서 진행을 하는데 해제를 진행해줘야 메모리 누수를 방지할 수 있다.
    • 선입선출(FIFO)의 방식 , 높은 주소에서 낮은 주소의 방향으로 할당
  • 스택 영역
    • 프로세스의 메모리 공간을 관리하기 위한 알고리즘 중 하나. 변수, 주소 등이 저장이 되고 함수 호출시 기록하고 종료되면 제거가 된다.
    • stack영역을 초과하게 되면 stack overflow에러가 발생하는 특징과 크기에 제약이 있다.
    • 메모리의 낮은 주소에서 높은 주소의 방향으로 할당
반응형

댓글