

정의
- 현재 사용하지 않는 메모리 내용을 디스크로 스와핑하여 다른 응용 프로그램이나 프로세스에서 사용할 수 있도록 하는 메모리 회수 방법.
- 스와핑의 기본적인 목표는 컴퓨터 하드웨어가 실제로 보유하는 것보다 더 많은 사용 가능한 메모리를 활성화하는 것에 있다.
- 운영 체제에서의 스와핑은 유휴 또는 차단된 프로세스를 주 메모리에서 보조 메모리로 일시적으로 교체하여 실행할 준비가 된 프로세스에 대한 적절한 메모리 활용도와 메모리 가용성을 보장하는 메모리 관리 체계다.
- 운영 체제의 주요 목표는 CPU 사용률 최대화이다 . 즉, 매번 프로세스가 실행되어야 하고, CPU가 유휴 상태로 유지되어서는 안 되며, 프로세스가 중단되거나 차단 되어서는 안 된다. 운영 체제의 이러한 목표를 달성하기 위해 다양한 프로세스 관리 및 메모리 관리 체계가 설계되었다.
- 메모리의 정확한 상태 또는 페이지가 디스크에 복사되어 데이터를 연속적으로 만들고 나중에 쉽게 복원할 수 있다.
- 요구사항에 따라 물리적 메모리와 가상 메모리 사이를 효율적으로 전환할 수 있다.
- 우선순위 기반 선점형 스케줄링이 사용된다.
- 메모리 스와핑은 OS 커널이나 (가상화 환경의 경우) 하이퍼바이저에 의해 수행된다.
- 운영 체제에서, Swap의 목적은 하드 디스크의 데이터에 액세스하여 응용 프로그램이 사용할 수 있도록 RAM으로 옮기는 것이다.
- 스와핑은 RAM에서 데이터를 사용할 수 없을 경우에만 사용된다.
- 물리적인 메모리(RAM)를 초과하여 메모리 부족 상태에 놓였을 때 발생한다.
- 기본적으로 메모리 스와핑 프로세스는 물리적 RAM이 완전히 소모되고 추가 프로세스와 애플리케이션 실행을 위해 공간이 필요한 경우 수행된다.
- 운영체제(혹은 하이퍼바이저)는 이를 자동으로 관리하고, 물리 메모리 공간을 스왑 공간에 매핑해 가상 메모리 용량(비물리적 RAM)을 형성한다.
- 스왑 공간 : 하드 드라이브에 저장된 가상 메모리 조각
- 시스템에서 메모리 스와핑을 수행해야 하는 애플리케이션이 많아질수록 오버헤드 증가로 인해 성능이 느려진다.
- 시스템 성능에 영향을 미칠 수 있지만 메모리를 관리하여 둘 이상의 프로세스를 실행하는데 도움이 된다. 따라서 OS에서의 스와핑은 메모리 압축 기술이라고도 알려져 있다.
- 다중 프로그래밍에서 CPU활용도를 높이려면 스와핑이라는 메모리 관리 체계를 사용할 수 있다.
- 스와핑 프로세스는 시스템 성능을 저하시키지만 더 크고 여러 프로세스를 동시에 실행할 수 있다.
- 이 때문에 스와핑을 메모리 압축이라고도 한다.
- CPU 스케줄러는 어떤 프로세스가 Swap-in 되고 Swap-out 되는지를 결정한다.
- 스왑 아웃된 프로세스가 저장되는 보조 메모리 영역을 스왑 공간 이라고 한다 . 스와핑 방법은 보조 메모리에 스와핑된 프로세스의 임시 대기열을 형성한다.