Figure 7:
Left: (a) Segmented process before mapping files into its address space (b) Process after mapping
existing file abc into one segment creating new segment for xyz. Right: Memory mapped files and paging
|
- Avoids translating from on-disk format to in-memory format (and vice versa)
- Supports complex structures
- No read/write systems calls
- File simply (paged or swapped) to file system
- Unmap when finished
- Problems
- Determining actual file size after modification; Round to nearest whole page (even if only 1 byte file)
- Care must be taken if file is shared; E.g. one process memorymapped and one process read/write syscalls
- Large files may not fit in the virtual address space
2004-05-16