Linux内存管理-详解mmap原理

本文详细介绍了Linux中mmap的工作原理,通过mmap,进程可以将文件映射到虚拟内存,实现文件的内存访问,甚至实现多进程间的内存共享。虚拟空间是进程看到的地址空间,通过MMU进行虚拟地址到物理地址的转换。mmap使得进程可以直接读写内存,操作会同步到文件。当进程访问映射的内存时,若触发缺页异常,操作系统会分配物理内存并复制文件数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 一句话概括mmap

mmap的作用,在应用这一层,是让你把文件的某一段,当作内存一样来访问。将文件映射到物理内存,将进程虚拟空间映射到那块内存。

这样,进程不仅能像访问内存一样读写文件,多个进程映射同一文件,还能保证虚拟空间映射到同一块物理内存,达到内存共享的作用。

2. 虚拟内存?虚拟空间?

其实是一个概念,前一篇对于这个词没有确切的定义,现在定义一下:

虚拟空间就是进程看到的所有地址组成的空间,虚拟空间是某个进程对分配给它的所有物理地址(已经分配的和将会分配的)的重新映射。

而虚拟内存,为啥叫虚拟内存,是因为它就不是真正的内存,是假的,因为它是由地址组成的空间,所以在这里,使用虚拟空间这个词更加确切和易懂。(不过虚拟内存这个词也不算错)

2.1 虚拟空间原理

2.1.1物理内存

首先,物理地址实际上也不是连续的,通常是包含作为主存的DRAM和IO寄存器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值