第三章 網(wǎng)絡(luò)操作系統(tǒng)的通信
1. 什么叫同步:相互合作的兩個進程之間需要在某個(些)確定點協(xié)調(diào)它們的工作,一個進程到達了該點后,除非另一進程已經(jīng)完成了某些操作,否則就不得不停下來,等待這些操作的完成。這就是進程間的同步。什么叫互斥:兩個進程由于不能同時使用同一臨界資源,只能在一個進程使用完了,另一進程才能使用,這種現(xiàn)象稱為進程間的互斥。試舉例說明進程間同步和互斥的區(qū)別:①同步的主要特征是:一個進程在某一點上等待另一進程提供信息,兩進程之間存在直接制約關(guān)系,其表現(xiàn)形式為進程—進程。②互斥的主要特征是爭用資源,兩進程間存在間接制約關(guān)系,其表現(xiàn)形式是進程—資源—進程。
2. 試給出P、V操作的定義:P、V操作是定義在信號量S上的兩個操作,其定義如下:
P(S):
① S:=S-1;
② 若S≥0,則調(diào)用P(S)的進程繼續(xù)運行;
③ 若S<0,則調(diào)用P(S)的進程被阻塞,并把它插入到等待信號量S的阻塞隊列中。
V(S):
① S:=S+1;
② 若S>0,則調(diào)用V(S)的進程繼續(xù)運行;
③ 若S≤0,則從等待信號量S的阻塞隊列中喚醒頭一個進程,然后調(diào)用V(S)的進程繼續(xù)運行。
如何利用P、V操作實現(xiàn)進程間的互斥:P、V操作是解決同步與互斥問題的有力工具。為解決互斥問題,應(yīng)采取如下步驟:首先根據(jù)給定問題的描述,列出各進程要執(zhí)行的程序。其次,設(shè)置信號量?;コ鈫栴}中,在臨界區(qū)前面加P(S),臨界區(qū)后面加V(S)。最后確定信號量的初值。在互斥問題中,信號量通常取為互斥資源的個數(shù)。并說明信號量的物理意義:信號量S>0時,S的數(shù)值表示某類可用資源的數(shù)目,執(zhí)行P操作意味著申請分配一個單位的資源;當S≤0時,表示無資源可用,此時S的絕對值表示信號量S的阻塞隊列中的進程數(shù)。執(zhí)行V操作意味著釋放一個單位的資源。
3. 如何利用P、V操作實現(xiàn)進程間的同步:P、V操作是解決同步與互斥問題的有力工具。為解決同步問題,應(yīng)采取如下步驟:首先根據(jù)給定問題的描述,列出各進程要執(zhí)行的程序。其次,設(shè)置信號量。同步問題中有幾個同步點就設(shè)置幾個信號量,等待的地方加P(S),發(fā)信號(解除等待)的地方加V(S)。最后確定信號量的初值。在同步問題中,信號量的初值一般取0.在同步和互斥中,信號量初值的設(shè)置有何不同:在同步問題中,信號量的初值一般取為0,在互斥問題中,信號量通常取為互斥資源的個數(shù)。
4. 高級通信原語有何優(yōu)點:能夠?qū)崿F(xiàn)在進程之間傳遞大量的信息。在消息緩沖通信方式中,發(fā)送原語和接收原語的主要功能是什么:發(fā)送原語的作用:將欲發(fā)送的消息從發(fā)送區(qū)復(fù)制到消息緩沖區(qū),并把它掛起在接收進程的消息緩沖隊列末尾。如果該接收進程因等待消息而處于阻塞狀態(tài),則將其喚醒。接收原語的作用:把發(fā)送者發(fā)來的消息從消息緩沖區(qū)復(fù)制到接收區(qū),然后將消息緩沖區(qū)從消息隊列中消去,如果沒有消息可以接收,則進入阻塞狀態(tài)。
5. 什么是信箱:信箱用于存放信件,而信件是一個進程發(fā)送給另一進程的消息。信箱的數(shù)據(jù)結(jié)構(gòu):信箱頭和信箱體。信箱頭是信箱的描述部分,信箱體由若干格子組成,每個格子可存放一個信件。信箱頭包括的信息:①信箱名②信箱大小③已存信件數(shù)④空的格子數(shù)。如何用信箱實現(xiàn)兩個進程之間的通信:進程A想向進程B發(fā)送消息前,先把消息組成一封信件,然后調(diào)用send原語向進程B發(fā)送信件,并將信件投入進程B的信箱中。進程B為得到進程A的消息,只要調(diào)用receive原語就可以從信箱中索取來自進程A的信件。這就完成了一次進程A到進程B的通信過程。
6. 在網(wǎng)絡(luò)操作系統(tǒng)中,為什么要采用消息傳遞的通信機制:基于共享變量的通信方式適用于網(wǎng)絡(luò)中各節(jié)點內(nèi)部諸進程之間的通信,而基于消息傳遞的通信方式適用于網(wǎng)絡(luò)中各節(jié)點之間的進程通信。在消息傳遞的通信機制中有哪些通信方式:①通信原語②遠程過程調(diào)用③組通信。
7. 什么是同步原語:當一個進程調(diào)用一個send原語時,在消息開始發(fā)送后,發(fā)送進程便處于阻塞狀態(tài),直至消息完全發(fā)送完畢,send原語的后繼語句才能繼續(xù)執(zhí)行。當一個進程調(diào)用一個receive原語時,并不立即返回控制,而是等到把消息實際接收下來,并把它放入指定的接收區(qū),才返回控制,繼續(xù)執(zhí)行該原語的后繼指令。在這段時間它一直處于阻塞狀態(tài)。上述的send和receive被稱為同步通信原語或阻塞通信原語。異步原語:發(fā)送進程在調(diào)用send原語后,并不進入阻塞狀態(tài),它不等消息發(fā)送完就繼續(xù)執(zhí)行其后繼語句。在使用異步通信原語時,發(fā)送者在消息發(fā)送完成前為什么不能使用緩沖區(qū):因為倘若發(fā)送進程在消息發(fā)送完成之前,即在消息發(fā)送期間使用或修改原來的緩沖區(qū),將會造成錯誤。如何解決?有兩種辦法(應(yīng)采用異步原語):①采用帶拷貝的非阻塞原語,即讓內(nèi)核把消息拷貝到內(nèi)核緩沖區(qū),允許調(diào)用進程繼續(xù)運行。②帶中斷的非阻塞發(fā)送,即當消息發(fā)送完成后,中斷發(fā)送進程,通知發(fā)送進程此時緩沖區(qū)可用。
8. 在進程間通信如何保證消息不會丟失:為了保證消息被對方收到,可采用可靠原語。具體作法是:客戶向服務(wù)器方發(fā)一請求后,服務(wù)器對這一請求,由其內(nèi)核向客戶內(nèi)核返回一個確認ACK,當客戶內(nèi)核收到這一消息后,就喚醒客戶進程。在客戶與服務(wù)器之間的請求/應(yīng)答共需四個消息:①從客戶向服務(wù)器的請求②從服務(wù)器內(nèi)核向客戶內(nèi)核返回一個確認③從服務(wù)器到客戶的應(yīng)答④從客戶的內(nèi)核向服務(wù)器內(nèi)核返回一個確認。
9. 遠程過程調(diào)用:在網(wǎng)絡(luò)或分布式系統(tǒng)中,設(shè)有任意兩個節(jié)點A、B,節(jié)點A上的進程調(diào)用節(jié)點B上的一個進程時,節(jié)點A上的進程被掛起,在節(jié)點B上執(zhí)行被調(diào)用的過程,消息以參數(shù)的形式從調(diào)用進程傳送到被調(diào)用進程,并將被調(diào)用過程執(zhí)行的結(jié)果返回給調(diào)用進程。這種通信方式稱為遠程過程調(diào)用。其基本原理是什么:允許某一節(jié)點上的程序調(diào)用其他節(jié)點上的過程或函數(shù)。例如節(jié)點機A上的進程調(diào)用節(jié)點機B上的過程,節(jié)點機A的調(diào)用進程被掛起,在節(jié)點機B上執(zhí)行被調(diào)用過程。消息以參數(shù)的形式從調(diào)用過程傳到被調(diào)用過程,被調(diào)用過程執(zhí)行的結(jié)果再返回給調(diào)用過程。對程序員來說,他看不到消息傳遞過程和I/O處理過程。
10. RPC的透明性指的是什么:指的是要使得遠程過程調(diào)用盡可能像本地調(diào)用一樣。調(diào)用過程應(yīng)該不知道被調(diào)用過程是在另外一臺計算機上執(zhí)行,反過來也是如此,被調(diào)用過程也不應(yīng)該知道是由哪個機器上的進程調(diào)用的。如何保證這一透明性:遠程過程調(diào)用為實現(xiàn)其透明性,在客戶機上設(shè)置一個客戶代理,同樣在服務(wù)器機上設(shè)置一個服務(wù)器代理。
11. 簡述遠程過程調(diào)用的步驟:①客戶過程以通常方式調(diào)用客戶代理。②客戶代理構(gòu)造一個消息并陷入內(nèi)核。③本地內(nèi)核發(fā)送消息給遠程內(nèi)核。④遠程內(nèi)核把消息送給服務(wù)器代理。⑤服務(wù)器代理從消息包中取出參數(shù)并調(diào)用服務(wù)器。⑥服務(wù)器完成相應(yīng)的服務(wù),將結(jié)果送給服務(wù)代理。⑦服務(wù)代理將結(jié)果打包形成一個消息并陷入內(nèi)核。⑧遠程內(nèi)核發(fā)送消息給客戶機內(nèi)核。⑨客戶機內(nèi)核把消息傳送給客戶代理。⑩客戶代理取出結(jié)果,返回給客戶的調(diào)用程序。并以實例說明。
12. 試說明遠程過程調(diào)用的優(yōu)缺點:優(yōu)點:格式化好、使用方便、透明性好;缺點:缺乏靈活性。在具體實現(xiàn)上尚有哪些難點需要解決:①遠程過程調(diào)用的參數(shù)在系統(tǒng)內(nèi)不同機型之間的通用能力有所不足。②缺乏在一次調(diào)用過程中多次接收返回結(jié)果的能力。③遠程過程調(diào)用缺乏傳送大量數(shù)據(jù)的能力。
13. 什么叫組通信:在網(wǎng)絡(luò)系統(tǒng)中,一個相互作用的進程集合稱為組。一個發(fā)送者在一次操作中將一個消息發(fā)送給多個接收者的通信,稱為組通信。它應(yīng)用于何種場合:在網(wǎng)絡(luò)系統(tǒng)中可以采用組通信方式。組通信的主要特征是:當一個消息發(fā)送給這個組時,該組的所有成員都可以接收,組通信具有“一對多”的形式,即一個發(fā)送者,多個接收者。組通信的實現(xiàn):組通信的實現(xiàn)在很大程度上依賴于硬件。在一些網(wǎng)絡(luò)系統(tǒng)中,可以為組指定一個特殊的網(wǎng)絡(luò)地址。可采用多播式、廣播式、單播式。
來源網(wǎng)絡(luò) 僅供參考