그것은 말한다
p: SWAP -- Swapped size (kb)
The non-resident portion of a task's address space.
q: RES -- Resident size (kb)
The non-swapped physical memory a task has used.
RES = CODE + DATA.
좋아요, "비거주자 부분"이란 무슨 뜻인가요?
SWAP은 하드 드라이브를 추가 메모리로 지칭합니까?
답변1
예, 스왑은 RAM이 가득 찼을 때 하드 드라이브를 사용하여 메모리를 절약하는 것을 의미합니다. Linux에서는 일반적으로 별도의 스왑 파티션에 보관되지만 파일을 사용할 수 있습니다. Mac과 Windows는 일반 파일 시스템의 파일을 사용합니다. 이와 같이 초과 메모리를 디스크에 페이징하면 운영 체제에서 실제 RAM을 확보하기 위해 프로세스를 종료할 필요가 없어집니다. 이것이 바로 Linux 설치용 스왑 파티션을 설정하는 것이 종종 권장되는 이유입니다. 그러나 실제 RAM보다 속도가 훨씬 느리기 때문에 최후의 수단으로만 사용됩니다(그리고 스왑으로 보낼 페이지(4kB 메모리 블록)를 파악하는 데 너무 많은 시간이 걸리는 이유).
답변2
구성된 페이징 장치 외에도 스왑은 mmap을 사용하여 매핑된 파일의 페이지도 계산합니다. 이러한 페이지는 프로그램에서 참조할 때만 실제 RAM에 로드됩니다. 이러한 페이지는 페이지 아웃이 필요한 경우 스왑 장치가 아닌 원본 파일로 페이지 아웃됩니다.
paxdiablo는 이에 대해 다음과 같이 설명합니다.https://stackoverflow.com/questions/1972765/mmap-problem-allocates-huge-amounts-of-memory
또는 mmap 매뉴얼 페이지를 참조하십시오.