기술

Heap Stack

개복치 개발자 2021. 9. 27. 18:35

 메모리 구조에 대해 간단하게 보겠습니다.

 

 1. 코드 영역(실행할 프로그램의 코드)

 2. 전역 변수/정적 변수(데이터 영역)

 3. 사용자 동적 할당(힙 영역)

 4. 지역변수 매개변수(스택 영역)

 

 코드영역

 

 말 그대로 프로그램 코드가 돌아가는 곳입니다. CPU는 코드 영역에서 명령어를 하나씩 가지고 와서 처리합니다.

 

 데이터 영역

 

 프로그램이 전역(Static) 변수가 저장되는 영역입니다.

 

 힙 영역 

 

 프로그래머가 직접 공간을 할당, 해제하는 공간입니다.

 

 힙 메모리는 포인터를 사용하여 힙에 엑세스해야하기 때문에, 읽기와 쓰기가 약간 느립니다.

 

 기본적으로 global scope 입니다.

 

 FIFO(First in First out) 방식입니다.

 

 스택 영역

  

 함수의 호출과 관계되는 지역 변수와 매개변수가 저장됩니다.

 

 LIFO(Last in First out) 방식입니다.

 

 local scope입니다.

 

 

 

 - 참고

 

https://all-young.tistory.com/17

 

메모리의 구조 (코드, 데이터, 힙, 스택 영역)

목차 메모리 코드(code) 영역 데이터(data) 영역 힙(heap) 영역 스택(stack) 영역 오버 플로우 메모리 위 그림과 같이, 프로그램이 실행되기 위해서는 운영체제(OS)가 프로그램의 정보를 메모리에 로드

all-young.tistory.com

 

https://junghyun100.github.io/%ED%9E%99-%EC%8A%A4%ED%83%9D%EC%B0%A8%EC%9D%B4%EC%A0%90/

 

스택(Stack)과 힙(Heap) 차이점

해당 Post는 스택(Stack)과 힙(Heap) 차이점를 정리한 파일이다.

junghyun100.github.io

https://hwan1402.tistory.com/110

 

스택(Stack)과 힙(Heap) 차이점

메모리 구조 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드(load)되어야 합니다. 또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요합니다. 따라서 컴퓨터의 운영체제

hwan1402.tistory.com

 

'기술' 카테고리의 다른 글

프로토콜 버퍼란?  (0) 2022.12.01
객체지향의 원칙  (0) 2021.10.20
OSI 7 Layer  (0) 2021.08.24
DB Index  (0) 2021.08.14
프로세스(Process)와 쓰레드(Thread)의 차이  (0) 2021.08.13