分散式進程通信
分散式進程通信
分散式進程通信,目的是要實現分散式進程通信。
進程和進程通信是操作系統中的一個最基本的概念;
程序是一個在時間上按照嚴格次序的前後相繼的操作序列,是一個靜態的概念;
進程是一個動態的概念,它是一個程序對某個數據集的執行過程;
正在運行的進程叫做運行態;
等待分配CPU的進程叫做就緒態;
等待其它的條件的進程叫做等待態;
進程狀態反映出進程執行過程的變化;
要保證系統正常地工作,操作系統必須對進程的創建、撤消與狀態轉換進行控制;
從進程的觀點看,操作系統的核心則是控制和協調這些進程的運行,解決進程之間的通信。
在解決單機環境下操作系統的進程通信中:
BSD UNIX 引入了管道(pipe)、命名管道(named pipe)和軟中斷信號(signal)機制;
IPC機制也不適應於網路環境中的進程通信。
用一句最簡單的話去描述計算機網路,那就是:
計算機網路是分佈在不同地理位置的多台獨立的計算機系統的集合;
“獨立的計算機系統”意味著連網的每一台計算機的操作與資源是由自己的操作系統所管理;
用戶共享的網路資源及網路所能提供的服務功能最終是通過網路環境中的分散式進程通信來實現的。
網路環境中的進程通信與單機系統內部的進程通信的主要區別:
網路中主機的高度自治性;
不是在同一個主機系統之中,沒有一個統一的高層進行控制與管理;
網路中一台主機對其它主機的
活動狀態
位於其它主機系統中的各個進程狀態
這些進程什麼時間參與網路活動
希望與網路中哪一台主機的什麼進程通信
一概無從知道
1.網路環境中分散式進程通信需要解決:
進程命名與定址方法
多重協議的識別
進程間相互作用的模式
2.網路環境中進程標識
在一台計算機中,不同的進程用進程號或進程標識(process ID)惟一地標識出來
網路環境中完整的進程標識應該是:
本地主機地址-本地進程標識
遠程主機地址-遠程進程標識
進程地址也叫做埠號(port number)
3.多重協議的識別
UNIX操作系統的TCP/IP的傳輸層就有TCP協議和UDP協議;
網路環境中一個進程的全網惟一的標識需要一個三元組來表示:協議,本地地址,本地埠號。
網路環境中一個完整的進程通信標識需要一個五元組來表示:
協議 本地地址 本地埠號
遠地地址 遠地埠號
在UNIX操作系統中:
三元組又叫做半相關half-association
五元組叫做一個相關association