Message passing
- 가장 일반적이고 쉬운 방법
- Mutual exclusion, Synchroniztion 뿐만 아닌 Communication 또한 가능
- 실제 동작?
send(des, msg)
receive(src, msg)
sender
와 receiver
는 blocking이 될수도, nonblocking이 될수도 있음- blocking send / blocking receive (rendezvous - 둘 다 기다림)
- nonblocking send, blocking receive (가장 일반적임)
- nonblocking send, nonblocking reveive
Addressing
: sender와 receiver를 어떻게 특정할 것이냐?Direct addressing
: receiver의 id를 명시해둠- direct addressing일 때 receiver는 다음 두 가지 방식으로 처리 가능
- Explicit addressing
- sender가 본인을 명시적으로 보내도록 함 designate
- cooperating 하는 concurrent process에서 효율적인 방식
- Implicit addressing
- receive 할 때 sender의 id가 반환됨
Indirect addressing
: 특정 receiver에게 보내는 것이 아닌 mailbox
에 넣어둠
- Message passing을 이용한 Mutual Exclusion
- Message를 이용한 Producer-Consumer 문제