운영체제에서 바라보는 메모리의 영역은 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로 잡혀있고, 램의 크기만큼 설정할 수 있다고 한다.
-- 제발 이런거 틀리지 좀 말자 부끄럽다.
-> 또 틀리냐..
'CS 기초' 카테고리의 다른 글
[Design Pattern] MVC Pattern (0) | 2021.09.28 |
---|---|
[CS기초] 컴파일러, 인터프리터 (0) | 2021.09.14 |
[운영체제] 프로세스와 쓰레드 (0) | 2021.09.13 |
[운영체제] CPU 스케줄러 (0) | 2021.09.13 |