
정의
- 메모리 할당은 컴퓨터 프로그램과 서비스에 물리적 또는 가상 메모리 공간을 할당하는 프로세스다.
- 컴퓨터의 주 기억장치인 RAM에서 이루어진다.
- 프로그램 및 프로세스 실행을 위해 컴퓨터 메모리의 일부 또는 전체를 예약하는 프로세스이다.
- 스택 영역은 프로그램의 지역 변수를 저장하는 역할을 한다. 메인을 포함하여 함수 시작 시 변수와 배열은 스택 공간에 위치한다. 스택은 높은 주소에서 낮은 주소로 증가한다.
- 반면에 힙 영역은 동적 메모리 할당을 담당한다. 스택과 달리 힙은 낮은 주소에서 높은 주소로 증가한다. 그런데 힙 영역은 힙 데이터 구조와 공통적으로 관련이 없다는 점을 명심하는 것이 중요하다. 명령어가 코드 공간에 있는 동안 전역 및 정적 변수는 정적/전역 부분에 들어간다.
- 메모리 할당은 실행 전이나 실행 시에 수행되며, 다음의 두 가지 유형이 있다.
- 컴파일 시간 혹은 정적 메모리 할당
- 런타임 혹은 동적 메모리 할당
- 정적, 동적 메모리 할당 모두 사용 가능한 메모리 위치와 사용 중인 메모리 위치를 나타내는 각 메모리 위치 블록을 유지해야 한다. 그 뒤 새 작업이 시스템에 들어오면 여유 파티션을 할당하는데, 이 때 사용하는 전략은 다음과 같다.
- Fit 전략
특징
- 메모리 할당은 메모리 관리라는 프로세스를 통해 이루어진다.
- 메모리는 작은 블록 단위로 할당되는데 이 블록의 크기는 시스템에 따라 다를 수 있다.
- 주로 1KB, 4KB, 8KB 등의 고정된 크기로 할당된다.
- 메모리 할당은 주로 컴퓨터 하드웨어 작업이지만 운영 체제 및 소프트웨어 응용 프로그램을 통해 관리된다.
- 메모리 할당 프로세스는 물리적 메모리 관리와 가상 메모리 관리에서 매우 유사하다.
- 프로그램과 서비스는 실행될 때 요구 사항에 따라 특정 메모리가 할당된다.
- 프로그램이 작업을 완료하거나 유휴 상태가 되면 메모리가 해제되어 다른 프로그램에 할당되거나 기본 메모리 내에 병합된다.
- 메모리 할당은 프로그램이 실행되는 데 필수적인 단계이며, 메모리를 효과적으로 관리하는 것이 컴퓨터 시스템의 안정성과 성능을 유지하는 데에 있어서 매우 중요하다.