進程通信IPC

1.管道(pipe):在內核中開闢緩衝區(管道)實現進程通信,一個讀端,一個寫端。

  • 半雙工,數據只向一個方向流動,一端讀一端寫
  • 只用於父子,兄弟進程:創建pipe時,兩個文件描述符指向管道兩端,fork子進程,繼承文件描述符
  • 是獨立的文件系統,只存在於內存中
  • 讀寫操作:滿——寫阻塞,空——讀阻塞

2.有名管道(FIFO):可用於非親屬進程間的通信。

3.消息隊列

  • 獨立於進程,進程終止,內容不刪
  • 可實現消息的隨機查詢,可按消息類型進行查詢

4.共享內存(最快IPC):傳遞數據不需執行進入內核的系統調用,少了2次文件複製(相比於pipe,FIFO,消息隊列)

5.信號量:PV操作(原子操作)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章