프로세스 A는 A의 크기 만큼 메모리 주소를 할당 받아 연속적으로 배치한다.
프로세스 B는 A 이후에 B의 크기만큼 연속적인 메모리 주소를 할당받아 배치한다.이렇게 프로세스에 연속적인 메모리 공간을 할당하는 방식을 연속 메모리 할당이라고 한다.
메모리에 적재된 프로세스들 중 현재 실행되지 않는 프로세스들을
임시로 보조기억장치 일부 영역(스왑 영역
)으로 쫒아내고
이 빈공간에 새로운 프로세스를 적재하여 실행하는 방식
이때 프로세스가 스왑 영역으로 옮겨지는 것을
스왑 아웃
이라고 하고
스왑 영역에 있던 프로세스가 다시 메모리로 옮겨 오는 것을스왑 인
이라고 한다.
이때 스왑 아웃 되기전에 물리 주소와 다른 주소에 적재될 수 있다.
실행할 프로세스의 총 필요 메모리 공간이 실제 메모리 공간보다 클 경우에도
스와핑을 통해서 동시에 실행되는 것처럼 보이게 할 수 있다.
프로세스를 적재할 때 비어 있는 공간이 여러 곳이 있을때
어느 공간에 할당할지 선택할 방식이 필요하다.대표적으로
최초 적합(First Fit)
,최적 적합(Best Fit)
,최악 적합(Worst Fit)
이 있다.
hole(빈 공간)을 순서대로 순회하다가 적재할 수 있는 공간을 발견하면
그 공간에 프로세스를 배치하는 방식검색을 최소화할 수 있고 빠른 할당이 가능하다.
프로세스를 적재할 수 있는 hole들 중, 공간이 가장 작은 곳에 적재하는 방식
프로세스를 적재할 수 있는 hole들 중, 공간이 가장 큰 곳에 적재하는 방식
Best Fit 의 단점을 보안하기 위해 나오게 된 전략이다.
Best Fit은 남은 공간을 적게 만들자는 취지인데
이러한 남은 공간이 쌓이다보면 메모리 관리 효율성이 떨어진다.이 때문에 남는 공간을 크게 만들어서 그 공간에 다른 프로세스가 할당될 수 있게 하자는
취지에서 이 전략이 나오게 됐다.
메모리를 고정된 크기로 파티셔닝하고 위치를 고정시킨 후 그 크기 안에 프로세스를 할당하는 방식
이 파티션의 크기는 모두 같을 수도 있고 다를 수도 있다.구현이 쉽고 운영체제의 오버헤드가 적다.
내부단편화란 hole의 공간이 할당된 프로세스보다 커서
이후에 사용하지 못하는 빈 공간
이 생기는 현상
이 공간은 hole로 취급하지 않는다.파티션에 할당하고 남는 공간에 다른 프로세스가 할당될 수 없다.
파티션된 메모리 영역을 늘리거나 줄일 수 없고, 위치를 옮길 수 없다.
프로세스가 들어갈 수 있는 hole에
프로세스 크기에 딱 맞게 파티셔닝 하는 방식.
이 파티션들은 위치가 고정되어 있지 않아서 이동이 가능하다.
파티션에 새로운 프로세스를 할당할때마다 파티선의 크기가 변하고
이를 운영체제가 추적해야하기 때문에 오버헤드가 크다.
hole 각각의 공간이 할당할 프로세스의 필요메모리 공간보다 작고
모든 hole 공간의 합이 할당할 프로세스의 메모리보다 큼에도 불구하고
각 hole의 공간이 프로세스의 크기보다 작아서 할당하지 못하는 문제
흩어져 있는 hole을 하나로 모으는 방식으로
메모리 내에 적재된 프로세스들을 몰아 배치시켜
각 hole을 모아 하나의 큰 hole로 만드는 방법
하지만 메모리의 있는 내용을 옮기는 작업은 많은 오버헤드를 야기하며
어떤 프로세스를 어떻게 움직여야 오버헤드를 최소화하며 압축할 수 있는지에 대한
명확한 방법을 결정하기 어렵다.이에 따라 외부 단편화를 없애기 위한 방법으로
페이징 기법
이 등장하게 되었다.
이것이 오늘날 까지도 사용되고 있는가상 메모리 기법, 그 중에서도 페이징 기법
이다.
인접한 hole을 하나의 hole로 모으는 방식