分布式计算,云计算,大数据。关于分布式计算的通信类型

:进程通信原语是分布式程序设计语言的一部分,用于分布式进程间的通信和同步。 通信原语是分布式操作系统内核与服务层之间的接口,是通过进程通信协议实现的。集 中式计算机系统和紧密耦合分布计算系统有共享的存储器,进程之间的通信和同步使用 并发程序设计语言,它们使用共享变量。尽管松散耦合分布计算系统不使用共享变量,物 理上分开的进程之间的通信和同步是通过报文交换的方法实现的,但是从分布式程序设 计语言的角度看,进程间仍然可以通过逻辑上共享的内存进行通信,即分布式共享存储器 (Distributed Shared Memory,DSM)系统。在松散耦合分布计算系统中,两种基本的实现进 程通信的方法是报文传递(Message Passing)和远程过程调用(Remote Procedure Call, RPC)。

报文传递通信方式包含类似于如下的发送和接受原语:

send(b,msg);/*b为接收进程的标识符,msg为存放待发送报文的缓冲区

receive(a,msg);/*a为发送进程的标识符,msg为存放待接收报文的缓冲区

        这些原语可以是阻塞性的也可以是非阻塞性的,他们各有优缺点。 

阻塞原语:

阻塞性报文通信原语也称为同步(Synchronous)原语。阻塞原语不立 即将控制权返回给调用该原语的进程,也就是说 send 一直被阻塞直到发送的信息被接收 方接收到并得到接收方的应答。同样,receive一直被阻塞,直到要接受的信息到达并被接 收。当一个进程被阻塞时,它不能执行该原语后的语句,直到被解除阻塞。所以使用阻塞 通信原语,两个进程不仅能进行通信,还能进行同步。如果进程需要同步,使用阻塞原语 是很方便的,但是它牺牲了并发性。 阻塞原语可以具有一个缓冲器,也可以没有缓冲器。有缓冲的阻塞原语中,缓冲器可 以被看成一个邮箱,发送的信息和对发送信息的应答都放在缓冲器中,直到相应的进程被 解除阻塞。缓冲器可以放在分布式操作系统内核的地址空间里,也可以放在进程的地址 空间里。在一个分布式环境中,可以由接收方机器维持一个缓冲器,但这容易引起一个问 题,这就是在接收方没有发出接收命令时没有缓冲器,对于发送方已经发送的报文,系统 内核不知道该向哪里缓存。 使用无缓冲的阻塞原语时,发送方的发送一直被阻塞,直到内核通知有一个接收为 止,一旦通知有一个接收,发送方重新执行发送,然后继续执行。 一个进程是如何知道它不再被阻塞的呢?这有两种方法。第一种方法是探听 (Polling),当一个进程使用探听的方法时,它测试相关信息是否在缓冲器中存在,这可以 通过判断缓冲区的状态来实现。如果采用循环检测的话,它需要消耗大量的 CPU 资源,但 常用于实时应用中,进程的这种行为称为忙等待。也可以采用定时检测的方式,一般来 说,定时的时间间隔不能太短,否则会影响系统的性能。第二种方法是中断,中断是一种 更为有效的方法,因为进程不用浪费时间检测缓冲区。 行时,定时器启动计时,当定时器超时时,还没有收到来自内核的通知,进程重复执行该原 缺省的超时值或者定时值由程序员控制。如果采用无缓冲的实现方式,每当 read 原语执 断未能产生,进程可能会被永远阻塞。所以在阻塞原语中常使用定时器,该定时器有一个 对于同步的消息传递系统,发送和接收原语都必须是阻塞的。当测试过程失效或中 语,但重复的次数是有限的.

非阻塞原语:

(2)非阻塞原语。由于使用阻塞原语发送进程和接收进程都有可能等待,所以执行
效率较低。有些进程不要求阻塞而追求并发性,这时候可以不要求同步。非阻塞 send 原
语将要发送的报文送入一个缓冲区后,就立即将控制权归还给发送进程,发送进程开始执
行下一条语句
。当该报文发送完毕时,系统向发送者进程发出一个中断信号,通知它可以
继续发送。非阻塞 receive 原语发出一个信号表示要接收一个报文并提供一个缓冲区存放
该报文,然后立即将控制权归还给接收进程,接收进程开始执行下一条语句。当报文到达
时,用中断信号通知接收者进程。非阻塞原语也被称为异步通信原语,因为它并不提供任何同步手段。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值