文章参考自:http://blog.csdn.net/ljianhui/article/details/10253345(ljianhui的专栏)以及http://blog.csdn.net/liranke/article/details/5595740(liranke的专栏)
一、什么是共享内存
共享内存就是允许两个不相关的进程访问同一块内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址。如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。
特别提醒:共享内存并未提供同步机制,也就是说,在第一个进程结束对共享内存的写操作之前,并无自动机制可以阻止第二个进程开始对它进行读取。所以我们通常需要用其他的机制来同步对共享内存的访问,例如信号量、互斥锁,读写锁,记录锁等。
二、共享内存的使得
Linux提供了一组函数接口用于使用共享内存,它们声明在头文件 sys/shm.h中。