SYSTEM-V IPC概述

(1) System V IPC 编程接口

(2)SystemV IPC对象的删除
    1.消息队列: 立即删除消息队列        // 内核没有对使用消息队列的进程进行计数
    2.信号量:   立即删除信号量集        // 内核没有对使用信号量集的进程进行计数
    3.共享内存:    如果共享内存的引用计数等于 0,则可以立即删除共享内存。
                如果有多个进程在使用这段共享内存, 等所有进程都和这段共享内存分离(解除映射)后, 才能真正删除这段共享内存

(3)SystemV IPC对象的非文件属性
    1.System V IPC 对象在文件系统中没有实体文件与之关联。
    2.在shell中无法用 ls 查看存在的IPC对象,无法用 rm 将其删除。也无法用 chmod 来修改它们的访问权限
    3.Linux 提供了 ipcs、 ipcrm和ipcmk等命令来操作这些对象。
    4.System V IPC 对象不是文件描述符,所以无法使用基于文件描述符的多路转接I/O技术(select、poll和epoll等)。

(4)SystemV IPC对象的内核持久性
    1.哪怕创建 System V IPC 对象的进程已经退出,哪怕有一段时间没有任何进程打开该 IPC 对象,只要不执行
        删除操作或系统重启,后面启动的进程依然可以使用之前创建的 System V IPC 对象来通信。

(5) 标识符ID和IPC对象的作用域
    1.每种 SystemV IPC都有一个相关的get调用,该函数返回一个整型标识符ID, System V IPC 后续的函数操作都要作用在该标识符ID上。
    2.System V IPC对象的作用范围是整个操作系统,对于任何进程,无论是否存在亲缘关系,只要有相应的权限,都可以通过操作 System V IPC 对象来达到通信的目的。
    

猜你喜欢

转载自blog.csdn.net/qq_38813056/article/details/85225279
今日推荐