分布式计算剖析.ppt

分布式计算剖析

同步send和异步receive情形3 receive操作请求的数据仍未到达。当请求数据到达时,主机2的IPC设施将通告进程2,此时进程2可以继续处理数据。该情形要求进程2提供一个可以被IPC设施调用的侦听接口或事件号,用于向进程通告请求数据的到达 异步send和异步receive 如果双方都没有阻塞,数据能传送到接收者的唯一途径就是由IPC设施保留接收到的数据。接收进程随后可以被通告数据到达了。另外,接收进程也可以轮询数据是否已经到达,并在所等待的数据到达时,对其进行处理 死锁和超时 虽然阻塞提供IPC必要的同步,阻塞以错误的顺序发起是可能会引起死锁( deadlocks )。 连接和接收操作可能会导致无限期的阻塞( indefinite blocking ),死锁也可能造成无限期的阻塞。 例如,进程Process1和进程Process2因相互等待对方而无限期阻塞,此时,即由无限期阻塞而产生了进程的死锁。见后页的图示说明。 我们一般不期望被请求的进程被无期限挂起(即无期限阻塞),无期限阻塞可以通过使用超时或子线程来避免。 死锁 尽管阻塞机制为IPC提供了必要的同步,但是同步操作如果按照错误的顺序执行就可能会产生死锁,造成进程被无限期挂起。 用线程实现异步操作 在使用IPC编程接口时,了解该操作是同步操作还是异步操作是非常重要的。如果阻塞操作仅仅是发送或接收,那么编程人员就可以使用

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档