반응형
메모리 영역
우리가 아는 OS에서 메모리 영역은 코드(code), 데이터(data), 힙(heap), 스택(stack) 영역으로 나눠진다.
- 코드
- 프로세스가 실행할 코드와 매크로 상수가 기계어의 형태로 저장된 공간. 중간에 바꿀 수 없게 read-only라는 특징이 있다.
- 데이터 영역
- 코드에서 선언한 전역변수 또는 static변수 등등이 저장된 공간. 실행 도중에 변경이 될 수 있어서 read-write로 지정되어 있다.
- 프로그램의 시작과 동시에 메모리에 할당되고, 프로그램이 종료되면 메모리에서 소멸이 된다.
- 힙 영역
- 우리가 흔히 사용하는 malloc, calloc으로 heap영역의 메모리를 사용한다. 할당을 통해서 진행을 하는데 해제를 진행해줘야 메모리 누수를 방지할 수 있다.
- 선입선출(FIFO)의 방식 , 높은 주소에서 낮은 주소의 방향으로 할당
- 스택 영역
- 프로세스의 메모리 공간을 관리하기 위한 알고리즘 중 하나. 변수, 주소 등이 저장이 되고 함수 호출시 기록하고 종료되면 제거가 된다.
- stack영역을 초과하게 되면 stack overflow에러가 발생하는 특징과 크기에 제약이 있다.
- 메모리의 낮은 주소에서 높은 주소의 방향으로 할당
반응형
'Programming > 알쓸신잡' 카테고리의 다른 글
Virtual Box(ubuntu,linux 우분투/리눅스) 윈도우 다운,설치 과정 (1) | 2023.07.16 |
---|---|
R과 R Studio,Rtools 다운로드 방법 (+셋팅 A to Z) (0) | 2023.03.04 |
댓글