Untitled

메모리는 code(text), data, heap, stack 영역으로 구성되어 있습니다.

Code 영역

실행할 프로그램의 코드가 저장된다. CPU는 이 영역에서 명령어를 하나씩 가져와서 처리한다.

Data 영역

전역변수정적변수가 저정된다. 이 변수들은 프로그램이 시작될 때 할당되어 프로그램 종료 시 소멸된다.

BSS(Block Stated Symbol): 이 영역에는 초기화 되지 않은 전역변수가 저정된다. 초기화 된 전역변수는 Data영역에 저장되어 비휘발성 메보리인 ROM에 저장되는데 이 부분은 비용이 많이 들어 RAM에 저장될 것과 ROM에 저장될 것을 구분하기 위해 영역을 구분해 사용한다.

Heap 영역

프로그래머가 필요할 때마다 사용하는 동적 데이터 영역이다. heap 영역은 런타임에 결정된다.

stack 영역

지역변수, 매개변수, 리턴값잠시 사용되었다가 사라지는 데이터를 저장하는 영역이다. 함수 호출 시 할당되고 함수 반환 시 소멸된다. 컴파일 타임에 크기가 결정된다.