全站数据
8 4 2 0 5 8 1

mmap 的原理机制

唯美英语 | 简单学习,快乐成才!         
问题更新日期:2024-10-26 13:17:29

问题描述

mmap 的原理机制希望能解答下
精选答案
最佳答案

mmap原理

open一个文件,然后调用mmap系统调用,将文件的内容的全部或一部分直接映射到进程虚拟空间中文件存储映射部分;

完成映射关系后,mmap返回值是一个指针,进程可以通过采用指针方式读写操作这一段内存;

但mmap并不分配物理地址空间,只是占有了进程的虚拟地址空间,当多个进程需要同时访问这个文件的时候,每个进程都将文件所存储的内核缓冲区映射到自己的进程空间虚拟地址中。

当第一个进程访问内核缓冲区的时候,由于没有实际拷贝数据,这时候MMU(内存管理单元)在地址映射表中找不到与该虚拟内存空间相对应的物理地址,此时会触发缺页中断;

缺页中断后,内核会将文件的这一页数据读入到内核缓冲区中,并更新进程的页表,使得页表指向内核缓冲区这一页,之后有其他的进程再次访问这一页的时候,该页已经在内存中了