minix消息傳遞中rendezvous概念

消息傳遞的實際功能以一對原語的形式提供:
send (destination, message) 
receive (source, message) 
消息傳遞優點:  它有助於在分佈式系統以及共享存儲器的多處理器系統和單處理器系統中的實現。
 
當發送進程調用執行send原語時,有兩種處理方式:
1、發送者進程被阻塞,直到這個消息被接收到爲止。
2、發送者進程不阻塞,繼續執行。
當接收進程調用執行receive原語時,有兩種處理方式:
1、如果消息在執行receive原語之前發送,則該消息能被接收。
2、如果receive原語沒有接收到消息,則選擇下列一種方式執行:
      ①該進程被阻塞直到一個消息到達
      ②該進程放棄接收,繼續執行
 
發送者和接受者按阻塞和非阻塞有三種不同的組合:
1、Blocking send, blocking receive
    (進程間緊密同步時,採用阻塞發送和阻塞接收)
Both sender and receiver are blocked until message is delivered(發送者和接受者都被阻塞,直到完成信息的傳送)
Called a rendezvous(稱爲會合)
2、Nonblocking send, nonblocking receive
Neither party is required to wait(不需要任何一方等待續)
3、Nonblocking send, blocking receive
(最常用的一種方法:非阻塞發送,阻塞接收)
Sender may continue on,Receiver is blocked until the requested message arrives.  (發送者繼續執行,接收者被阻塞直到請求的消息到達)
 It allows a process to send one or more messages  to  a variety of destinations   as quickly as possible.(允許進程發送一個或多個消息儘快的給各種目標進程)
例如,一個服務進程給其它進程提供服務或資源.
採用此種方式存在的問題:
①由於無阻塞發送:當收不到應答,會引起多次重發
②由於阻塞接收,當收不到消息時,會引起死等.

 
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章