Memory-Mapped Files
Memory-mapped file 把 file 的某段內容映射到 process virtual address space。Application 之後用 memory load / store 存取該區域;真正的 disk I/O 由 page fault 與 write-back 觸發。
file blocks ↔ virtual pages ↔ process address space基本流程:
- Process 要求 map file range。
- OS 建立 virtual pages 與 file offsets 的 mapping。
- 第一次碰到尚未載入的 page 時發生 page fault。
- OS 從 file system 讀入對應 block。
- Writable mapping 被修改後,dirty pages 之後再 write-back。
Memory mapping 適合 large file random access、loader、shared libraries,也可用於 shared memory。
Related:D-OS-Ch13ea-Shared_Memory_via_Memory_Mapped_Files、D-OS-Ch10b-Demand_Paging、D-OS-Ch10ba-Page_Fault