CS 기초

[운영체제] 메모리의 구조

태현123 2021. 11. 1. 21:35
728x90
반응형
SMALL

운영체제에서 바라보는 메모리의 영역은 4개로 구분된다.

1. 코드 영역 (Code)

2. 데이터 영역 (Data)

3. 힙 영역 (Heap)

4. 스택 영역 (Stack)

 

일단, 이 내용이 문제로 나왔었는데, 1번 코드영역에 대해서 잘 몰라서, 코드영역은 틀렸다. 그래서 다시 복기하는 차원에서 다시 공부해본다.

 

1. 코드 영역

-> 실행할 프로그램의 코드가 저장되는 영역이다. 텍스트 영역이라고도 한다. 프로그램이 시작되고 종료될 때까지 메모리에 남아있는다.

>> 내가 이걸 함수가 들어있는 공간이라고 썼다.....;; 무조건 틀렸으니 꼭 기억해두자.

 

2. 데이터 영역

-> static(정적) 변수, 전역변수가 저장되는 영역이다. 프로그램이 시작될때 생기고 종료할 때 사라진다.

> 얘는 맞았다.

 

3. 힙 영역

-> 프로그래머가 런타임에 직접 크기를 할당하는 영역이다. C++에서는 new, C에서는 malloc을 사용하여 메모리를 할당하고, delete, free를 사용하여 메모리를 해제한다. 힙은 FIFO 방식으로, 가장 먼저 들어온 데이터가 가장 먼저 나가게 된다.

> 얘도 어느정도 맞았다.

 

4. 스택 영역

-> 컴파일 타임에 크기가 결정된다. 주로 지역변수, 매개변수가 저장되는 영역이며, 함수 호출이 완료되면 사라진다. 스택 영역은 LIFO 방식으로 가장 늦게 들어온 데이터가 가장 먼저 나간다. 

 

+ 스택, 힙 영역은 vs 컴파일러에서 기본 1mb로 잡혀있고, 램의 크기만큼 설정할 수 있다고 한다.

 

-- 제발 이런거 틀리지 좀 말자 부끄럽다.

-> 또 틀리냐..

반응형
LIST

'CS 기초' 카테고리의 다른 글

[Design Pattern] MVC Pattern  (0) 2021.09.28
[CS기초] 컴파일러, 인터프리터  (0) 2021.09.14
[운영체제] 프로세스와 쓰레드  (0) 2021.09.13
[운영체제] CPU 스케줄러  (0) 2021.09.13