分布式计算系统关于互斥算法的详细讲解.关于集中式互斥算法的详细解读

文章介绍了分布计算系统中一种基于集中式算法的互斥实现,通过协调者进程管理临界区访问。当进程请求进入临界区,需向协调者发送请求,获得许可后才能进入。如果协调者崩溃或成为性能瓶颈,系统可能会瘫痪或效率降低。此算法保证了互斥和公平性,但可靠性是其主要缺点。
摘要由CSDN通过智能技术生成

        分布计算系统中互斥的一种最直接的实现方法就是模仿集中式计算机系统的实现方 式,这是一个集中式的互斥算法。在此算法中,有一个进程被选定为协调者。当一个进 程,如进程 1,想进入临界区时,它向协调者发送一个请求报文,指出它想进入哪个临界区 并希望得到协调者的许可。如果当前没有其他的进程在临界区,协调者应答一个同意报 文,如图 5.2.1(a)所示。当应答报文到达请求进程时,请求进程进入临界区。

        假设现在有另一个进程 2 也希望进入这个临界区,协调者知道临界区中已经有一个 进程 1,所以不会同意进程 2 的请求。对于不同的系统,协调者有不同的处理方式,第一种 方式如图 5.2.1(b)所示,协调者不发送应答报文,进程 2 被阻塞,等待一个应答;第二种方 式是协调者向进程 2 发送一个不同意报文。无论协调者采用哪种方式,它都要设置一个 缓冲队列用来存放进程 2 的请求报文,然后协调者等待其他报文的到来。

        当进程 1 退出这个临界区时,它向协调者发送一个释放报文。协调者收到这个释放 报文后,从缓冲队列中取出第一个请求,并向对应的进程发送一个同意报文。对应的进程 接收到这个同意报文后,就可以进入临界区,如图 5.2.1(c)所示。

        很容易证明集中式互斥算法的正确性。协调者每次只允许一个进程进入一个临界 区;它也是公平的,它按请求的接收顺序分配临界区;没有一个请求进程会永远等待,不会 产生死锁和饿死现象。该算法容易实现,并且使用一次临界区只需要 3 个报文,一个为请 求报文,一个为同意报文,一个为释放报文。该算法不仅可用于临界区的管理,还可用于 资源的分配。

         该算法的缺点是可靠性差,如果协调者崩溃的话,整个系统就会瘫痪。如果一个进程 发送一个请求后得不到应答,它无法区分是因为协调者失效,还是因为协调者不同意。另 外,在一个大规模系统中,协调者会成为系统性能的瓶颈。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值