Contents
프로세스의 주소 공간프로세스의 주소 공간
- 프로그램이 CPU에 의해 실행되면, 프로세스가 생성되고 메모리에 프로세스 주소 공간이 할당된다.
- 프로세스 주소 공간에는 코드, 데이터, 스택, 힙 영역으로 이루어져 있다.
- 코드 영역
- 프로그램 코드를 기계어 상태로 저장
- 데이터 영역
- 전역 변수, static 변수 등 저장
- 프로그램 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다.
- 스택(stack) 영역
- 함수, 지역 변수 저장
- 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다.
- stack overflow : 재귀함수 등이 너무 깊게 호출되어 함수가 지역변수를 너무 많이 가지고 있어 발생하는 에러
- 힙(heap) 영역
- 런타임에 크기가 결정되는 영역
- 사용자에 의해 공간이 동적으로 할당 및 해제됨(C)
- 가비지가 쌓이고 가비지 컬랙터가 처리함
- 구역을 나눈 이유?
- 최대한 데이터를 공유하여, 메모리 사용량을 줄이기 위함
- 스레드는 자신만의 스택 영역을 가진고 나머진 공유한다.
Share article