首页 > 代码库 > 【UNIX】什么是IPC对象以及共享内存

【UNIX】什么是IPC对象以及共享内存

sys V 的IPC 对象:对于内核中创建的文件对象,就是文件标识符(它引用了文件对象的全部信息)在进程中文件描述符一般使用当前最小可用值。

对于IPC标识符返回的是索引的整数值,它是全局变量的流水号,在系统中唯一分配的,若果在创建的IPC对象没有关闭,他会全局存在,只有在系统关闭的时候才关闭,这样会造成内存空间的资源被占用。

为了进程之间交换信息,内核专门留了一块内存空间,由进程映射到各自进程私有空间。

【共享内存的实现】:

1)创建/打开共享内存,这里的创建/打开和文件的创建/打开差不多,只是换了一种说法,都是在内核空间创建有一个缓存空间,提供要交换的信息

2)映射共享内存的内容,就是把共享内存的内容映射到进程的地址空间用于访问

3)撤销共享内存的映射,就是解挂的含义,进程不需要再访问共享内存的时候

4)删除共享内存的对象,就是内核系统在内存空间创建的文件描述符

具体代码如下:

<script src="https://code.csdn.net/snippets/539088.js" type="text/javascript"></script>

【UNIX】什么是IPC对象以及共享内存