在通信原语的设计中,阻塞原语、非缓冲原语以及非可靠原语存在的问题是什么?这些问题是如何解决的?

欢迎免费使用小程序搜题/刷题/查看解析,提升学历,成考自考报名,论文代写、论文查重请加客服微信skr-web

在通信原语的设计中,阻塞原语、非缓冲原语以及非可靠原语存在的问题是什么?这些问题是如何解决的?

调用阻塞原语(即同步原语)时,无论send还是receive都不立即返回控制,而是处于阻塞状态。在send的情况下,当消息被发送后,调用进程被阻塞,直至消息完全发送完成。在这段时间缓冲区不能使用。同样,在receive的情况下,也并不返回控制,而是等到把消息实际接收下来并把它放人缓冲区。阻塞原语的最大问题是,调用进程在阻塞期间,如果没有其他进程可以运行,CPU只能空转。这就是说,使用阻塞原语的最大缺点是效率低,缺乏连续并行计算的能力。解决这一问题的办法是采用非阻塞原语,即异步原语。有两种形式的异步原语:(1)带副本的异步原语,由内核把消息复制到内核缓冲区,然后允许调用进程运行。其缺点是CPU时间花费在额外的消息复制上。(2)带有中断的异步原语,当消息发送完毕后,中断发送进程,通知发送进程此时缓冲区可用。这种异步原语的缺点是,它给程序员编程带来了困难。非缓冲区原语的最大问题是,接收进程无法处理过早到达的消息。接收进程对接收到的消息要进行必要的处理,处理这些消息要花费一些时间,否则到达过多的消息因来不及处理,就会造成消息丢失。解决这一问题的办法是:一个希望接收消息的进程要告诉内核为它创建一个信箱,即采用缓冲原语。不可靠原语不能保证消息被对方正确接收。为解决这一问题可使用可靠原语。可靠原语,要求在客户与服务器之间传送四条消息。①客户向服务器的请求;②服务器内核到客户内核的确认;③服务器对客户的应答;④客户内核到服务器内核的确认。

访客
邮箱
网址

通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作


  • 自动写文案
  • 自动写小说
  • 马上扫码让Ai帮你完成工作
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作

  • 自动写论文
  • 自动写软件
  • 我不是人,但是我比人更聪明,我是强大的Ai
Top