프로세스의 메모리 구조

이강용·2024년 7월 23일
0

CS

목록 보기
89/109
  1. 스택(Stack) - 동적
    • 함수 호출과 관련된 지역 변수, 함수 인자, 리턴 주소 등이 저장되는 영역
    • 스택은 함수가 호출될 때마다 새로운 프레임이 추가되며 함수가 종료되면 해당 프레임이 제거됨
    • 스택 영역은 보통 높은 주소에서 낮은 주소로 확장
  2. 힙(Heap) - 동적
    • 동적으로 할당된 메모리가 저장되는 영역
    • 프로그램 실행 중에 malloc, calloc, realloc 등의 함수로 메모리를 할당받고 free 함수로 해제할 수 있음
    • 힙 영역은 보통 낮은 주소에서 높은 주소로 확장
  3. 데이터 세그먼트(Data segment) - 정적
    • 초기화된 전역 변수와 정적 변수가 저장되는 영역
    • 프로그램이 시작될 때 값이 설정된 변수들이 이곳에 위치
  4. BSS 세그먼트(Block Started by Symbol Segment) - 정적
    • 초기화되지 않은 전역 변수와 정적 변수가 저장되는 영역
    • 프로그램이 시작될 때 값이 설정되지 않은 변수들이 이곳에 위치
    • 초기값은 0으로 설정되며 static으로 선언된 변수 및 int d;와 같이 명시적으로 초기화되지 않은 변수 그리고 static int d = 0;처럼 0으로 초기화된 변수를 포함
  5. 코드 세그먼트(Code/Text Segment) - 정적
    • 프로그램의 실행 코드가 저장되는 영역
    • 주로 읽기 전용으로 설정되어 있으며 실행 가능한 명령어들이 위치함
profile
HW + SW = 1

0개의 댓글