[컴퓨터 구조] 메모리 구조

ung·2023년 1월 30일

컴퓨터 구조

목록 보기
2/14

  • OS Kerner Space: 드라이버 설치
  • Stack: 지역변수, 매개변수
  • free 여유공간
  • Heap: 동적 메모리
  • BSS: 초기화 되지 않은 변수
  • Data: 전역변수, Static변수
  • Text: 상수, 코드

스택 영역은 높은 주소에서 낮은 주소로 할당
힙 영역은 낮은 주소에서 높은 주소로 할당
서로 만나면 스택 오버플로우 현상 발생

Stack 영역

스택 영역은 프로세스의 메모리 공간을 관리하기 위한 알고리즘.
안에 지역변수, 매개변수, 리턴 값, 돌아올 주소등이 저장.
컴파일 타임에 크기가 결정되기에 무한히 할당 불가.
재귀 함수가 너무 깊게 호출되거나 함수가 지역변수를 너무 많이 가지면 stack overflow 발생

Heap 영역

프로그래머가 필요시 사용하는 영역. 유일하게 런타임에 결정되고 데이터 배열의 크기가 확실치 않고 변동이 있을 때 사용한다. 사용자에 의해 메모리 공간이 동적으로 할당되고 해제됨. 사용후 반드시 해제해야 하며 그렇지 않으면 memory leak 발생.
스택보다 할당 메모리 공간이 많은 게 장점이지만 포인터로 접근해야 하기에 데이터 읽고 쓰기가 느림.

Data 영역

프로그램의 전역 변수와 정적 변수가 저장되는 영역.
프로그램의 시작과 함께 할당되고 종료되면 소멸

Text 영역

메모리의 텍스트 영역은 실행할 프로그램의 코드가 저장되는 영역.
CPU에서 저장된 명령어를 하나씩 가져가 처리

0개의 댓글