Computer Science/Common

메모리 구조

JunOnJuly 2023. 10. 29. 22:37
728x90

메모리 구조


개념

프로그램이 실행되기 위해서는 프로그램이 메모리에 로드되어야 합니다. 또 프로그램에서 사용되는 변수들을 저장할 메모리도 필요합니다. 이를 위해 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공합니다. 대표적인 메모리 공간은 네 영역으로 나눌 수 있습니다.

 

코드(code) 영역
데이터(data) 영역
스택(stack) 영역
힙(heap) 영역

이 영역을 그림으로 표현하면 오른쪽과 같습니다.

 

코드 영역

코드 영역은 실행할 프로그램의 코드가 저장되는 영역입니다. 또 텍스트 영역이라고도 부릅니다. 코드 역역에 저장된 명령어는 CPU 에 의해 하나씩 처리됩니다.

데이터 영역

데이터 영역은 프로그램의 전역 변수와 정적 변수가 저장되는 영역입니다.

프로그램의 시작시 할당되며, 프로그램의 종료시 사라집니다.

스택 영역

메모리의 스택 영역은 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역입니다. 함수의 호출시 할당되며 함수의 종료시 소멸합니다. 스택 영역에 저장되는 함수의 호출 정보를 스택 프레임 이라고 합니다. 스택 영역은 메모리의 높은 주소에서 낮은 주소의 방향으로 할당됩니다.

힙 영역

메모리의 힙 영역은 사용자가 직접 관리해야하는 영역입니다. 사용자에 의해 메모리 공간이 동적으로 할당되거나 해제됩니다. 힙 영역은 메모리의 낮은 주소에서 높은 주소의 방향으로 할당됩니다.

 

참고 링크 https://www.tcpschool.com/c/c_memory_structure

728x90