프로그램이 실행되기 위해서 메모리에 로드된 후 CPU 할당을 받아야한다.
또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요하다.
code 영역
- 실행할
프로그램의 코드
가 저장되는 영역, text 영역이라고도 한다.
- CPU는 이 영역에 저장된 명령어들을 하나씩 가져가서 처리하게 된다.
data 영역
- 프로그램의
전역, 정적변수
가 저장되는 영역이다.
- 데이터영역은 프로그램의 시작과 함께 할당, 프로그램 종료시 소멸된다.
heap 영역
- 사용자가 직접 관리할 수 있는 메모리 영역.
- 사용자에 의해 메모리 공간이 동적으로 할당되고 해제된다.
- 메모리의
낮은주소 -> 높은 주소
의 방향으로 할당된다.
stack 영역
함수 호출과 관계되는 지역 변수와 매개변수
가 저장되는 영역.
- 함수 호출과 함께 할당되며, 함수 호출이 완료되면 소멸한다.
Stack Frame
: 스택 영역에 저장되는 함수의 호출 정보
- push, pop 연산으로 데이터를 입출력한다.
- LIFO(Last-In First-Out)구조
- 가장 늦게 저장된 데이터가 가장 먼저 인출된다.
- 메모리의
높은주소 -> 낮은 주소
의 방향으로 할당된다.
출처
TCPSchool