进程间互斥、进程间同步 & 消息通信机制的同步、异步


进程的互斥、同步:

互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。

   同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源

 

进程的状态是基于一定的原因和条件而变化的而这些原因和条件又常常是因为进程间的相互制约关系而引起的系统中进程会有这种关系主要是由于进程对资源的共享性由于这种共享的特征使系统中原来没有逻辑关系的进程因为互相竞争资源而发生了制约关系这种关系的基本形式"进程-资源-进程"这是进程间通过资源而发生的一种间接关系由于系统对进程所请求的许多资源常常是互斥满足的所以这咱关系表现为互斥关系

 

又由于系统中为了完成同一个任务而创建若干进程它们之间必然是伙伴进程如作业的一组并行进程共同完成一项任务有时它们要在某点上互相等待或互通消息这种关系的基本形式是"进程-进程"这是进程之间的一种直接关系表现了进程之间的协同工作的特性称为进程间的同步关系例如:现在AB两个进程A进程负责输入数据并送入缓冲区中B进程必须负责加工缓冲区中的数据并输出为了保证这两个进程之间能够协同工作B进程必须等待A进程发来缓冲区已满的信号后才开始工作A进程必须等待B进程发来缓冲区中的数据加工并输出后才能再输入下一批数据这体现了进程之间的的同步关系又由于这两个进程共用同一个缓冲区因此它们对缓冲区的操作还应该作到互斥

 

 

消息通信机制的同步、异步:

所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由*调用者*主动等待这个*调用*的结果。

而异步则是相反,*调用*在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在*调用*发出后,*被调用者*通过状态、通知来通知调用者,或通过回调函数处理这个调用。

举个通俗的例子:
你打电话问书店老板有没有《分布式系统》这本书,如果是同步通信机制,书店老板会说,你稍等,”我查一下",然后开始查啊查,等查好了(可能是5秒,也可能是一天)告诉你结果(返回结果)。而异步通信机制,书店老板直接告诉你我查一下啊,查好了打电话给你,然后直接挂电话了(不返回结果)。然后查好了,他会主动打电话给你。在这里老板通过“回电”这种方式来回调。


http://m.blog.csdn.net/Alvin_CSDN_blog/article/details/64124077点击打开链接


 https://baike.baidu.com/item/%E7%BA%BF%E7%A8%8B%E5%90%8C%E6%AD%A5/4855164?fr=aladdin点击打开链接


https://www.cnblogs.com/kubixuesheng/p/4355786.html点击打开链接




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值