试题详情
简答题使用异步通信原语时,发送者在消息发送完成以前为什么不能使用缓冲区?该如何解决?
  • 因为倘若发送进程在消息发送完成之前,即在消息发送期间使用或修改原来的缓冲区,将会造成错误。
    有两种办法解决(应采用异步原语):
    ①采用带拷贝的非阻塞原语,即让内核把消息拷贝到内核缓冲区,允许调用进程继续运行。
    ②带中断的非阻塞发送,即当消息发送完成后,中断发送进程,通知发送进程此时缓冲区可用。
  • 关注下方微信公众号,在线模考后查看

热门试题