[理工] OS blocking/non-blocking/send/receive

作者: clonsey1314 (Clonsey)   2017-12-02 01:07:33
send/receive同步的問題
假如A和B都為mailbox
收方的code如下:
Non-Blocking Receive(A,msgA);
if(msgA==NULL){
Blocking Receive( B, msgB );
Blocking Receive( A, msgA);
}
else
{ Blocking Receive(B, msgB ); }
請問收方何時可以往下執行?
答案: 一定要從A和B收到有效訊息後, 且順序無所謂, 才可往下
************************************************************
請問這段code的意思是這樣嗎?
先去看mailbox A有沒有訊息,
如果沒有, 則在mailbox B stand by直到有訊息後, 再到mailbox A stand by直到有訊息
(順序是先B後A), 然後才能繼續往下;
若mailbox A有訊息, 則到mailbox B stand by 直到拿到訊息
(順序是先A後B), 才能繼續往下
請問是這樣解讀嗎?
作者: can18 (18號)   2017-12-02 09:01:00

Links booklink

Contact Us: admin [ a t ] ucptt.com