운영체제는 한정된 크기의 메모리를 효율적으로 다루기 위해 다양한 방식의 메모리 관리 방법을 사용한다. 각각의 프로세스 는 독립된 메모리 공간을 갖고, 운영체제 혹은 다른 프로세스의 메모리 공간에 접근할 수 없는 제한이 걸려있고, 운영체제 만이 운영체제 메모리 영역과 사용자 메모리 영역의 접근에 제약을 받지 않기 때문에 이를 운영체제가 담당한다.
프로세스에게 메모리를 할당하는 경우, 각 프로세스에게 연속적으로만 메모리를 줄 수 있다면 연속적 메모리 할당
(Contigous Memory Location
), 띄엄띄엄으로도 주어질 수 있다면 비연속적 메모리 할당
(Non-contigous Memory Location
)이라고 부릅니다.
고정 크기 할당(고정 할당) : 메모리를 같은 크기로 분할
다중 프로그래밍 정도는 블럭의 개수
와 같으며, 모든 프로세스는 할당된 메모리 크기가 서로 같습니다
. 현대에서는 사용되지 않는 방식입니다.동적 크기 할당(가변 할당) : 메모리를 필요 크기에 따라 분할
외부 단편화
(External Fragmentation
)라는 문제를 발생시킬 수 있는데, 할당과 해제를 반복하다보면, 중간중간에 생기는 제대로 사용할 수 없는 빈 공간
이 바로 그것입니다. 외부 단편화가 골칫거리인 이유는 각각의 단편화의 크기는 작을지라도, 전부 모으면 새로운 프로세스를 하나 더 적재할 수 있을만큼 커지기 때문입니다. 이것은 가변 할당의 고질적인 단점입니다.최초 적합(first fit) : 프로그램이나 데이터가 들어갈 수 있는 위치 중 처음 발견한 위치에 배치
최적 적합(best fit) : 빈 공간을 확인한 이후, 적당한 크기 가운데 가장 작은 공간에 배치