程序之間的通訊 隨堂筆記

2021-08-28 13:35:33 字數 819 閱讀 2996

1.程序之間的通訊

定義:程序之間的通訊是指在程序之間傳輸資料。

程序之間的通訊根據程序之間傳輸資料的效率和多少分為高階通訊和低階通訊。

2.共享記憶體的通訊方式

連個程序可以直接共享訪問同一塊記憶體區域。

——共享記憶體的程式設計實現:

先獲得共享記憶體,然後對映到位址空間,之後就可以使用共享記憶體,,取出資料,接觸對映關係,之後刪除共享記憶體。

3.管道通訊

管道機制必須提供的協調能力

(1)互斥:讀寫操作必須互斥進行。在寫的時候不能去讀,在讀的時候不能去寫。

(2)同步:當寫程序寫滿以後必須喚醒讀程序,當讀程序讀完以後必須喚醒寫程序去寫。

(3)對方是否存在:管道通訊只有在雙方都存在的時候才成立。

4.訊息傳遞通訊:

特點:以格式化的訊息為通訊單位:有傳送者、有接受者、有訊息。例如:客戶端傳送訊息給伺服器,訊息佇列由作業系統進行管理。

兩種方式:直接通訊——接傳送訊息制定對方名字。

間接通訊——接傳送訊息制定乙個郵箱。

示意:

程序a給b傳送訊息m,程序b接受程序a的訊息,當程序a呼叫send傳送訊息,b會有乙個訊息佇列,訊息會掛到佇列裡,b接收訊息,從接收區取訊息

程序之間通訊

之所以開啟子程序 肯定需要他幫我們完成任務,很多情況下,需要將資料返回給父程序。然而程序記憶體是物理隔離的 1.將共享資料放在檔案中,就是慢 2.管道subprocess 中那個管道只能單向通訊,必須有父子關係 3.共享一塊記憶體區域 得作業系統幫你分配,速度快 from multiprocessi...

程序之間 執行緒之間的通訊方式

1 程序間的8中通訊方式 1 無名管道 pipe 管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。2 2 高階管道 popen 將另乙個程式當做乙個新的程序在當前程式程序中啟動,則它算是當前程式的子程序,這種方式我們成為高階管道方...

程序之間的通訊 訊號通訊

訊號通訊 方式 訊號型別 下面是幾種常見的訊號 sighup 從終端上發出的結束訊號 sigint 來自鍵盤的中斷訊號 ctrl c sigkill 該訊號結束接收訊號的程序,殺死程序 sigterm kill 命令發出的訊號 sigchld 子程序停止或結束時通知父程序 sigstop 來自鍵盤 ...