오랫동안 사용되지 않은 프로세스들을 임시로 보조기억장치 일부 영역으로 쫓아내고, 그렇게 해서 생긴 메모리상의 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식
swap space: 이때 프로세스들이 쫓겨나는 보조기억장치의 일부 영역 swap out: 현재 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것을 스왑 아웃 swap in: 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것
swapping을 이용하면 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리 크기보다 큰 경우에도 프로세스들을 동시에 실행할 수 있다.
메모리 내에 빈 공간이 여러 개 있다면 프로세스를 어디에 배치해야 할까요?
운영체제가 메모리 내의 빈 공간을 순서대로 검색하다가 적재할 수 있는 공간을 발견하면 그 공간에 프로세스를 배치하는 방식. 빠른 할당이 가능함.
프로세스가 적재될 수 있는 공간 중 가장 작은 공간에 프로세스를 배치하는 방식.
프로세스가 적재될 수 있는 공간 중 가장 큰 공간에 프로세스를 배치하는 방식.
프로세스 바깥에 생기는 빈 공간들이 여기저기 파편화 되어 그 공간보다 큰 프로세스를 적재하기 어려운 상황을 초래하고, 결국 메모리 낭비로 이어짐.
해결방안으로 compaction이 있다. 여기저기 흩어져 있는 빈 공간들을 하나로 모으는 방식이다. 하지만 작은 빈 공간들을 하나로 모으는 동안 시스템은 하던 일을 중지해야 하고 많은 오버헤드를 야기한다.
가상 메모리 기법, 그 중에서도 페이징 기법이 많이 사용된다.