메모리는 code(text), data, heap, stack 영역으로 구성되어 있습니다.
실행할 프로그램의 코드가 저장된다. CPU는 이 영역에서 명령어를 하나씩 가져와서 처리한다.
전역변수
와 정적변수
가 저정된다. 이 변수들은 프로그램이 시작될 때 할당되어 프로그램 종료 시 소멸된다.
BSS(Block Stated Symbol): 이 영역에는 초기화 되지 않은 전역변수가 저정된다. 초기화 된 전역변수는 Data영역에 저장되어 비휘발성 메보리인 ROM에 저장되는데 이 부분은 비용이 많이 들어 RAM에 저장될 것과 ROM에 저장될 것을 구분하기 위해 영역을 구분해 사용한다.
프로그래머가 필요할 때마다 사용하는 동적 데이터 영역이다. heap 영역은 런타임에 결정된다.
지역변수, 매개변수, 리턴값
등 잠시 사용되었다가 사라지는 데이터
를 저장하는 영역이다. 함수 호출 시 할당되고 함수 반환 시 소멸된다. 컴파일 타임에 크기가 결정된다.