: 수행 중인 프로세스의 주소 공간 전체를 일시적으로 메모리에서 디스크의 스왑 영역에 내려놓는 것
이때 디스크의 스왑 영역은 백킹스토어(backing store)이라 한다.
- How ? 메인메모리에 올라올 수 있는 프로세스가 다 차면, 가장 사용하지 않는 페이지를 Swap-out 해서 Backing storage에 넣어 놓고 다시 필요할 때 Swap-in한다.
- swap out : 메모리에서 디스크로 내보내는 것
- swap in : 디스크에서 메모리로 올리는 것
- Why ? 이를 통해 프로그래밍의 정도(degree of multiprogramming)을 조절한다. 즉, 메모리에 존재하는 프로세스의 수를 조절하는 것이다.
- Who ? 중기 스케줄러가 CPU에서 시행되지 않는 프로세스들(ready상태거나 waiting상태) 중 일부를 선택해 스왑아웃시킨다.
- 중기 스케줄러(Swapper) : 메모리에 적재된 프로세스의 수를 동적으로 조절하기 위한 스케줄러이다.
프로세스 단위로 스와핑을 하면 비효율적이기 때문에 현재는 가상 메모리(페이징,세그멘테이션)를 사용한다. (다만, 메모리-디스크 사이에서 페이지, 세그먼트가 이동할 때도 swap out, swap in한다는 용어를 사용하기도 함)
1. 중기 스케줄러(스와퍼)에 의해 스왑 아웃시킬 프로세스를 선택한다.
2. 스와퍼가 선택한 프로세스에게 할당된 메모리 주소 공간 전체를 디스크의 스왑 영역으로 스왑 아웃(swap out)시킨다.
3. 여유가 생긴 메모리 공간에 필요한 프로세스의 메모리 주소 공간을 스왑 인(swap in) 시킨다.
