메모리 구조

Intro

  • 메모리 구조에 대한 이해

메모리의 구조

프로그램이 실행되려면 메모리에 로드되어야 하며

필요한 변수들을 저장할 메모리도 필요하다.

운영체제에서 제공하는 메모리 공간은 다음과 같다.

me

코드(Code) 영역

코드 영역은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 한다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리한다.

데이터(Data) 영역

데이터 영역은 프로그램의 전역 변수와 정적 변수가 저장되는 영역이다. 프로그램 시작과 함께 할당되며 프로그램 종료와 함께 소멸한다.

스택(Stack) 영역

스택 영역은 함수의 호출과 관계되는 지역 변수와 매개 변수가 저장되는 영역이다. 함수의 호출과 함께 할당되며, 호출이 완료되면 소멸한다.

스택 영역에 저장되는 함수의 호출 정보를 스택 프레임(Stack Frame)이라 한다.

push 동작으로 데이터를 저장하고, pop 동작으로 인출하며 후입선출(LIFO) 방식에 따라 동작한다.

스택 영역은 메모리의 높은 주소에서 낮은주소로 할당된다.

힙(Heap) 영역

힙 영역은 사용자가 직접 관리 할 수 있는 영역이다.

사용자에 의해 메모리 공간이 동적 할당되고 해제된다.

힙 영역은 낮은 주소에서 높은 주소로 할당된다.

보충

힙 영역과 스택 영역이 서로 만나게되면 메모리가 부족한 상태가 된다.

참고 자료

http://myblog.opendocs.co.kr/archives/1301

http://tcpschool.com/c/c_memory_structure

태그: ,

카테고리:

업데이트:

댓글남기기