2014-01-31 6 views
0

이 질문은 unix 환경에서 Mem-Mapped 파일에 적용 할 수있는 kind-off 제한 조건을 이해하기위한 것입니다.유닉스 : 메모리 매핑 된 파일, 제약 조건이 적용 가능합니까?

우리는 읽기 전용 액세스로 Key-Value의 Mem-mapped 파일을 호스팅하고 제공하는 유닉스 환경에서 실행되는 APP를 보유하고 있으며, 새로운 버전의 파일을 복사 할 때 런타임에 새로 고침 할 수 있습니다 키 - 값 쌍).

파일이 Mem-Mapped이므로 더 많은 키 - 값 쌍으로 파일을 새로 고침 할 때 VIRT 메모리 소비는 RES 메모리 소비가 많지 않아 증가합니다.

PID PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
12948 16 0 43240 9936 2996 S 0.0 0.1 0:00.00 lookup_server 
12951 16 0 562m 16m 9972 S 0.0 0.1 0:00.09 lookup_server 

내가 전체 파일이 가상 메모리 하드 드라이브에서 페이지 및 수요 만 몇 페이지로 복사됩니다 때문입니다 알고있는 것처럼

는 RES의 (MEM)에 있습니다.

는 파일 페이징 된 것 같이/아웃 주문형 OS에서의 Mem-매핑 파일과

  1. 는, 파일 크기, 사용 가능한 실제 RAM에 한정되지 않고, 내 가정이 바로입니다.
  2. 가상 메모리를 위해 구성된 디스크 공간 만 제한 요소가 될 수 있습니다. 이 경우 가상 메모리 확장을 위해 OS가 식별 한 디스크 공간을 어떻게 식별 할 수 있습니까? 파일의 가상 메모리 풋 프린트는 하드 디스크에 어디에 저장됩니까?
+0

가상 메모리가 디스크 공간으로 제한되는지, 디스크 unix가 가상 메모리 페이지를 유지할 수 있는지 알고 싶으십니까? – Shashi

답변

0

2) MAP_PRIVATE로 파일을 매핑 한 다음 메모리의 페이지 만 수정하는 경우에만 2)가 적용됩니다. MAP_PRIVATE없이 페이지를 매핑하면 파일이 이미 디스크에 있으므로 스왑 파일에 복사 할 필요가 없습니다. 1) 올바른지 - 사용 가능한 메모리보다 큰 파일을 매핑 할 수 있습니다. 그러나 운영 체제는 여전히 페이지 테이블을 할당해야하므로 1TB 파일을 매핑하지 마십시오.