1. 程式人生 > >SYSTEM-V IPC概述

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 物件來達到通訊的目的。