前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mmap映射类型

mmap映射类型

作者头像
233333
发布2023-08-11 16:59:36
1710
发布2023-08-11 16:59:36
举报

文件映射和匿名映射都是操作系统中对于内存映射的两种类型,主要应用于进程间的通信或者大量数据的处理。

  • 文件映射,也就是内存映射文件,是把一个文件或者文件的一部分映射到进程的地址空间,它允许对文件进行随机访问。当进程对这块内存区域进行读写还操作时,系统会自动把更改写回磁盘文件。这样做的好处是可以像访问普通内存一样对文件进行操作,无需调用read , write这样的系统调用,提高了文件操作的效率。
  • 匿名映射则不涉及到具体的文件,仅将物理内存区域映射到进程的地址空间,通常用于进程之间的共享内存。通过这种映射的方式,多个进程可以共享一块内存区域,任何一个进程对该内存区域的修改都将对其他进程可见,这样在进程间进行通信就变得非常的方便。

总的来说,文件映射和匿名映射主要的区别在于是否对应一个真实的磁盘文件,以及使用的场景有所不同。

私有映射和共享映射

  • 私有映射是指每个进程都有自己独立的地址空间,它不能与其他进程共享。私有映射下的数据,如果被修改,那么就会产生一个新的物理页,原来的物理页将不再被这个进程使用。这种映射方式有利于保护进程数据的安全,一般用于堆、栈等非共享数据。
  • 共享映射则允许多个进程映射同一片物理内存,使得多个进程能够共享同一份数据。共享映射下的数据,如果被一个进程修改,其他进程也可以看到修改后的结果。这种映射方式主要用于实现共享内存、文件映射等功能。

映射类型

私有映射

共享映射

匿名映射

私有匿名映射-通常用于内存分配

共享匿名映射-通常用于进程间共享内存

文件映射

私有文件映射-通常用于加载动态库

共享文件映射-通常用于内存映射IO,进程间通讯

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档