본문 바로가기

코딩 이야기/이론 이야기

메모리 영역(코드영역, 데이터영역, 힙영역, 스택영역)

반응형

서론

 

메모리 영역은 총 4가지로 나뉜다.(BSS까지 포함하면 5가지) 그리하여, 코드 영역, 데이터 영역, 힙 영역, 스택 영역이 무엇인지 알아보고 각각 어떤 특장을 지니는 지 서술하려한다.

 

 

메모리 영역

 

프로그램이 실행하려면, 당연히 메모리의 공간을 할당을 받아야하고 이 공간을 메모리 영역이라 지칭한다.

 

코드 영역

 

이름 그대로 우리가 작성한 코드를 저장하는 공간이다. 텍스트영역이라고도 불리며, 이 공간은 컴파일 할 때 Read-Only이다. 어찌보면 당연한데, 우리가 파이썬을 실행할 때 컴파일할 당시에 코드로 실행하지, 컴파일한 후에 코드를 수정해도 적용되지 않는 이유가 이 때문이다.

 

데이터 영역

 

데이터 영역은 전역변수, 정적변수, 배열, 구조체를 저장한다. 이러한 것들은 프로그램이 실행되는 와중에 값이 바뀔 수 가 있기 때문에 Read-Write의 구조이다. 프로그램이 시작할 때 할당되고, 프로그램이 끝나면 소멸된다.

 

힙 영역

 

힙 영역은 사용자가 직접 관리가능하다. 동적할당하는 것들을 저장한다. 실행되는 도중에 힙 영역의 크기가 정해진다.

 

스택 영역

 

스택 영역은 이름 그대로 스택의 구조를 가지기 때문에, 후입선출의 구조를 가진다. 함수의 호출과 연관되는 변수들. 매개변수, 지역변수들이 저장되고, 높은 주소에서 낮은 주소 순으로 저장된다. 컴파일할 때 크기가 정해진다.

 

 

 

 

 

 

 

 

반응형

'코딩 이야기 > 이론 이야기' 카테고리의 다른 글

3-Tier Architecture 3계층구조  (0) 2023.03.10
마크업 언어란?  (2) 2020.10.26