进程间通信--共享内存

共享内存是LUNIX 系统中最底层的通信机制,也是最快速的通信机制。

 

共享内存是由内核出于在多个进程间交换信息目的而留出的一块内存区(段)。

如果段的权限设置恰当,每个要访问段内存的进程都可以把它映射到自己的私有空间中,如果一个进程更新了段中的数据,另外的进程也可以看的到,

一个进程创建的段,其他进程也可以进行读写,每个进程都把它自己对共享内存的映像放入自己的地址空间中。

在/proc/sys/kernel/目录下,记录着共享内存的一些限制,如一个共享内存区的最大字节数shmmax,

系统范围内最大共享内存区标识符数shmmni等,可以手工对其调整,但不推荐这样做。

 

共享内存的使用,主要有以下几个API:ftok()、shmget()、shmat()、shmdt()及shmctl()。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。