
- OS Kerner Space: 드라이버 설치
- Stack: 지역변수, 매개변수
- free 여유공간
- Heap: 동적 메모리
- BSS: 초기화 되지 않은 변수
- Data: 전역변수, Static변수
- Text: 상수, 코드
스택 영역은 높은 주소에서 낮은 주소로 할당
힙 영역은 낮은 주소에서 높은 주소로 할당
서로 만나면 스택 오버플로우 현상 발생
스택 영역은 프로세스의 메모리 공간을 관리하기 위한 알고리즘.
안에 지역변수, 매개변수, 리턴 값, 돌아올 주소등이 저장.
컴파일 타임에 크기가 결정되기에 무한히 할당 불가.
재귀 함수가 너무 깊게 호출되거나 함수가 지역변수를 너무 많이 가지면 stack overflow 발생
프로그래머가 필요시 사용하는 영역. 유일하게 런타임에 결정되고 데이터 배열의 크기가 확실치 않고 변동이 있을 때 사용한다. 사용자에 의해 메모리 공간이 동적으로 할당되고 해제됨. 사용후 반드시 해제해야 하며 그렇지 않으면 memory leak 발생.
스택보다 할당 메모리 공간이 많은 게 장점이지만 포인터로 접근해야 하기에 데이터 읽고 쓰기가 느림.
프로그램의 전역 변수와 정적 변수가 저장되는 영역.
프로그램의 시작과 함께 할당되고 종료되면 소멸
메모리의 텍스트 영역은 실행할 프로그램의 코드가 저장되는 영역.
CPU에서 저장된 명령어를 하나씩 가져가 처리