IPC物件持續性

2021-07-01 21:04:21 字數 1138 閱讀 8690

1.3 ipc物件的持續性

我們可以把任意型別的ipc的持續性(persistence)定義成該型別的乙個物件一直存在多長時間。圖1-2展示了三種型別的持續性。

圖1-2 ipc物件的持續性

(1) 隨程序持續的(process-persistent)ipc物件一直存在到開啟著該物件的最後乙個程序關閉該物件為止。例如管道和fifo就是這種物件。

(2) 隨核心持續的(kernel-persistent)ipc物件一直存在到核心重新自舉或顯式刪除該物件為止。例如system v的訊息佇列、訊號量和共享記憶體區就是此類物件。posix的訊息佇列、訊號量和共享記憶體區必須至少是隨核心持續的,但也可以是隨檔案系統持續的,具體取決於實現。

(3) 隨檔案系統持續的(filesystem-persistent)ipc物件一直存在到顯式刪除該物件為止。即使核心重新自舉了,該物件還是保持其值。posix訊息佇列、訊號量和共享記憶體區如果是使用對映檔案實現的(不是必需條件),那麼它們就是隨檔案系統持續的。

在定義乙個ipc物件的持續性時我們必須小心,因為它並不總是像看起來的那樣。例如管道內的資料是在核心中維護的,但管道具備的是隨程序的持續性而不是隨核心的持續性:最後乙個將某個管道開啟著用於讀的程序關閉該管道後,核心將丟棄所有的資料並刪除該管道。類似地,儘管fifo在檔案系統中有名字,它們也只是具備隨程序的持續性,因為最後乙個將某個fifo開啟著的程序關閉該fifo後,fifo中的資料都被丟棄。

圖1-3彙總了將在本書中講述的各種型別ipc物件的持續性。

圖1-3 各種型別ipc物件的持續性

注意該列表中沒有任何型別的ipc具備隨檔案系統的持續性,但是我們說過有三種型別的posix ipc可能會具備該持續性,這取決於它們的實現。顯然,向乙個檔案寫入資料提供了隨檔案系統的持續性,但這通常不作為一種ipc形式使用。多數形式的ipc並沒有在系統重新自舉後繼續存在的打算,因為程序不可能跨越重新自舉繼續存活。對於一種給定形式的ipc,要求它具備隨檔案系統的持續性可能會使其效能降級,而ipc的乙個基本的設計目標是高效能。

靜態持續性 外部儲存性

外部變數作用域為整個檔案,可以在main 前或者標頭檔案中進行宣告。一方面,若要使用外部變數必須在使用它的所有檔案中進行宣告,另一方面,c 中限制了變數的定義只能進行一次,即單定義規則。所以,若要在多個檔案中使用同乙個外部變數,必須進行以下宣告 extern int i 7 定義外部變數i int ...

EasyC 自動儲存持續性

微信 coder梁 id coder lt 自動儲存持續性 這個概念乍一看有些拗口,其實它很簡單,指的是在函式定義中宣告的變數的儲存持續性是自動的 它們在程式開始執行其所屬的函式或 塊時被建立,在執行完函式或 塊時,它們使用的記憶體被釋放。在預設情況下,我們在函式中宣告的變數和函式的引數都是自動儲存...

如何保持學習的持續性

如何保持學習的持續性 很多人學習東西總是好的開始 不了了之的過程和差的結果。究其原因,是缺少學習的持續性,缺少學習的動力源。在計算機培訓中,很多學員也出現過這樣的現象。有了好的開始,如何保持下去呢?楊志偉老師認為需要抓住三點。第一,回顧昨天,明確學習的動力源。一般人做一件事情大都是因為興趣,學習也是...