2014-05-11 4 views
1

O_CREAT를 사용하여 열린 파일을 만든 다음 ftruncate를 사용하여 파일 크기를 설정합니다. 이제 MAP_SHARED로 파일을 mmap하고 파일을 작성하기 시작합니다. 파일을 디스크에 다시 쓰는 방법을 알고 싶었습니다.mmap을 사용하여 파일 쓰기.

매우 구체적으로 말하자면, 이것은 제로 사본이 될 것입니다. 즉, 버퍼 캐시의 페이지가 프로세스 주소 공간에 직접 매핑됩니다.이 경우 페이지 데몬이 페이지를 디스크로 다시 플러시합니다 계획되었다. 그렇지 않으면 페이지 캐시에 페이지가 있고 버퍼 캐시에 페이지가 있습니다. 이것이 세분화 된 시나리오에서 데이터가 페이지 캐시의 페이지에서 버퍼 캐시의 페이지로 복사됩니까? 리눅스가 통합 된 버퍼 캐시를 가지고 있기 때문에

당신이 제공하고자하는 좀 더 통찰력이 있다면, 그것은 환영 :-)보다 더 될 것입니다

답변

2

, 그래이 제로 카피입니다. 대부분의 최신 OS에는 통합 버퍼 캐시가 있습니다.

관련 문제