내가 이해한 바로는 스왑 공간을 사용하여 비활성 프로세스를 스왑하여 메모리를 확보할 수 있습니다. 그러나 단일 프로세스가 스왑 공간을 활용할 수 있습니까? 예를 들어, 메모리는 거의 없지만 스왑 공간이 큰 대형 하드 드라이브가 있는 시스템이 있는 경우, 큰 디스크 스왑 공간을 활용하여 많은 메모리가 필요한 프로세스가 (느리더라도) 계속 실행될 수 있습니까? 어떤 조치를 취해야 합니까? Linux가 이 문제를 자동으로 처리합니까?
답변1
스왑 공간을 제공하고 마운트하는 것 외에는 특별한 작업을 수행할 필요가 없습니다.
MMU(1990년대 초반 이후 대부분의 프로세서인 메모리 관리 장치)가 있는 프로세서의 경우 전체 주소 공간을 사용할 수 있지만 실제 메모리(RAM)가 모든 주소 범위 위치에 반드시 존재하는 것은 아닙니다. 메모리 위치가 지정되면 RAM은 조회 메커니즘을 사용하여 "연결"됩니다. 여유 RAM을 사용할 수 없는 경우 해당 내용을 스왑 공간에 기록하여 일부 블록이 해제됩니다.
물론, 프로세서는 기록된 메모리 주소 범위를 추적하므로 해당 범위의 주소가 다시 필요할 때 올바른 블록이 "교환"됩니다(보통 해당 주소를 기록하여 다른 RAM을 확보한 후). 이후 내용) .
실제 세부정보는 운영 체제에 따라 다릅니다. Wikipedia 기사페이징더 많은 것을 배우고 싶다면 여기에서 시작하는 것이 좋습니다.
수행하려는 작업에 대해 미리 주의하십시오. 경쟁하는 스왑 응용 프로그램은 시스템 속도를 쉽게 저하시켜 시스템이 정지된 것처럼 보이게 만들 수 있습니다.