Memory-Mapped I/O
Memory-mapped I/O uses the same address space to address both main memory and I/O devices.
- Reads/writes to those addresses are interpreted as commands to that device
 - When the processor issues the address and data, the memory system ignores it since that region is mapped to I/O. The address encodes the device identity and type of transmission.
 
A memory-mapped ļ¬le is a segment of virtual memory that has been assigned a direct byte-for-byte correlation with some portion of a ļ¬le.
Beneļ¬ts:
- Orders of magnitude faster than system calls
 - Input can be ācachedā in RAM memory (page/ļ¬le cache)
 - A ļ¬le requires disk access only when a new page boundary is crossed
 - Memory-mapping may bypass the page/swap ļ¬le completely
 - Load and store raw data (no parsing/conversion)
 
I'm confused, what is the alternative?
The alternative is the standard IO operations, where you
read()orwrite()from IO, which is a System Call.