CS

메모리의 구조 - 메모리 영역

khkg12 2023. 7. 12. 15:53

운영체제에서 프로그램을 실행할 때 프로그램의 정보들을 메모리에 로드해야 한다.

이 때 정보들이 저장되는 메모리의 영역은 코드영역, 데이터영역, 힙영역, 스택영역으로 구성되어 있다.

코드영역


코드영역은 실행시킬 프로그램의 코드가 저장되는 영역이다. 텍스트 영역이라고도 부른다.

CPU는 코드영역에 저장된 명령들을 처리하게 된다. 코드영역에 저장된 명령들은 프로그램이 시작되고 종료될 때까지 남아있는다.

 

데이터영역


데이터영역은 프로그램의 전역변수(static)이 저장되는 영역이다. 코드영역과 마찬가지로 프로그램의 시작되고 종료될 때까지 남아있는다.

 

힙영역


힙영역은 사용자가 직접할당하고 해제할 수 있는 영역으로 런타임에서 크기가 결정된다. 즉 프로그램이 실행중에 할당되고 해제될 수 있다는 것이다. new 연산자를 통해서 힙영역에 할당할 수 있고 delete 연산자를 통해 메모리를 해제할 수 있다.

 

스택영역


스택영역은 지역변수와 매개변수가 저장되는 영역이고 컴파일타임에 크기가 정해진다. 코드에서 중괄호가 시작되고 끝날때 할당되고 해제되며 후입선출(LIFO)의 구조로 이루어진다. 

'CS' 카테고리의 다른 글

API, 프레임워크, 라이브러리  (0) 2024.01.25
가비지 컬렉터  (0) 2023.12.06
API / STL  (0) 2023.07.26
객체지향 프로그래밍이란?  (0) 2023.07.13