스와핑(Swapping)은 모든 프로세스를 일시적으로 주 메모리에서 보조 메모리로 교환하여 주 메모리를 다른 프로세스에서 사용할 수 있도록 하는 메모리 관리 체계입니다. 주 메모리 활용도를 향상시키는 데 사용됩니다. 보조 메모리에서는 스왑 아웃된 프로세스가 저장되는 장소를 스왑 공간이라고 합니다.
운영 체제에서 스와핑하는 목적은 하드 디스크에 있는 데이터에 액세스하여 응용 프로그램이 사용할 수 있도록 RAM으로 가져오는 것입니다. 기억해야 할 점은 스와핑은 데이터가 RAM에 없을 때만 사용된다는 것입니다.
스와핑 프로세스는 시스템 성능에 영향을 주지만 더 크고 두 개 이상의 프로세스를 실행하는 데 도움이 됩니다. 이것이 스와핑을 메모리 압축이라고도 하는 이유입니다.
스와핑의 개념은 Swap-in과 Swap-out의 두 가지 개념으로 더 나뉩니다.
- 스왑아웃은 RAM에서 프로세스를 제거하고 이를 하드 디스크에 추가하는 방법입니다.
- 스왑인(Swap-in)은 하드디스크에서 프로그램을 제거하고 다시 메인 메모리나 RAM에 넣는 방식이다.
예: 사용자 프로세스의 크기가 2048KB이고 스와핑의 데이터 전송 속도가 1Mbps인 표준 하드 디스크라고 가정합니다. 이제 주 메모리에서 보조 메모리로 전송하는 데 걸리는 시간을 계산해 보겠습니다.
User process size is 2048Kb Data transfer rate is 1Mbps = 1024 kbps Time = process size / transfer rate = 2048 / 1024 = 2 seconds = 2000 milliseconds Now taking swap-in and swap-out time, the process will take 4000 milliseconds.
교환의 장점
- 이는 CPU가 단일 메인 메모리 내에서 여러 프로세스를 관리하는 데 도움이 됩니다.
- 가상 메모리를 생성하고 사용하는 데 도움이 됩니다.
- 스와핑을 통해 CPU는 여러 작업을 동시에 수행할 수 있습니다. 따라서 프로세스는 실행되기까지 오래 기다릴 필요가 없습니다.
- 주 메모리 활용도가 향상됩니다.
교환의 단점
- 컴퓨터 시스템의 전원이 꺼지면 사용자는 상당한 교환 활동으로 인해 프로그램과 관련된 모든 정보를 잃을 수 있습니다.
- Swapping 알고리즘이 좋지 않은 경우 복합 방식을 사용하면 Page Fault 수가 증가하고 전체 처리 성능이 저하될 수 있습니다.
메모:
- 단일 작업 운영 체제에서는 단 하나의 프로세스만이 사용자 프로그램 메모리 영역을 차지하고 프로세스가 완료될 때까지 메모리에 유지됩니다.
- 멀티태스킹 운영 체제에서는 모든 활성 프로세스가 주 메모리에서 조정될 수 없는 상황이 발생합니다. 그런 다음 다른 프로세스가 들어갈 수 있도록 프로세스가 주 메모리에서 교체됩니다.