10程序通訊

2021-09-24 09:33:32 字數 1041 閱讀 1658

一、共享儲存

二、管道通訊

三、訊息傳遞

1、原因:

(1)、基於資料結構的共享:比如只能存放固定長度的陣列,限制多,速度慢,因此是一種低階通訊方式

(2)、基於共享儲存區的共享:在記憶體中劃分出一塊共享儲存區,資料的形式、儲存的位置都有程序控制,而不是作業系統,相比之下速度更快更方便,所以是一種高階通訊方式

(3)注意:兩個程序對共享空間的訪問必須是互斥的,互斥訪問操作由作業系統的p、v操作控制

3、管道通訊:

用於連線讀寫程序的共享檔案,其實就是在記憶體中開闢乙個大小固定的緩衝區

採用半雙工通訊,如果想要雙向通訊,則需要設定兩個管道,各程序要互斥的訪問管道

寫滿時不能再寫,讀空時不能再讀

沒寫滿不能讀,沒讀空不能寫

*4、訊息傳遞

程序間的資料交換以格式化的資訊為單位,程序作業系統的傳送訊息和接收訊息原語傳送和傳遞訊息

格式化的資訊包括:傳送程序id,接收程序id,訊息型別,訊息長度等格式化資訊(計算機網路中的包頭)

直接通訊方式:將訊息直接掛到接收程序的訊息緩衝佇列上

間接通訊方式:訊息要先傳送到中間實體(信箱)中

5、知識點總結:

程序通訊 程序管道

程序間通訊的幾種常用方式 管道 命名管道 訊號 訊號量 共享記憶體 訊息佇列 套接字。管道 pipe 一種半雙工的通訊方式,資料只能單向流動且只能在具有共同祖先的程序間使用。命名管道 name pipe 也是一種半雙工的通訊方式,但他允許不相關程序間的通訊。訊號 sinal 乙個程序通過訊號通知其他...

程序與程序通訊

程序是可執行的程式的例項,包含兩部分,一部分是作業系統用來管理程序的核心物件,一部分是建立時系統分配的資源,主要是記憶體位址空間。2 程序通訊方法 在乙個程序內建立記憶體對映,卻能夠在其他都個程序中使用。這些程序共享的是物理儲存器的同乙個頁面,在把這些物理記憶體對映到虛擬記憶體時各個程序的虛擬位址並...

php程序間通訊 yoc PHP程序間通訊

php是用c編寫的,因此它對系統底層api的操作與c很像,同大多數語言一樣,php程序間通訊的方式有以下幾種 訊息佇列,管道,共享記憶體,socket和訊號。本文是對這幾種通訊方式對整理 管道通訊pipe 管道用於承載簡稱之間的通訊資料。為了方便理解,可以將管道比作檔案,程序a將資料寫到管道p中,然...