当前位置:首页 > 内存 > 正文

mmap内存映射文件

  • 内存
  • 2024-06-16 17:41:52
  • 9448

一、Linux的mmap文件内存映射机制是什么?

共享内存允许两个或多个进程共享特定的存储区域,因为数据不需要来回复制,所以是最快的进程间通信机制。共享内存可以通过普通文件的mmap()来实现(特殊情况也可以使用匿名映射),也可以通过系统的V共享内存机制来实现。该应用的界面和原理很简单,但内部机制却很复杂。为了实现更安全的通信,它常常与信号量等同步机制一起使用。mmap的机制是在磁盘上创建一个文件,并在每个进程内存中开辟一个单独的空间用于映射。如果进程很多,则不会消耗多少实际物理内存(主存)。shm机制:每个进程的共享内存直接连接到实际的物理内存。

1mmap保存在当前硬盘上,但当前保存并没有反映在主存中。优点:存储容量可以很大(超过主存缺点:进程间读写速度比主存慢);

2Shm存储在物理内存(主存)中,当前存储量直接反映在主存中。优点:进程间访问速度(读写)比磁盘快:存储容量不能太大(超过主存:如果指定的存储容量不大,则使用)。shm如果存储容量大则使用mmap。