Linux服務(wù)器托管進(jìn)程之間有哪些通信方法?
發(fā)布時間:2020-01-13 點(diǎn)擊數(shù):304
Linux服務(wù)器托管用戶對于在日常管理中控制流程非常重要。有時用戶需要執(zhí)行一些特殊的操作,例如查看通訊的過程。那么,實(shí)現(xiàn)它的方法是什么呢?
進(jìn)程用戶空間彼此獨(dú)立,并且通常無法彼此訪問。但是在許多情況下,進(jìn)程需要相互通信以完成系統(tǒng)的某些功能。進(jìn)程通過與內(nèi)核和其他進(jìn)程進(jìn)行通信來協(xié)調(diào)其行為。
數(shù)據(jù)傳輸:一個進(jìn)程需要將其數(shù)據(jù)發(fā)送到另一個進(jìn)程,并且發(fā)送的數(shù)據(jù)量在一個字節(jié)和幾兆字節(jié)之間。
共享數(shù)據(jù):多個進(jìn)程希望操縱共享數(shù)據(jù)。一個進(jìn)程應(yīng)修改共享數(shù)據(jù),而其他進(jìn)程應(yīng)立即查看。
通知事件:一個進(jìn)程需要向另一個進(jìn)程或一組進(jìn)程發(fā)送消息,以通知它(他們)發(fā)生了某種事件(例如,該進(jìn)程終止時的父進(jìn)程)。
資源共享:同一資源在多個進(jìn)程之間共享。為此,內(nèi)核需要提供鎖定和同步機(jī)制。
進(jìn)程控制:某些進(jìn)程希望完全控制另一個進(jìn)程(例如Debug進(jìn)程)的執(zhí)行。此時,控制進(jìn)程希望能夠攔截其他進(jìn)程的所有陷阱和異常,并能夠及時了解其狀態(tài)變化。
在Linux進(jìn)程之間進(jìn)行通信的6種方式
1.管道
管道分為命名管道和未命名管道
匿名管道是半雙工通信方法。數(shù)據(jù)只能沿一個方向流動,并且只能在具有親緣關(guān)系的進(jìn)程之間使用。過程的親屬關(guān)系通常是指父子關(guān)系。無知的管道通常用于兩個不同進(jìn)程之間的通信。當(dāng)一個進(jìn)程創(chuàng)建管道并調(diào)用fork來創(chuàng)建自己的子進(jìn)程時,父進(jìn)程將關(guān)閉讀管道端,而子進(jìn)程將關(guān)閉寫管道端,這為兩個進(jìn)程之間的數(shù)據(jù)流提供了一種方法。
著名的管道也是半雙工通信方法,但是它允許無關(guān)進(jìn)程之間的通信。
2.信號量
信號量是一個計數(shù)器,可用于控制多個線程對共享資源的訪問。它不用于交換大量數(shù)據(jù),而是用于多個線程之間的同步。它通常用作鎖定機(jī)制,以防止進(jìn)程訪問資源時,其他進(jìn)程也會訪問該資源。因此,它主要用作進(jìn)程之間以及同一進(jìn)程中不同線程之間的同步方式。
Linux提供了一組設(shè)計良好的信號量接口來對信號進(jìn)行操作。它們不僅用于二進(jìn)制信號量。這些功能將在下面說明,但是請注意,這些功能用于對信號量進(jìn)行分組。值。它們在頭文件sys / sem.h中聲明。
Semget功能
它的作用是創(chuàng)建新的信號量或獲取現(xiàn)有的信號量
提取功能
它的作用是改變信號量的值
Semctl功能
此功能用于直接控制信號量信息
3.信號
信號是一種更復(fù)雜的通信方法,用于通知接收過程已發(fā)生事件。
4.消息隊列
消息隊列是消息的鏈接列表,存儲在內(nèi)核中,并由消息隊列標(biāo)識符標(biāo)識。消息隊列克服了較少的信令信息的特點(diǎn),流水線只能攜帶未格式化的字節(jié)流,并且緩沖區(qū)大小受到限制。消息隊列是UNIX在不同進(jìn)程之間共享資源的一種機(jī)制。 UNIX允許不同的進(jìn)程以消息隊列的形式將格式化的數(shù)據(jù)流發(fā)送到任何進(jìn)程。對消息隊列具有操作權(quán)限的進(jìn)程可以使用msget來完成消息隊列。操作控制。通過使用消息類型,進(jìn)程可以按任何順序讀取信息或確定消息的優(yōu)先級。
5.共享內(nèi)存
共享內(nèi)存是可以由其他進(jìn)程訪問的內(nèi)存的映射。此共享內(nèi)存是由一個進(jìn)程創(chuàng)建的,但可以由多個進(jìn)程訪問。共享內(nèi)存是最快的IPC(進(jìn)程間通信)方法,該方法針對其他進(jìn)程。交互模式設(shè)計的運(yùn)行效率較低。它通常與其他通信機(jī)制(例如信號量)結(jié)合使用,以實(shí)現(xiàn)進(jìn)程之間的同步和通信。
6.插座
套接字,即套接字是一種通信機(jī)制。通過這種機(jī)制,客戶端/服務(wù)器(即通信過程)系統(tǒng)的開發(fā)可以在本地單機(jī)或整個網(wǎng)絡(luò)上進(jìn)行。這意味著它允許不在同一臺計算機(jī)上但連接到網(wǎng)絡(luò)的計算機(jī)上的進(jìn)程進(jìn)行通信。因此,套接字可以清楚地區(qū)分客戶端與服務(wù)器。
進(jìn)程的概念
過程通訊的概念
進(jìn)程用戶空間彼此獨(dú)立,并且通常無法彼此訪問。但是在許多情況下,進(jìn)程需要相互通信以完成系統(tǒng)的某些功能。進(jìn)程通過與內(nèi)核和其他進(jìn)程進(jìn)行通信來協(xié)調(diào)其行為。
過程通訊的應(yīng)用場景
數(shù)據(jù)傳輸:一個進(jìn)程需要將其數(shù)據(jù)發(fā)送到另一個進(jìn)程,并且發(fā)送的數(shù)據(jù)量在一個字節(jié)和幾兆字節(jié)之間。
共享數(shù)據(jù):多個進(jìn)程希望操縱共享數(shù)據(jù)。一個進(jìn)程應(yīng)修改共享數(shù)據(jù),而其他進(jìn)程應(yīng)立即查看。
通知事件:一個進(jìn)程需要向另一個進(jìn)程或一組進(jìn)程發(fā)送消息,以通知它(他們)發(fā)生了某種事件(例如,該進(jìn)程終止時的父進(jìn)程)。
資源共享:同一資源在多個進(jìn)程之間共享。為此,內(nèi)核需要提供鎖定和同步機(jī)制。
進(jìn)程控制:某些進(jìn)程希望完全控制另一個進(jìn)程(例如Debug進(jìn)程)的執(zhí)行。此時,控制進(jìn)程希望能夠攔截其他進(jìn)程的所有陷阱和異常,并能夠及時了解其狀態(tài)變化。
過程通訊
在Linux進(jìn)程之間進(jìn)行通信的6種方式
1.管道
管道分為命名管道和未命名管道
匿名管道是半雙工通信方法。數(shù)據(jù)只能沿一個方向流動,并且只能在具有親緣關(guān)系的進(jìn)程之間使用。過程的親屬關(guān)系通常是指父子關(guān)系。無知的管道通常用于兩個不同進(jìn)程之間的通信。當(dāng)一個進(jìn)程創(chuàng)建管道并調(diào)用fork來創(chuàng)建自己的子進(jìn)程時,父進(jìn)程將關(guān)閉讀管道端,而子進(jìn)程將關(guān)閉寫管道端,這為兩個進(jìn)程之間的數(shù)據(jù)流提供了一種方法。
著名的管道也是半雙工通信方法,但是它允許無關(guān)進(jìn)程之間的通信。
2.信號量
信號量是一個計數(shù)器,可用于控制多個線程對共享資源的訪問。它不用于交換大量數(shù)據(jù),而是用于多個線程之間的同步。它通常用作鎖定機(jī)制,以防止進(jìn)程訪問資源時,其他進(jìn)程也會訪問該資源。因此,它主要用作進(jìn)程之間以及同一進(jìn)程中不同線程之間的同步方式。
Linux提供了一組設(shè)計良好的信號量接口來對信號進(jìn)行操作。它們不僅用于二進(jìn)制信號量。這些功能將在下面說明,但是請注意,這些功能用于對信號量進(jìn)行分組。值。它們在頭文件sys / sem.h中聲明。
Semget功能
它的作用是創(chuàng)建新的信號量或獲取現(xiàn)有的信號量
提取功能
它的作用是改變信號量的值
Semctl功能
此功能用于直接控制信號量信息
3.信號
信號是一種更復(fù)雜的通信方法,用于通知接收過程已發(fā)生事件。
4.消息隊列
消息隊列是消息的鏈接列表,存儲在內(nèi)核中,并由消息隊列標(biāo)識符標(biāo)識。消息隊列克服了較少的信令信息的特點(diǎn),流水線只能攜帶未格式化的字節(jié)流,并且緩沖區(qū)大小受到限制。消息隊列是UNIX在不同進(jìn)程之間共享資源的一種機(jī)制。 UNIX允許不同的進(jìn)程以消息隊列的形式將格式化的數(shù)據(jù)流發(fā)送到任何進(jìn)程。對消息隊列具有操作權(quán)限的進(jìn)程可以使用msget來完成消息隊列。操作控制。通過使用消息類型,進(jìn)程可以按任何順序讀取信息或確定消息的優(yōu)先級。
5.共享內(nèi)存
共享內(nèi)存是可以由其他進(jìn)程訪問的內(nèi)存的映射。此共享內(nèi)存是由一個進(jìn)程創(chuàng)建的,但可以由多個進(jìn)程訪問。共享內(nèi)存是最快的IPC(進(jìn)程間通信)方法,該方法針對其他進(jìn)程。交互模式設(shè)計的運(yùn)行效率較低。它通常與其他通信機(jī)制(例如信號量)結(jié)合使用,以實(shí)現(xiàn)進(jìn)程之間的同步和通信。
6.插座
套接字,即套接字是一種通信機(jī)制。通過這種機(jī)制,客戶端/服務(wù)器(即通信過程)系統(tǒng)的開發(fā)可以在本地單機(jī)或整個網(wǎng)絡(luò)上進(jìn)行。這意味著它允許不在同一臺計算機(jī)上但連接到網(wǎng)絡(luò)的計算機(jī)上的進(jìn)程進(jìn)行通信。因此,套接字可以清楚地區(qū)分客戶端與服務(wù)器。
套接字的特性由3個屬性確定,它們是:域,類型和協(xié)議。
云網(wǎng)時代為大家提供專業(yè)的深圳服務(wù)器租用,深圳服務(wù)器托管,深圳主機(jī)租用,云服務(wù)器租用等國內(nèi)外服務(wù)器相關(guān)資源,詳情歡迎咨詢客服了解。