운영체제는 프로세스에 적절한 메모리를 할당하는데 다음 구조를 기반으로 할당합니다.
위에서부터 스택(stack), 힙(heap), 데이터 영역(BSS segment, Data segment), 코드 영역(code segment)으로 나눠집니다. 스택은 위 주소부터 할당되고 힙은 아래 주소부터 할당됩니다.
스택, 힙은 동적으로 늘어나는 반면, 데이터, 코드는 정적이다.
- 스택 : 지역변수, 매개변수, 함수가 저장되고 컴파일 시에 크기가 결정되며 ‘동적’인 특징
- 힙 : 힙은 동적 할당할 때 사용되며 런타임 시 크기가 결정됩니다.’동적’인 특징 ex)벡터
- 데이터영역 : 전역변수, 정적변수가 저장되고, 정적인 특징
- 코드영역 : 소스코드 들어감. 정적인 특징
데이터 영역은 BSS 영역과 Data 영역으로 나뉘고, BSS 영역은 초기화가 되지 않은 변수가 0으로 초기화되어 저장되며 Data 영역(Data segment)은 0이 아닌 다른 값으로 할당된변수들이 저장됩니다.
'CS > 운영체제' 카테고리의 다른 글
멀티프로세싱과 멀티스레딩, 그리고 IPC (0) | 2022.07.26 |
---|---|
PCB와 컨텍스트 스위칭 (0) | 2022.07.26 |
프로그램과 프로세스 그리고 스레드의 차이 (0) | 2022.07.26 |
가상메모리와 스와핑, 페이지폴트 그리고 스레싱 (0) | 2022.07.26 |
메모리계층 (0) | 2022.07.26 |