반응형
SMALL
- 프로세스의 메모리 구조
- 동적 영역과 정적영역으로 나뉜다.
- 동적영역 : 힙 (heap) & 스택 메모리 (stack)
- 정적 영역 : 데이터영역 (BSS segment, Data segment) & 코드 영역 ( code segment )
- 동적 영역과 정적영역으로 나뉜다.
- 스택 & 힙 메모리
- 동적할당된다 ( 런타임 단계에서 메모리를 할당 받는걸 뜻한다.)
- 스택(stack)
- 지역변수 매개변수 실행되는 함수에의해 늘어들거나 줄어드는 메모리영역
- 함수가 호출될때마다 호출될때의 환경 등 특정 정보가 스택에 계속해서 저장된다.
- 재귀함수가 호출된다고 했을 때 새로운 스택 프레임이 매번 사용되기 때문에 함수 내의 변수 집합이 해당 함수의 다른 인스턴스 변수를 방해하지 않는다.
- 힙(heap)
- 동적으로 할당되는 변수들을 담는다.
- malloc() , free() 함수를 통해 관리가 가능하며 동적으로 관리되는 자료 구조의 경우 힙 영역을 사용한다.
예를 들어 Vector는 내부적으로 힙 영역을 사용한다.
- 데이터 영역과 코드 영역
- 정적으로 할당되는 영역이다.
- 정적할당이란 컴파일 단계에서 메모리에 할당하는 것을 말한다.
- 데이터 영역은 크게 BSS segment 와, code/text segment 로 나뉘어 저장된다.
- BSS segment (Block Started by Symbol)
- 전역변수 또는 static, const 로 선언 되어있고 0 또는 초기화 값이 없는 변수들이 이 영역에 할당된다
- Data segment
- BSS segment 와 동일하지만 초기화 값이 0이 아닌 변수로 초기화된 변수가 이 메모리 영역에 할당된다.
- Code segment
- 프로그램의 코드가 들어간다.
- BSS segment (Block Started by Symbol)
반응형
LIST
'CS > CS 정리' 카테고리의 다른 글
[CS] 멀티 프로세싱 & 멀티 스레딩 간단 정리 . 2 (1) | 2023.04.15 |
---|---|
[CS] 멀티 프로세싱 간단 정리 . 1 (0) | 2023.04.09 |
[CS] PCB 간단 정리 (0) | 2023.04.08 |
[CS] 프로세스와 스레드 with 소스코드 파일 처리 과정 (간단 정리) (0) | 2023.04.04 |
[CS] 프로그램 패러다임 (객체지향의 설계원칙 : SOLID) (0) | 2023.02.13 |