메모리 할당이란?
시스템이 프로그램이나 프로세스에게 사용 가능한 메모리 공간을 할당하는 과정이다.
메모리에 프로그램을 할당할 때는 시작 메모리 위치, 메모리의 할당 크기를 기반으로 할당하는데 연속 메모리 할당과 불연속 메모리 할당으로 나뉜다.
연속 메모리 할당 : 프로세스에 연속적인 메모리 공간을 할당 ex) 프로세스 A는 A의 크기만큼 메모리 주소를 할당받아서 연속적으로 배치가 된다.
가변크기 메모리 할당 : 프로세스마다 요구되는 메모리 크기에 맞춰서 메모리를 할당한다.
장점
프로세스를 한 덩어리로 처리하여 하나의 프로세스를 연속된 공간에 배치한다.
단점
외부 단편화가 발생할 수 있다.
고정크기 메모리 할당 : 메모리를 고정된 크기로 나누고 프로세스를 할당한다.
장점
메모리를 일정한 크기로 나누어 관리하므로 메모리 관리가 수월하다.
단점
메모리가 미리 나뉘어 있으므로 융통성이 없고, 내부 단편화가 발생한다.
프로세스는 메모리의 빈 공간(=적재되어도 되는 공간)에 할당되어야 한다.
아래 세가지 방식은, 연속적으로 프로세스를 메모리 내에 배치할 때, 어떤 빈공간에 어떻게 적재할지에 따라 나뉜 방식들이다.
(1) 최초 적합(first-fit)
운영체제가 메모리 내의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간이 발견하면 그 공간에 프로세스를 배치하는 방식이다.
빈 공간 검색 최소화, 빠른 할당이 가능하다.
(2) 최적 적합
운영체제가 빈 공간을 모두 검색한 뒤, 적재 가능한 가장 작은 공간에 할당한다.
(3) 최악 적합