什麼是程序間通訊 (IPC)?
在作業系統中執行的不同型別的程序以及將不同型別的任務連線到作業系統的程序稱為程序間通訊。
程序間通訊用於計算機和不同型別的任務與作業系統的互連。
在作業系統中併發執行的程序可以是獨立程序或協作程序。
獨立程序
它是一個獨立的程序,不受系統中其他正在執行的程序的影響。任何不與任何其他程序共享資料的程序都是獨立的。
協作程序
它是一個協作程序,受系統中其他正在執行的程序的影響。任何與其他程序共享資料的程序都稱為協作程序。
原因
允許程序間通訊的幾個原因如下:
資訊共享 - 程序間通訊用於指令共享,以及透過共享作業系統到任務來執行計算機中的多個任務和命令。需要共享資訊以便執行任務。
計算速度 - 程序間通訊也有助於計算,以便我們可以找到輸出結果,並且它在程序間通訊的幫助下,作業系統和不同任務之間存在直接通訊。
模組化 - 使用者以模組化方式構建系統,它還將程序分離成不同的模組,這稱為模組化,並且可以在不同的模組中執行不同的程序。
便利性 - 單個使用者可以同時處理許多工,使用者可以編輯、收聽音樂並同時執行所有型別的任務,因為由於程序間通訊,作業系統非常方便。
現在讓我們看看程序間通訊 (IPC) 技術:
管道-管道是 UNIX OS(作業系統)的基本版本。管道在單個系統程序之間提供單向通訊。管道可以在管道系統呼叫的幫助下建立。
FIFO - 先進先出 (FIFO) 是一種單向資料流。FIFO 程序在某種程度上類似於管道;主要區別在於 FIFO 可以透過名稱在檔案系統中輕鬆識別。
共享記憶體 - 在共享記憶體中,資料在程式之間傳遞。程序建立可供另一個程序訪問的記憶體空間。因此,在共享記憶體程序通訊中,為資料建立了一個記憶體空間,可以讀取和寫入該記憶體空間的資料。
記憶體對映 - 在記憶體對映程序通訊中,共享記憶體或檔案用於在不同的處理器之間共享。記憶體對映機制加快了檔案訪問速度,並提供 IPC。
訊息佇列 - 訊息佇列程序通訊幫助開發人員透過一個或多個訊息佇列來傳遞訊息。此通訊由系統核心管理。API(應用程式程式設計介面)協調訊息。
套接字 - 套接字程序通訊用於網路上的客戶端和伺服器之間。套接字程序提供一個標準連線,該連線獨立於所使用的計算機型別和作業系統。