Linux 操作系统 - Advanced of 进程


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

共享内存

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

Linux 操作系统 - Advanced of 进程 (IPC-共享内存)

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

Linux 操作系统 - Advanced of 进程 (IPC-共享内存)

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

Linux 操作系统 - Advanced of 进程 (IPC-共享内存)

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

  • 1
  • 2
  • 下一页
【内容导航】
第1页:IPC-共享内存 第2页:IPC-管道, 消息队列, 信号量

相关内容