多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > [置頂] Linux 進程間通信(IPC)

[置頂] Linux 進程間通信(IPC)

來源:程序員人生   發布時間:2016-08-16 18:34:50 閱讀次數:2779次

Linux 進程間通訊(IPC)


說明:首先要聲明1點,我接下來要寫的都針對在面試的時候被問的1些詳解
1、為何要有進程間通訊?
解析:由于進程間通訊主要是強調在不同的進程間交換數據,而數據的交換必須依托內核來實現,任何1個進程的全局變量在另外一個進程中都是看不見的,所之內核開辟了1塊緩沖區,進程A將數據放入內核,進程B從內核將數據取走,就實現了進程間通訊
2、進程間通訊有幾種通訊方式?
解析:pipe、FIFO、system V 消息隊列、system V 信號量、system V 同享內存
3、分別介紹幾種通訊?
解析:pipe(管道):用pipe(int filedes[2])創建管道,創建后的管道有1個讀端和寫端,只能用于具有親緣關系的進程間通訊、單向通訊、基于字節流。
FIFO(命名管道):克服了管道間只能在親緣關系間通訊,它是創建了1個實實在在存在的文件,然后寫端往文件里寫,讀端往文件里讀出數據,總是先進先出,用int mkfifo(const char *filename,mode_t mode)、int mknod(const char *filename,mode_t mode |S_IFIFO,(dev_t)0);創建后的管道可用與任何進程間通訊
最重要的3個進程間通訊來了:(1)system V消息隊列:它是基于消息的消息隊列,也是分別創建讀端和寫端,能用于任何間進程通訊,需要3個函數來實現,int msgget(key_t key,int msgflg):創建消息隊列或獲得已存在的消息隊列,int msgrcv(int msgqid,void *msgp,size_t msgzs,long msgtype,int msgflg):從隊列中取消息,int msgsnd(int msgid,const void*msgp,size_t msgzs,int msgflg):將數據放入消息隊列中,int msgctl(int msgqid,int cmd,struct msgqid_ds *buf):設置消息隊列屬性
(2)system V信號量:信號量本身不具有讓數據通訊的能力,它相當于1把鎖,它本身只是1種外部資源的標示,用信號量來實現進程的互斥與同步,主要靠 semget,semop,semctl來實現進程通訊,就相當于互斥鎖里的P、V操作
(3)system V同享內存:同享內存是所有IPC中通訊最快的,由于它內存中創建了1份緩沖區,所有的進程都可以被訪問這塊緩沖區,它速度快主要是對數據的訪問只需進行兩次拷貝就可以完成,而其他的進程間通訊都需要4次拷貝才能完成通訊,但它也有1個致命的缺點是在多進程中或在多線程中會出現線程安全,所有同享內存的通訊1般是和信號量或互斥鎖、條件變量集合使用來保證數據的在通訊時候的1致性
ps:
消息隊列、信號量、同享內存都有system V和POSIX之分,他們之間有1些區分,后期會補上
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 开操网 | 五月丁香六月综合缴清无码 | 欧美日韩国产超高清免费看片 | 免费一级欧美片在线观免看 | 亚洲欧美另类色妞网站 | 五月天国产 | 三级小说第一页 | 波多野结衣被强在线视频 | 国产福利精品一区二区 | ady久久| 曰本一区二区三区 | 最新jizz 欧美 | 欧美一级特黄特黄毛片 | 国产成人一区在线播放 | 亚洲大片免费 | 亚洲十八精品网站 | 国产做出在线 | 传媒麻豆 | 一级特黄特黄毛片欧美的 | 天天天做天天天天爱天天想 | 久久国产精品只做精品 | 午夜噜噜噜私人影院在线播放 | 在线精品自拍 | 亚洲视频第一页 | 伊人精品视频在线观看 | 亚洲欧洲第一页 | 欧美一级人与动毛片免费播放 | 国产精品极品美女自在线看免费一区二区 | 亚洲资源站 | 亚洲第一视频在线播放 | 福利视频一区 | 免费的黄色的网站 | 淫片在线观看 | 美女啪啪国产 | jjzz日本老师 | 福利网站在线观看 | 最新国产精品亚洲二区 | 国产香蕉97碰碰久久人人 | 中国欧美一级毛片免费 | 亚洲精品欧美精品中文字幕 | 得得啪在线 | 久久99亚洲精品一区二区 |