互斥算法的性能指标
互斥是一个程序对象,指的是满足没有两个并发进程同时在临界区的要求。它被提出来拦截竞争条件。如果当前进程正在访问临界区,那么它会阻止在那里进入另一个并发进程。因此,总而言之,在给定的时间示例中,只允许一个进程执行临界区。
互斥要求
- 无死锁——站点不应无限期等待任何不会到达的未决消息。
- No Starvation – 应该有一个阈值,一个站点不能重复执行关键部分,而另一个站点正在等待而不执行关键部分。
- 容错——它应该自动检测自己的故障以继续运行,几乎没有中断。
执行分布式互斥的三种基本方法:
- 基于令牌的方法——在基于令牌的方法中,站点之间共享一个特殊的令牌(也称为 PRIVILEGE 消息)。假设站点拥有令牌,则允许站点进入其临界区,并继续持有令牌,直到临界区的执行完成。因为令牌是唯一的,所以保证了互斥。考虑到这种方法的算法在站点发出令牌请求的方式上基本不同。
- 非基于令牌的方法——在非基于令牌的方法中,站点之间至少交换两轮渐进式消息以确定哪个站点将进入下一个关键部分。当以本地因素为特征的声明生效时,站点进入临界区。
- 基于仲裁的方法——在基于仲裁的方法中,每个站点都需要同意从站点子集(称为仲裁)执行关键部分。仲裁人数经过调整,以便当两个站点同时要求进入临界区时,一个站点同时获得请求,并且能够确保在给定时间只有一个请求执行临界区。
互斥的性能指标
分布式系统中互斥性能的衡量标准有以下几种方法:
1.响应时间
一个请求在其请求消息被传送后等待其临界区执行结束的时间间隔。
2. 同步延迟
一个进程离开临界区后,下一个进程进入临界区所需的时间称为同步延迟。
3.消息复杂度
进程执行每个关键部分所需的消息数。
4. 吞吐量
吞吐量是系统执行关键部分请求的量。
Throughput = 1/(Synchronization delay + Avg Critical Section execution time)
5. 低负载和高负载性能
到达临界区执行的请求量表示负载。如果关键部分存在超过 1 个请求,则称为低负载。如果总是有一个未决的请求,那么它被称为高负载。在重负载情况下,执行请求后,站点会立即启动活动以执行其对关键部分的下一个需求。站点只是偶尔在重负载条件下处于非活动状态。对于一些互斥算法,可以通过简单的数学推理在低负载和高负载下有效地注册性能指标。
度量如何影响互斥的性能?
在大多数情况下,互斥算法对性能指标有最好和最坏的情况。在最好的情况下,获胜的情况是这样的程度,即绩效指标达到了可以想象的最佳价值。例如,在大多数互斥算法中,除了临界区执行时间 2T + E 之外,反应时间的最佳价值是往返消息延迟。通常对于互斥算法,最佳和最差场景符合低和高负载,单独。
例如,当负载分别为低和高时,实现了最佳和最差的反应时间;在一些互斥算法中,最好和最差的消息流量分别在低负载和高负载条件下产生。