WN_인생기록

메모리 구조에 대해서 설명해주시겠어요? 본문

CS/면접 대비

메모리 구조에 대해서 설명해주시겠어요?

WhNi 2024. 3. 10. 19:27

사용자가 프로그램을 입력하면, 

 

CPU는 필요한 코드를 메모리에 할당합니다. 

 

이 부분은 4개의 영역으로 이루어져 있습니다. 

 

Code 영역은 실행한 프로그램의 코드가 CPU에서 수행할 수 있는 기계어로 변환되어 저장되는 공간입니다.

중간에 코드를 변경할 수 없도록 Read-only 형태로 저장되게 됩니다. 

 

Data 영역은 전역 변수들의 Data를 저장하는 공간으로, 언제는 변경될 수 있기에 Read-Write 형태로 저장됩니다.

 

Stack 영역은 특정 함수의 수행을 마치고 복귀할 주소 및 데이터(지역변수, 매개변수, 리턴값)들을 임시로 저장하는 공간입니다. 컴파일을 할때 영역의 크기가 정해지기 때문에, 재귀함수가 무한히 반복되거나, 너무 많은 메모리를 가지고 있으면 stack overflow가 발생합니다.

 

Heap 영역은 런타임에 결정되며, 필요할때마다 프로그래머가 할당해서 사용하는 메모리 영역입니다.