简介

  • Linux系统下进程键通讯方式之共享内存,相关笔记

共享内存

  • 共享内存(shared memory)指在多处理器的计算机系统中,可以被不同中央处理器访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存。由于其他处理器可能也要访问,任一缓存数据更新后,共享内存就需要立即更新,否则不同处理器可能用到不同的数据。
  • 共享内存的类似方案有分布内存,分布共享内存,用以解决同类问题。
  • 共享内存区是可用IPC形式中最快的。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传递就不再涉及内核。然而往该共享内存区存放消息或从中取走消息的进程间通常需要某种形式的同步。我们在第三部分讨论了各种形式的同步:互斥锁,条件变量,读写锁,记录锁,信号量。
  • 这里说的: 不再涉及内核的含义是: 进程不再通过执行任何进入内核的系统调用来彼此传递数据。显然,内核必须建立允许各个进程共享该内存区的内存映射关系,然后一直管理该内存区。

相关的方法

  • <sys/mman.h>头文件
    • mmap()函数