메모리 구조

맹민재·2022년 3월 24일
0

CS 정리

목록 보기
3/8

1. Code Segment

프로그램 코드 자체가 기계어로 저장되는 영역
읽기 전용 데이터

2. Data Segment ( BSS + DATA )

프로그램 시작과 동시에 할당되고 프로그램 종료 시 메모리에서 소멸된다.
전역변수, Static 변수 등과 같이 프로그램이 실행되는 동안 항상 접근 가능한 변수를 위한 공간이다.
DATA에는 초기화된 전역변수가 저장된다
BSS(Block Stated Symbol)에는 초기화 값이 없는 전역변수를 저장한다.
함수 내부에 선언된 Static 변수는 프로그램이 실행될 때 공간만 할당되고, 함수가 실행될 때 초기화된다.

3. Heap Segment

동적 할당 영역으로 참조타입에 대한 저장 공간이다.
프로그래머에 의해 할당되는 공간
소멸 시점은 언어에 따라 GC, ARC 등에 의해 결정된다.

4. Stack Segment

지역 변수, 매개 변수, 리턴 값 등의 임시 데이터를 저정하는 영역이다.
함수 시작과 함께 생성되었다가 종료 시 반환된다.
값 타입 저장 공간이다.

재귀 함수가 너무 깊게 호출되거나 함수가 지역변수를 너무 많이 가지고 있어 stack 영역을 초과하면 stack overflow 에러가 발생한다.

참조
https://hyunable.github.io/2018/01/15/CS-memory/#undefined

profile
ㄱH ㅂrㄹ ㅈr

0개의 댓글