메모리 영역

http://cantoluna.egloos.com/tag/메모리구조/page/1
위 링크에서 퍼온 자료.

메모리구조



하나의 프로그램을 만들었을 때, 그것이 어떤 식으로 메모리에 들어가는지 궁금했었는데
이 자료를 통해서 많은 이해를 하게 되었습니다.
http://cafe.naver.com/onlygame/9116 에서 퍼왔습니다.
답글이 안달아져서 그냥 가져왔는데~ 이거 괜찮을래나 모르겠네요 ^^;

1 Text (텍스트영역)


program코드 (cpu에 의해 수행되는 기계어 명령어들이 모여있는 곳)


 


2 Data(데이터영역)


전역변수와 정적(static)변수가 할당된 곳. 프로그램 시작과 동시에 할당되고 프로그램이 종료되어야 메모리에서 소멸된다.


(1) initialized data segment(초기화된 데이터영역) : initialized variables (초기화된 데이터들)


(2) uninitialized data segment(비초기화된 데이터영역) : uninitialized variables (비초기화된 데이터들) – BBS(block started by symbol)이라고도 함


 


3 Stack(스택영역)


automatically allocated variables(local variables) and other stack frame entries


지역변수와 매개변수가 저장되는 곳. 이 영역에 할당된 변수는 함수 호출이 끝나면 사라진다.


컴파일 타임 크기 결정


 


4 Heap(힙영역)


dynamically allocated variables


동적 메모리 할당하는 곳. 프로그래머가 할당 및 해제를 해주어야 한다.


런타임 크기 결정

구조도


Leave a Reply