1.共享内存的概念
共享内存就是在物理内存中开辟一段空间,通过页表映射到虚拟地址空间,使两个不同的进程可以看到同一块资源,实现进程间的通信。共享内存是进程间通信最快的方式。
2.共享内存的接口
(1)首先创建一段内存空间。
key:系统标识,有唯一性。通过函数接口创建。
size:空间大小,必须是4KB的倍数。
shmflg:如果空间不存在就创建,存在就获取。
(2)让页表与空间挂接。
const void*shmaddr:通产为NULL
int shmflg:通常为0
(3)不通信时,去关联,子修改页表。
(4)销毁内存空间。
3.实现共享内存
通过命令行:ipcs -m 可以查看到当前共享内存的情况(看是否存在,挂接,销毁等)。
通过命令行:ipcrm -m shmid可以销毁共享内存。
从此图我们可以看到已经实现两个进程的挂接,可以实现进程间的通信。
成功实现通信