Linux OS - Advanced of 进程 (IPC-共享内存)

本文深入浅出地解析了进程间通信的核心机制——共享内存,通过图解的方式阐述了其基本原理及操作流程。共享内存允许多个进程共享同一块物理内存,实现高效的数据交换。关键在于理解临界区的概念,即同一时刻仅允许一个进程访问共享内存,以避免数据竞争。本文还特别强调了mmap()函数的作用,它在进程间通信中的角色及工作方式。

由于进程都有自己的私有地址空间,只能由自己来访问,那就意味着其它进程不能访问这个进程的地址空间,下文将用通俗的话和图解细说进程间是怎么通信的。

共享内存是linuxIPC通信最快的,基本原理是:多个进程共享一个物理内存(物理内存映射到共享此内存的进程地址空间)(公共的),看下图:



一个进程向共享内存中写入数据,共享这块内存的进程可以立即看到,在共享的时候 数据是一直保存在共享内存中的,并没有写入数据到文件,在解除映射的时候就会把数据写入文件, 这里就是mmap()这个函数干的事了




对共享内存的访问的数据称为临界区,临界区也就意味着任何时候只有一个进程访问临界区,


A先T1时间进入临界区,然后B想进入的时候,被互斥在外,等A在T2离开的时候B顺利进入!


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值