C 프로그램의 메모리 배치

Park Sejin·2021년 7월 13일
0
post-thumbnail

앞에서 C 프로그램의 main 함수를 호출하기 전에 C 시동 루틴(start-up routine) 수행한다고 했다. 이 시동 루틴에서 C 프로그램의 메모리 배치 또한 수행한다.

C 프로그램의 구성

  • 텍스트 구역(text segment) : CPU가 실행하는 기계어 명령들이 저장되는 구역
  • 자료 구역(data segment)
    • 초기화된 자료 구역(initialized data segment) : 초기화되는 변수들을 담은 자료 구역
      • 예 : 초기화된 전역/정적 변수
    • 초기화되지 않은 자료 구역(bss)(uninitialized data segment) : 초기화되지 않는 변수들을 저장하는 구역. 이 구역의 자료는 프로그램 실행 전에 커널이 0 또는 널 포인터로 초기화 한다.
      • 예 : 초기화되지 않은 전역/정적 변수
  • 스택(stack) : 함수가 호출될 때마다 호출 관련 정보와 지역 변수들이 저장되는 구역
    • 예 : 지역 변수, 지역 함수, 매개 변수
  • (heap) : 동적 메모리 할당이 주로 일어나는 구역

출처

UNIX 고급 프로그래밍 7장 - 리처드 스티븐스, 스티븐 레이고
http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=97911854750

0개의 댓글