CS

[OS] 메모리 공간, 스택 영역, 힙 영역

2023. 9. 2. 02:54
목차
  1. 코드(Code) 영역
  2. 데이터(Data) 영역
  3. 스택(Stack) 영역
  4. 힙(Heap) 영역

프로그램이 실행하게 되면 OS는 메모리(RAM)에 공간을 할당해준다. 메모리 공간은 코드 영역, 데이터 영역, 스택 영역, 힙 영역의 네 가지 영역으로 나뉜다.

 

 

코드(Code) 영역

우리가 작성한 소스코드가 들어 가는 부분. 즉, 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(code)영역이라고도 부른다. 코드영역은 실행 파일을 구성하는 명령어들이 올라가는 메모리 영역으로 함수, 제어문, 상수 등이 여기에 지정된다.

데이터(Data) 영역

전역변수와 정적변수가 할당되는 영역. 프로그램의 시작과 동시에 할당되고, 프로그램이 종료되어야 메모리가 소멸되는 영역

스택(Stack) 영역

프로그램이 자동으로 사용하는 임시 메모리 영역이다. 함수 호출 시 생성되는 지역 변수와 매개변수가 저장되는 영역이다. 함수가 종료되면 해당 함수에 할당된 변수들을 메모리에서 해제시킨다.

힙(Heap) 영역

프로그래머가 할당/해제하는 메모리 공간이다. 동적으로 할당 할 변수들이 여기에 저장된다. 예를 들어 클래스, 클로저가 이 부분에 해당 된다. 런타임 시에 크기가 결정된다.

 

 

힙 영역과 스택 영역은 같은 공간을 공유하며 나눠가진다. 힙은 메모리 위쪽 주소부터 할당되고 스택은은 아래 쪽부터 할당된다. 그래서 각 영역이 상대 공간을 침범하는 일이 발생할 수 있는데 이를 각각 HEAP OVERFLOW, STACK OVERFLOW라고 한다.

스택 영역이 크면 클 수록 힙 영역이 작아지고, 힙 영역이 클수록 스택 영역은 작아진다.

 

<요약>

메모리 공간은 코드 영역, 데이터 영역, 스택 영역, 힙 영역으로 나뉜다. 코드 영역은 실행할 프로그램의 코드가 저장되는 영역, 데이터 영역은 프로그램의 전역 변수와 정적 변수가 저장되는 영역, 스택 영역은 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역, 힙 영역은 사용자가 직접 관리할 수 있는 메모리 영역이다.

 


참고 자료

https://st-lab.tistory.com/198

https://jinshine.github.io/2018/05/17/컴퓨터%20기초/메모리구조/

 

 

 

'CS' 카테고리의 다른 글

웹서버와 WAS  (1) 2023.10.19
[OS] 프로세스, 스레드  (0) 2023.08.28
[Network] CORS 정책과 CORS 오류 해결법  (0) 2023.08.23
[Network] HTTP, HTTPS  (0) 2023.08.16
네트워크 기초 이론 무지성 정리 2  (4) 2023.04.20
  1. 코드(Code) 영역
  2. 데이터(Data) 영역
  3. 스택(Stack) 영역
  4. 힙(Heap) 영역
'CS' 카테고리의 다른 글
  • 웹서버와 WAS
  • [OS] 프로세스, 스레드
  • [Network] CORS 정책과 CORS 오류 해결법
  • [Network] HTTP, HTTPS
JeanneLee57
JeanneLee57
공부하고 기록을 남기는 개발자 Jeanne
JeanneLee57
코딩은 진리
JeanneLee57
전체
오늘
어제
  • 분류 전체보기 (117)
    • Javascript (15)
    • React (15)
    • Next.js (8)
      • Next.js 베타 문서 번역 (5)
    • 프로젝트 (34)
      • 미니 프로젝트 & 과제 (25)
      • SEB 44 pre-project (1)
      • SEB 44 main-project (8)
    • 알고리즘 (12)
    • 부트캠프 준비 (6)
    • 기술면접 (3)
    • CS (7)
    • 코드스테이츠 프론트엔드 부트캠프 (12)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 고차함수
  • Next.js
  • JavaScript
  • 프리코드캠프
  • 번역
  • 프로그래머스
  • 알고리즘
  • 구조분해할당
  • codestates
  • 회고
  • HTML
  • 프론트엔드
  • 부트캠프
  • 코드스테이츠
  • 부트캠프준비
  • CSS
  • react
  • useEffect
  • RTK
  • 유데미

최근 댓글

최근 글

hELLO · Designed By 정상우.
JeanneLee57
[OS] 메모리 공간, 스택 영역, 힙 영역
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.