[Python] 메모리 구조

2020. 5. 14. 11:00Programming Language/Python

반응형

■ 파이썬 메모리 구조

 

1. 코드 영역

1) 실행할 프로그램의 코드가 저장되는 영역 (텍스트 영역이라고도 부름)

2) 프로그램이 시작하고 끝날 때까지 메모리에 계속 남아있는다

2. 데이터 영역

1) 프로그램의 전역 변수와 정적(static) 변수, 문자열, 상수가 저장되는 영역

2) 프로그램이 시작하고 끝날 때까지 메모리에 계속 남아있는다

3. 스택(Stack) 영역

1) 함수의 호출과 관계되는 지역 변수와 매게변수가 저장되는 영역

2) 함수의 호출과 함께 할당되며 함수의 호출이 완료되면 소멸한다. 
   스택 영역에 저장되는 함수의 호출 정보를 스택 프레임(Stack Frame)이라고 한다.

3) 프로그램이 자동으로 사용하는 임시 메모리 영역이다.

4) 낭비되는 공간이 없다. 하지만 한계가 있어 한계를 초과하도록 삽입할 수 없다.

※ Stack overflow
Stack영역이 Heap을 침범하는 경우

4. 힙(Heap) 영역

1) 사용자가 직접 관리할 수 있는 영역

2) 사용자에 의해 메모리 공간이 동적으로 할당되고 해제된다.

3) 런타임 시에 크기가 결정된다.

※ Heap overflow 
Heap이 위에서부터 주소값을 채워져 내려오다가 Stack영역을 침범하는 경우
반응형