Linux进程全解12——lIPC机制之管道,SystemV IPC介绍
生活随笔
收集整理的這篇文章主要介紹了
Linux进程全解12——lIPC机制之管道,SystemV IPC介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以下內容源于朱有鵬《物聯網大講堂》的課程學習整理,如有侵權,請告知刪除。
一、管道
1、管道(無名管道)
(1)管道通信的原理:內核維護的一塊內存,有讀端和寫端(管道是單向通信的);
(2)管道通信的方法:父進程創建管道后fork子進程,子進程繼承父進程的管道fd。
(3)管道通信的限制:只能在父子進程間通信、半雙工。
(4)管道通信的函數:pipe、write、read、close。
2、有名管道(fifo)
(1)有名管道的原理:實質也是內核維護的一塊內存,表現形式為一個有名字的文件。
(2)有名管道的使用方法:固定一個文件名,2個進程分別使用mkfifo創建fifo文件,然后分別open打開獲取到fd,然后一個讀一個寫。
(3)管道通信限制:半雙工(注意不限父子進程,任意2個進程都可)。
(4)管道通信的函數:mkfifo、open、write、read、close
二、SystemV IPC介紹
1、SystemV IPC的基本特點
(1)系統通過一些專用API來提供SystemV IPC功能;
(2)包含:信號量、消息隊列、共享內存;
(3)其實質也是內核提供的公共內存;
2、消息隊列
(1)本質上是一個隊列,隊列可以理解為(內核維護的一個)FIFO;(2)工作時A和B2個進程進行通信,A向隊列中放入消息,B從隊列中讀出消息。
3、信號量
(1)實質就是個計數器(其實就是一個可以用來計數的變量,可以理解為int a);(2)通過計數值來提供互斥和同步。
4、共享內存
(1)大片內存直接映射;(2)類似于LCD顯示時的顯存用法
5、剩余的2類IPC
(1)信號(2)Unix域套接字:socket
總結
以上是生活随笔為你收集整理的Linux进程全解12——lIPC机制之管道,SystemV IPC介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2 分钟玩转 Apizza,轻量级 AP
- 下一篇: linux 其他常用命令