티스토리 뷰
한 줄 요약 : 운영체제로부터 Code, Data, Stack, Heap 영역을 할당받으며 소스코드는 code 영역, global 변수는 data에 저장되고 Stack 영역은 컴파일시 크기가 결정되며 지역변수,parameter등을 관장하고, heap은 사용자 메모리로 instance등을 할당할 때 쓴다
Code 영역
- 메모리에 실행 code가 저장되는 공간으로, Text 영역이라고도 함
- Cpu가 Access하여 하나씩 실행 함
Data 영역
- 전역 (global) 변수와 정적 변수 (static) 가 저장되는 공간
- 프로그램의 시작시 할당되고, 종료시 소멸
Stack 영역
- 지역변수와 매개변수가 저장되는 공간
- 함수의 실행/종료시 할당/해제
- 스택영역은 후힙선출 (LIFO) 말그대로 stacking
- stack에 저장 되는 함수의 호출정보를 stack frame
- 컴파일타임에 크기가 결정 됨
Heap 영역
- 사용자가 직접 관리하는 메모리이고 또 그렇게 직접 관리해야만 하는 메모리
- 런타임에 가변적으로 메모리를 동적 할당/해제를 반복 함
- malloc() 또는 new 키워드를 통해 메모리 할당
// 전역변수는 Data 영역에 저장 된다.
int gloglo = 123;
// 매개변수 parameter는 stack에 저장 된다.
int blahblah (int parama, int paramb)
{
return parama + paramb;
}
int main() {
// 지역변수도 stack에 저장 된다.
string boo;
// malloc 등으로 할당 된 메모리는 heap 영역에 존재한다
int* pVal = (int*)malloc(sizeof(int));
}
reference
[1] : (https://junghyun100.github.io/%ED%9E%99-%EC%8A%A4%ED%83%9D%EC%B0%A8%EC%9D%B4%EC%A0%90/)
[2] : https://all-young.tistory.com/17
'CS > OS, DB' 카테고리의 다른 글
데이터베이스 트랜잭션과 ACID (0) | 2022.04.04 |
---|---|
NoSQL이란? NoSQL 종류 (MongoDB, Redis, Cassandra) (0) | 2022.04.02 |
프로세스와 스레드의 차이 (0) | 2022.02.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- operation System
- 백준10828
- dynamic programming
- Process vs Thread
- heap
- 코딩연습
- Memory
- 카드구매하기
- 백준
- computer science
- 기술면접질문
- Stack
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함