8.在進程間通信如何保證消息不會丟失?
為了保證消息被對方收到,可采用可靠原語。具體作法是:客戶向服務器方發(fā)一請求后,服務器對這一請求,由其內核向客戶內核返回一個確認ACK,當客戶內核收到這一消息后,就喚醒客戶進程。在客戶與服務器之間的請求/應答共需四個消息:①從客戶向服務器的請求②從服務器內核向客戶內核返回一個確認③從服務器到客戶的應答④從客戶的內核向服務器內核返回一個確認。
9.遠程過程調用:在網(wǎng)絡或分布式系統(tǒng)中,設有任意兩個節(jié)點A、B,節(jié)點A上的進程調用節(jié)點B上的一個進程時,節(jié)點A上的進程被掛起,在節(jié)點B上執(zhí)行被調用的過程,消息以參數(shù)的形式從調用進程傳送到被調用進程,并將被調用過程執(zhí)行的結果返回給調用進程。這種通信方式稱為遠程過程調用。
其基本原理是什么?
允許某一節(jié)點上的程序調用其他節(jié)點上的過程或函數(shù)。例如節(jié)點機A上的進程調用節(jié)點機B上的過程,節(jié)點機A的調用進程被掛起,在節(jié)點機B上執(zhí)行被調用過程。消息以參數(shù)的形式從調用過程傳到被調用過程,被調用過程執(zhí)行的結果再返回給調用過程。對程序員來說,他看不到消息傳遞過程和I/O處理過程。
10.RPC的透明性指的是什么?
指的是要使得遠程過程調用盡可能像本地調用一樣。調用過程應該不知道被調用過程是在另外一臺計算機上執(zhí)行,反過來也是如此,被調用過程也不應該知道是由哪個機器上的進程調用的。如何保證這一透明性:遠程過程調用為實現(xiàn)其透明性,在客戶機上設置一個客戶代理,同樣在服務器機上設置一個服務器代理。
11.簡述遠程過程調用的步驟。
①客戶過程以通常方式調用客戶代理。②客戶代理構造一個消息并陷入內核。③本地內核發(fā)送消息給遠程內核。④遠程內核把消息送給服務器代理。⑤服務器代理從消息包中取出參數(shù)并調用服務器。⑥服務器完成相應的服務,將結果送給服務代理。⑦服務代理將結果打包形成一個消息并陷入內核。⑧遠程內核發(fā)送消息給客戶機內核。⑨客戶機內核把消息傳送給客戶代理。⑩客戶代理取出結果,返回給客戶的調用程序。并以實例說明。
12.試說明遠程過程調用的優(yōu)缺點。
優(yōu)點:格式化好、使用方便、透明性好;
缺點:缺乏靈活性。
在具體實現(xiàn)上尚有哪些難點需要解決?
①遠程過程調用的參數(shù)在系統(tǒng)內不同機型之間的通用能力有所不足。②缺乏在一次調用過程中多次接收返回結果的能力。③遠程過程調用缺乏傳送大量數(shù)據(jù)的能力。
13.什么叫組通信?
在網(wǎng)絡系統(tǒng)中,一個相互作用的進程集合稱為組。一個發(fā)送者在一次操作中將一個消息發(fā)送給多個接收者的通信,稱為組通信。
它應用于何種場合?在網(wǎng)絡系統(tǒng)中可以采用組通信方式。
組通信的主要特征是?當一個消息發(fā)送給這個組時,該組的所有成員都可以接收,組通信具有“一對多”的形式,即一個發(fā)送者,多個接收者。
組通信的實現(xiàn)?組通信的實現(xiàn)在很大程度上依賴于硬件。在一些網(wǎng)絡系統(tǒng)中,可以為組指定一個特殊的網(wǎng)絡地址。可采用多播式、廣播式、單播式。