메모리의 구조

황승현·2023년 12월 20일
0

메모리의 구조

  • 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드(load)되어야 한다.

  • 프로그램에서 사용되는 변수들을 저장할 메모리가 필요하다.

컴퓨터의 운영체제(OS)는 프로그램의 실행을 위해서 다양한 메모리 공간을 제공한다.

코드(code) 영역 - 텍스트(code) 영역

  • 프로그램의 코드가 저장되는 영역

  • CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리

데이터(data) 영역

  • 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역

  • 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸

스택(stack) 영역

  • 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역

  • 스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸

    • 스택 프레임(stack frame) : 스택 영역에 저장되는 함수의 호출 정보를 의미
  • 푸시(push) 동작으로 데이터를 저장하고, 팝(pop) 동작으로 데이터를 인출(데이터를 가져온다.)

  • 후입선출(LIFO, Last-In First-Out) 방식에 따라 동작

    • 가장 늦게 저장된 데이터가 가장 먼저 인출 ※ 늦게 들어갈수록 빨리 나온다.
  • 스택 영역은 메모리의 높은 주소에서 낮은 주소의 방향으로 할당됨

힙(heap) 영역

  • 사용자가 직접 관리해야 하는 메모리 영역

  • 사용자에 의해 메모리 공간이 동적으로 할당되고 해제

  • 힙 영역은 메모리의 낮은 주소에서 높은 주소의 방향으로 할당됨

참고자료

https://tcpschool.com/c/c_memory_structure

0개의 댓글