一、共享儲存
二、管道通訊
三、訊息傳遞
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中,然...