首页 > 其他分享 >mmap映射类型

mmap映射类型

时间:2023-08-10 23:46:57浏览次数:23  
标签:文件 映射 mmap 进程 匿名 内存 类型 共享

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

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

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

私有映射和共享映射

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

标签:文件,映射,mmap,进程,匿名,内存,类型,共享
From: https://www.cnblogs.com/linhaostudy/p/17621898.html

相关文章

  • java_数据类型
    graphLR;java数据类型-->基本数据类型java数据类型-->引用数据类型1.基本类型graphLR;基本类型-->数值型基本类型-->字符型("字符型(char[2字节])")基本类型-->布尔型("布尔型(boolean[1字节]存放true/false)")数值型-->整数("整数(byte[1......
  • 《VTK图形图像开发进阶》第3章VTK基本数据结构——单元类型
    数据集由一个或多个单元组成。一系列有序的点按指定类型连接所定义的结构就是单元(Cell),单元是VTK可视化系统的基础。这些顺序连接的点定义了单元的拓扑结构,而点的坐标定义了单元的几何结构。如下图是类型为六面体(Hexahedron)的单元,顶点列表(由点的索引号表示,即8-10-1-6-21-22-5......
  • 在Java中操作Redis_Spring Data Redis使用方式_其他类型的数据操作
        ......
  • 在Java中操作Redis_Spring Data Redis使用方式_操作字符串类型的数据
        ......
  • Java 数据类型和变量的完整指南
    目录一、字面常量1.1什么常量?1.2常见的六种常量类型二、数据类型2.1什么是数据类型?2.2基本数据类型:2.3引用数据类型三、变量3.1什么是变量?3.2变量的命名规则3.3变量的作用域3.4变量的被final修饰四.类型转换4.1什么是类型转换?4.2自动类型转换4.3强制类型转换4.4注意事项4.5类型提升......
  • 字符设备驱动-11.mmap机制-实例分析
    1mmap驱动要做的事情确定物理地址确定属性:是否使用cache、buffer建立映射关系参考Linux驱动源文件代码:我们要验证mmap功能,在驱动程序中申请一个8K的buffer,让APP通过mmap能直接访问。2mmap驱动代码示例分析linux内核中常用的内存申请方式:函数名说明......
  • 【pandas小技巧】--列值的映射
    映射列值是指将一个列中的某些特定值映射为另外一些值,常用于数据清洗和转换。使用映射列值的场景有很多,以下是几种常见的场景:将字符串类型的列中的某些值映射为数字。例如,将“男”和“女”分别映射为0和1,以便进行机器学习算法的训练和预测。将缩写替换为全称。例如,将“USA......
  • 两台物理机挂载共享磁盘,重新扫描识别磁盘,多路径,映射
    一,添加新物理硬盘。 二,SSH登陆服务器。执行:lsblk命令查看磁盘,并没有新加的硬盘fdisk-l查看硬盘及分区状态查看主机总线号,命令:ls/sys/class/scsi_host/重新扫描SCSI总线,以添加新设备:echo"---">/sys/class/scsi_host/host0/scanecho"---">/sys/class/scsi_host/host1......
  • 控制时间——时间重映射
    如何把视频倒着放图层-时间-时间反向图层冻结帧,定在某一帧Ctrl+shift+D把视频切分开把后面的顶住,就可以做出前面动,到某一帧定住的效果了时间-在最后一帧冻结字面意思启动时间重映射在某个点打上关键帧,然后拖动关键帧,就可以改变某一段时间的快慢了当然也可以把关键帧......
  • redis 2.8--7.0 常用数据类型及性能测试工具
    redis2.8--7.01.redis-cli2.redisincrpageviewredisincrpageviewredisgetpageview3.Redishash是一个string类型的field(字段)和value(值)的映射表,hash特别适合用于存储对象。Redis中每个hash可以存储232-1键值对(40多亿)hash:hmsetkeyfiled1valuefil......