[TIL] CS - 힙, 스택

sooyoung choi·2023년 12월 22일
0

CS

목록 보기
1/21
post-thumbnail

🟢 메모리 구조

  • 프로그램을 실행시키면 운영체제는 실행한 프로그램을 위해 메모리공간을 할당해준다.
  • 할당되는 장소: 메인 메모리(RAM)
  • 할당되는 용도: 프로그램 실행 시 필요한 메모리 공간을 지정하기 위해서
  • 스택, 힙, 데이터 영역으로 나뉜다.

1. 데이터 영역

  • 정적메모리
  • 프로그램이 종료될 때까지 지워지지 않을 데이터 저장
  • 전역 변수, static 변수, 상수 등

2. 스택 영역

  • 자동 메모리
  • 잠깐 사용하가 삭제하는 데이터 저장(지역변수, 매개변수)
  • 해당 객체가 정의된 블록(스코프) 벗어날 때 소멸한다.
  • 함수의 호출하는 위치도 저장한다.
  • 힙보다 빠름

3. 힙 영역

  • 자유 저장소
  • 가바지 컬렉터가 없으면 프로그래머가 직접 관리 해줘야한다.
  • 스택보다 큰 메모리를 할당받기 위해 사용한다.
  • 동적 메모리 할당
  • 스택보다 느리다.


🟢 Javascript에서의 콜스택 메모리 힙 구조

  • 자바스크립트 엔진은 메모리 힙과 콜 스택으로 구성되어 있다. (구글 V8)
  • 단일 스레드 프로그래밍 언어 즉, 콜 스택이 하나
  • 멀티가 되지 않고, 하나씩 처리한다.

1. 콜 스택

  • 원시 타입 데이터가 저장된다.
  • 실행 컨텍스트를 통해 변수 식별자 이름 저장, 스코프 체인 및 this 관리, 코드 실행 순서 관리 등을 수행한다.

2. 메모리 힙

  • 참조 타입 데이터가 저장된다.
  • 메모리 할당이 일어나는 곳

0개의 댓글