快捷搜索: 王者荣耀 脱发

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

首先让我们了解一下到底什么是分布式计算系统的互斥问题

互斥问题

互斥(Mntual Exclusion)是分布计算系统的一个关键问题,互斥保证了相互冲突的并 发进程可以共享资源。互斥问题就是定义一些基本的操作来解决共享资源的多个并发进 程的冲突问题。互斥问题最初是在集中式计算机系统中为独占控制之间的同步而提出 的,最初是通过硬件的办法解决的,通常是为操作系统提供一些特殊的机器指令来解决这 个问题,如 test-and-set,compare-and-swap 、fetch-and-add 等机器指令。Dekker 提出了互斥 问题的第一个软件解决方案,Dijikstra 对 Dekker 的解决方案进行了详细的介绍并引入了信 号灯(Semaphore)。

互斥算法的主要目标是保证在任一个时刻只能有一个进程访问临界区(Critical Region)。一个正确的互斥算法必须避免冲突(死锁和饿死)和保证公平性。为此,算法应 满足以下 3 个条件。

(1)已获得资源的进程必须先释放资源之后,另一个进程才能得到资源。

(2)不同的请求应该按照这些请求的产生顺序获得满足,请求应该按照某种规则进 行排序,例如使用逻辑时钟确定请求的顺序。

(3)若获得资源的每个进程最终都释放资源,则每个请求最终都能满足.


在分布式计算系统中,互斥算法的性能由以下参数衡量。

(1)完成一次互斥操作所需的报文数目。

(2)同步延迟,即从一个进程离开临界区之后到下一个进程进入临界区之前的时间 间隔。

(3)响应时间,即从一个进程发出请求到该进程离开该临界区之间的时间间隔。

分布计算系统的互斥算法可以采用集中的方式实现,也可以采用分布式方式实现。

经验分享 程序员 微信小程序 职场和发展