메모리 구조 정리

노영진·2023년 11월 9일

RAM (Random access memory

  • 자유롭게 내용을 읽고 쓰고 지울 수 있는 기억 장치
  • 현재 사용 중인 프로그램이나 데이터가 저장되어 있음
  • 전원이 차단되면 내용이 지워지는 휘발성 기억 장치
  • 일반적으로 주기억장치 또는 메모리라고 불림

메모리 구조

프로그램이 실행되면 운영체제는 메모리에 공간을 할당해줍니다.

Stack

  • 함수 호출과 관련 있는 변수 등이 저장되는 공간
  • 컴파일 시점에 크기가 결정됨
  • 할당받은 메모리의 높은 주소부터 낮은 주소 방향으로 데이터가 저장된다. (PUSH - 스택포인터 주소 감소, POP - 스택포인터 주소 증가)
  • 재귀 호출 시 함수가 종료되지 않고 변수들이 계속 할당되면 Stack 영역을 벗어날 수 있음 - 스택 오버플로

Heap

  • 개발자가 직접 할당하고 해제가 가능함
  • 메모리 사용 후 메모리 해제를 하지 않으면 메모리 누수 발생
  • 낮은 주소부터 높은 주소 방향으로 할당됨
  • Stack 영역을 침범하면 Heap overflow 발생

Data

프로그램이 시작하면 할당되고, 프로그램이 종료되면 해제된다. 초기화된 전역 변수와 정적 변수가 저장되는 공간이다.

Code

프로그램의 소스코드가 기계어 형태로 저장된다.

0개의 댓글