Intermediate Topic 34 of 51 Operating Systems
Memory Mapped Files
Treating file contents as memory regions.
How it works
Memory mapping, via mmap, associates a file or device with a region of a process's virtual address space, so file contents are accessed like ordinary memory and the OS loads pages on demand through the page cache. Writes to a shared mapping are eventually written back to the file, and private mappings use copy-on-write. Several processes can map the same file to share memory.
Step-by-step walkthrough
- A file is mapped into the address space with mmap.
- No data is read yet.
- The process touches an address.
- A page fault loads that page from the file via the page cache.
- Further reads and writes are plain memory accesses and the OS flushes changes back.
Where it is used
Loading executables and shared libraries, databases like LMDB, fast random access to large files, shared memory between processes and zero-copy reading use memory mapping.
Common pitfall
I/O errors turn into signals instead of return codes, which is hard to handle. Truncating a file while mapped can crash the program. Mapping huge files on 32-bit systems exhausts address space. Page faults make latency unpredictable, and sequential reads may be faster with plain read and readahead. Synchronize with msync when durability matters.
Where it fits in the course
Memory Mapped Files is topic 34 of 51 in Operating Systems, rated Intermediate. It follows Memory Allocation. The next topic is File Systems.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Operating Systems quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Operating Systems quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Memory Mapped Files?
Where do people use Memory Mapped Files?
What is the most common mistake with Memory Mapped Files?
What should I learn before this topic?
How can I practice it?
Is Memory Mapped Files hard to learn?
How long does it take to learn Memory Mapped Files?
Which topics are related to Memory Mapped Files?
What should I study after Memory Mapped Files?
Related topics
- Memory Allocation (Operating Systems)
- File Systems (Operating Systems)
- Thrashing (Operating Systems)
- Inodes (Operating Systems)
- Manual Memory Management (Languages & Compilers)
- Memory Barriers (Concurrency & Parallelism)
- Memory Hierarchy (Computer Architecture & Logic)