题36

题目

内存映射可以将一个文件映射到进程的虚拟地址空间的某个区域, 实现文件磁盘地址和进程虚拟地址空间的映射关系,下列说法中正确的是 ( )。
A. 内存映射文件是将整个文件内容一次性加载到内存中的一种方式
B. 内存映射文件只适用于读取文件, 不支持对文件进行写操作
C. 内存映射文件可以通过修改内存中的数据来实现对文件的写操作
D. 由于进程的虚拟地址空间是独立的, 内存映射文件不支持多进程映射到同一文件

分析

直接建立的虚拟地址和存储文件的磁盘上的地址的关系

C
内存映射文件将一个文件映射到进程的虚拟地址空间的某个区域, 让进程可以按读写内存的方式来读写文件, 正确。
内存映射文件不是一次性加载整个文件,而是按需加载文件的部分, 这样既节省空间, 又方便处理大文件。
虽然进程的虚拟地址空间是独立的, 但操作系统可以通过页表将对应的虚拟地址空间映射到相同的物理内存, 很方便实现多个进程共享同一文件。