鐵人賽
在系統內,Process或是Thread若需要與其他合作,就須要有溝通的方式,而溝通的原因包括資料分享需要、模組...等等,這些就被稱為行程間通訊。
多個 process/thread 內部要去溝通,都統稱叫做 IPC。
關於這點我曾經有點困惑,為什麼Thread之間的溝通也被稱為行程間通訊,我個人給他的解釋是,因為Thread本身也可以算是一個Process,只是跟其他同Process的Thread共享了部分記憶體空間。
不過說不定只是那時候的人取錯名字了?
共享記憶體以進行通訊,使用時不需要kernel。
不過若是兩個Process之間想要使用這個方式進行通訊會因為需要額外建立共享的memeory區塊而發出system call了。
要實現這個通訊方式,必須包含
在有些資料中,雖然會將IPC分為更多類,不過我最後根據inter-process-communication-ipc這份資料,認為理解他們的方式應視為在討論Message Passing實踐時的相異之處。
其中包括討論:
看了資料後才發現其實IPC蠻靠近我們的
包括我們在shell裡面常用的pipe
find a | xargs grep 'something'
因為每個指令是一個process,前指令在將結果傳給後指令接收時使用的就是IPC。
另外瀏覽器請求server的通信也是。
不過IPC的細節實在太燒腦了,差點寫不完只好先停在這裡,若之後真的有機會再回頭來更新吧。
同步發布於部落格,歡迎來逛逛~
IPC (Interprocess Communication)
inter-process-communication-ip