管道通訊中如何實現對管道的互斥使用 父子程序的同步又是如何實

時間 2021-08-13 14:34:13

1樓:匿名使用者

我們迪哥的答案:

當程序要與其它程序通訊時,可利用msgsnd()系統呼叫來傳送訊息。對於msgsnd()系統呼叫,核心檢查訊息佇列描述符合許可權是否合法,訊息長度是否超過系統規定的長度。通過檢查後,核心為訊息分配訊息資料區,並將訊息從使用者訊息緩衝區拷貝到訊息資料區。

分配訊息首部,將它鏈入訊息佇列的末尾;在訊息首部中填寫訊息的型別、大小以及指向訊息資料區的指標等;還要修改訊息佇列頭標中的資料(如訊息佇列中的訊息數、位元組數等)。然後,喚醒等待訊息到來的睡眠程序。 訊息的接收:

程序可利用msgrcv()系統呼叫,從指定訊息佇列中讀一個訊息。對於msgrcv()系統呼叫,先由核心檢查訊息佇列識別符號合許可權,繼而根據使用者指定的訊息型別做相應的處理。訊息型別msgtyp的引數可能有三種情況:

當msgtyp=0時髦核心尋找訊息佇列中的第一個訊息,並將它返回給呼叫程序;當msgtyp為正整數時,核心返回指定型別的第一個訊息;當msgtyp為負整數時,核心應在其型別值小於或等於msgtyp絕對值的所有訊息中,選出型別值最低的第一個訊息返回。如果所返回訊息的大小等於或小於使用者的要求,核心便將訊息正文拷貝到使用者區,再從佇列中刪除該訊息,並喚醒睡眠的傳送程序;如果訊息長度比使用者要求的大,則系統返回出錯資訊。使用者也可以忽略對訊息大小的限制,此時,核心無需理會訊息的大小而一概把訊息內容拷貝到使用者區。

2樓:丶霖先生

湊個熱鬧、我也不知道。

如何理解管道的設計壓力應不大於該管道系統中所有管道元件確定的設計溫度下的最大允許工作壓力的最小值

我理解,管道的設計壓力應該是管道的驗證壓力或者爆破壓力,管路元件指的是管路的接頭,卡箍什麼的。所以上面說的就是,就是如果我的管路接頭或卡箍等管道附件 在設計工作溫度下的工作壓力是p時,那麼設計的管道,在該溫度條件下,所能承受的壓力值要低於p,即管道內流體對管道的壓力不能高於p。 還是沒事幹 這裡的應...

管道中彎頭對水泵揚程的影響

影響 泵的揚程大小取決於泵的結構,如葉輪直徑的大小,葉片的彎曲情況等 轉速。對泵的壓頭不能從理論上作出精確的計算,一般用實驗方法測定。查20 水密度1.0 10 3kg m3。h 0.45m 1mpa約等於100米水柱 p出口 0.47mpa 0.47 100米水柱 47米水柱 p進口 0.02mp...

如何理解通訊中的去調製的概念

去調製的根本意思就是解調,這個是和調製對應的工作過程。我們在通訊當中,傳輸的模擬訊號,比如語音,頻率都是幾百hz到幾百khz的,這種訊號的頻率較低。如果單純把這種訊號,使用手機或者廣播電臺傳送出去,那麼需要的天線就長達一百多公里。另外不同人的通話訊號也無法互相區分。所以為了避免這種情況,在通訊上,一...