728x90

스택 영역 (Stack)
- 함수 실행을 위한 지역변수 등이 저장되는 영역
- 프로그램이 자동으로 사용하는 임시 메모리 공간이다.
- 지역변수 (local variable), 매개변수 (parameter), 리턴값 등 잠시 사용되었다가 사라지는 데이터를 저장하는 영역
- 스택 사이즈는 각 프로세스마다 할당되지만 메모리에 로드 될 때 스택 사이즈가 고정되어 있어, 런타임 시에 스택 사이즈를 바꿀 수는 없다.
- 메모리의 가장 높은 주소에서 낮아지는 방향으로 데이터가 저장된다.
힙 영역 (Heap)
- 힙 영역은 동적으로 할당된 메모리를 위한 공간
- 메모리 주소 값에 의해서만 참조되고 사용되는 영역이다.
- C의 경우 malloc(), C++, java의 경우 new() 함수를 이용할 때 힙영역에 데이터가 저장된다.
데이터 영역 (Data)
- 데이터 영역은 초기화된 전역변수, 정적변수(static), 배열(array), 구조체(structure) 등이 저장되는 공간이다.
- 프로그램이 실행되면 생성되고, 종료되면 시스템에 반환된다.
BSS 영역
- 초기화 되지 않은 전역변수, 정적변수 등이 저장되는 공간이다.
- 초기화된 전역변수, 정적변수는 Data 영역에 저장된다.
Code 영역
- 프로그램 실행을 위한 명령이 위치하는 곳으로 기계어로 되어 있는 메모리 영역이다.
728x90
'CS > 운영체제' 카테고리의 다른 글
| 컨텍스트 스위칭(Context Switching) 이란? (0) | 2022.10.30 |
|---|