핵심 키워드 : 스와핑, 최초 적합, 최적 적합, 최악 적합, 외부 단편화

지금까지는 메모리 내에 프로세스들이 연속적으로 배치되는 상황을 가정했습니다. 즉, 프로세스 A가 A의 크기만큼 메모리 주소를 할당받아 연속적으로 배치되고, 프로세스 B는 프로세스 A 이후에 또 B의 크기만큼 연속적인 메모리 주소를 할당받아 배치되는 식으로 말이지요.

이렇게 프로세스에 연속적인 메모리 공간을 할당하는 방식을 **연속 메모리 할당 방식**이라고 합니다.

스와핑

메모리에 적재된 프로세스들 중에는 현재 실행되지 않는 프로세스가 있을 수 있습니다. 입출력 작업의 요구로 대기 상태가 된 프로세스라던지, 오랫동안 사용되지 않은 프로세스가 이런 프로세스들에 속합니다. 이러한 프로세스들을 임시로 보조기억장치 일부 영역으로 쫓아내고, 그렇게 해서 생긴 메모리상의 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식을 스와핑(swapping) 이라고 합니다.

이때 프로세스들이 쫓겨나는 보조기억장치의 일부 영역을 스왑 영역(swap space) 이라고 합니다.

그리고 현재 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것을 스왑 아웃(swap-out),

반대로 스왑 영역에 있던 프로세스가 디시 메모리로 옮겨오는 것을 **스왑 인(swap-in)**이라고 합니다. 스왑 아웃 되었던 프로세스가 다시 스왑 인될 때는 스왑 아웃되기 전의 물리 주소와는 다른 주소에 적재될 수 있습니다.

스와핑을 이용하면 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리 크기보다 큰 경우에도 프로세스들을 동시 실행할 수 있습니다.

메모리 할당

프로세스는 메모리 내의 빈 공간에 적재되어야 합니다.

메모리 내에 빈 공간이 여러 개 있다면 프로세스를 어디에 배치해야 할까요?

비어 있는 메모리 공간에 프로세스를 연속적으로 할당하는 방식을 알아봅시다.

여기에는 대표적으로 최초 적합, 최적 적합, **최악 적합**의 세 가지 방식이 있습니다.

가령 20MB 크기의 프로세스를 적재하고 싶다고 해봅시다. 메모리의 사용자 영역은 총 200MB라고 가정해 보죠. 프로세스를 적재할 수 있는 빈공간은 빈공간 A, B, C 세 군데가 있습니다.