深入详解Linux进程间通信之共享内存(Shared Memory)

Posted 白马负金羁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入详解Linux进程间通信之共享内存(Shared Memory)相关的知识,希望对你有一定的参考价值。

在Linux下的多个进程间的通信机制叫做IPC(Inter-Process Communication),它是多个进程之间相互沟通的一种方法。专栏前面的文章中演示过使用pipe、shared memory、unix domain socket进行IPC的方法。彼时,我们的重点在于unix domain socket。因此,前面关于共享内存的例子比较简单,仅仅是父子进程间通过system V IPC通信的过程。本文将更进一步探讨Linux进程间通过共享内容进行通信的方法。Shared memory允许两个或多个进程共享一给定的存储区,因为数据不需要来回复制,所以是最快的一种IPC机制。

一、背景知识

1. POSIX

维基百科上关于POSIX的解释:

The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming interfaces (API), along with command line shells and utility interfaces, for software compatibility (portability) with variants of Unix and other operating systems.

一般情况下,应用程序通过API(而不是直接通过system call)来调用操作系统提供的各种服务。在Unix世界中,最流行的API是基于POSIX标

以上是关于深入详解Linux进程间通信之共享内存(Shared Memory)的主要内容,如果未能解决你的问题,请参考以下文章

深入详解Linux进程间通信之共享内存(Shared Memory)

深入详解Linux进程间通信之共享内存(Shared Memory)+信号量同步

深入详解Linux进程间通信之共享内存(Shared Memory)+信号量同步

深入详解Linux进程间通信之共享内存(Shared Memory)+信号量同步

linux进程间通信之System V共享内存详解及代码示例

linux进程间通信之Posix共享内存用法详解及代码举例