【自我笔记之Linux】进程间通信之共享内存

共享内存:共享内存是通过内核对象,将多个进程中的一个虚拟地址映射到内核对象所申请的一块物理内存上,从而实现进程间数据的通讯。

特点:

  • 因为多个进程操作同一块物理内存,所以进程必须同步执行
  • 因为进程直接通过虚拟地址操作物理内存,所以不需要拷贝数据,共享内存是最快的一种进程间通讯方
  • 需要拷贝数据,共享内存是最快的一种进程间通讯方式

两个进程的虚拟地址相等或不等,对于共享内存无影响。

虚拟地址需要通过进程页表,进行页面映射才能找到物理内存空间

共享内存共享物理内存

 

共享内存是最快的IPC(进程间通讯)原因:

1、在通讯之前,访问内核对象,需要用户态切换内核态,但是真正发送数据时,直接通过指针操作空间,不需要用户态切换内核态

2、共享内存可以直接通过指针将数据写到共享内存区域,接收方直接通过指针操作共享内存区域的数据。相比于管道、消息队列少了两次数据拷贝

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值