나는 커널 기능 open()
과 그 기능을 mmap()
알고 있습니다 msync()
. 그러나 어떤 플래그 조합을 시도하더라도 커널은 여전히 자체 간격을 사용하여 업데이트를 플러시하거나 전혀 플러시하지 않습니다(해당 에 매핑하는 경우 MAP_PRIVATE
). 내가 틀렸기를 바랍니다. 플러싱이 발생하고 발생하지 않을 때를 완전히 제어할 수 있는 방법이 있습니까? 파일을 매핑하고 몇 가지 사항을 변경한 다음오직이전보다 플러시하기로 결정했을 때! 가능합니까?
답변1
내 자신의 질문에 대한 대답은 다음과 같습니다. mmap
using 플래그를 사용하여 파일을 매핑 MAP_PRIVATE
한 다음 하드 드라이브에 쓰고 싶을 때만 MAP_SHARED
다시 매핑하고 내용을 복사하는 데 사용할 수 있습니까 memcpy
? 이것이 효율성 측면에서 어떻게 작동한다고 생각하십니까?