[Basic] 컴퓨터 메모리구조/스택(Stack), 힙(Heap), 데이터(Data) 영역

양다혜·2021년 5월 12일
1

컴퓨터기초지식

목록 보기
1/4

컴퓨터 운영체제 ⇒ 다양한 메모리 공간 제공(프로그램 실행을 위함)

<메모리 공간>

  • 코드(Code) 영역
  • 데이터(Data) 영역
  • 힙(Heap) 영역
  • 스택(Stack) 영역

코드(Code) 영역

  • 실행할 프로그램의 코드가 저장되는 영역 == 텍스트 영역
  • CPU는 이 영역에 저장된 명령어들을 하나씩 가져가서 처리
  • Read-Only(중간에 코드를 바꿀 수 없게)

데이터(Data) 영역

  • 프로그램의 전역 변수(global), 정적 변수(static), 배열(array), 구조체(structure)가 저장되는 영역
  • 초기화 된 데이터는 데이터 영역에 저장
  • 초기화되지 않은 데이터는 BSS(Block Stated Symbol) 영역에 저장
  • Read-Write(중간에 변경될 수 있음)
  • 프로그램의 시작과 함께 할당, 프로그램 종료시 소멸

힙(Heap) 영역

  • 사용자가 직접 관리하는, 사용자에 의해 동적으로 할당되고 해제됨
  • 할당 방향: 낮은 주소 ⇒ 높은 주소

스택(Stack) 영역

  • 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역
  • 함수의 호출과 함께 할당, 함수 호출이 완료되면 소멸
  • 함수의 호출 정보 == 스택 프레임
  • push: 데이터 저장 pop: 데이터 인출
  • 후입선출(LIFO, Last In First Out)
  • 할당 방향: 높은 주소 ⇒ 낮은 주소

+ 추가

JavaScript의 메모리 관리는?

브라우저의 가비지 컬렉터는 무엇이고 어떻게 동작하는가?

자바스크립트의 배열은 어디에 저장되는가?

profile
아는 것을 잘 설명할 수 있는 개발자되기👩🏻‍💻

0개의 댓글