分布式系统 hw4

1. 当两个节点的时钟不同步时,它们之间的时间差可能会导致数据包丢失、乱序等问题。为了解决这个问题,一个较好的方法是在同步时钟时考虑以前的度量。

例如,假设我们有两个节点A和B,它们的时钟分别记录了它们与参考节点C的时间差。现在,我们需要让节点A的时钟与节点B的时钟同步。我们可以先计算节点A和节点B与节点C的时间差,然后将这两个时间差相加,得到一个新的时间差。接下来,我们将这个新的时间差应用到节点A和节点B的时钟上,使它们与节点C的时钟保持同步。

2. 不会,在任何时候,进程0要访问A资源时,会向所有进程广播资源A的访问请求,由于进程1不访问资源A,故进程1会返回OK消息,进程0接收到OK消息后,便可访问资源A。同理,在任何时候,进程1要访问B资源时,会向所有进程广播资源B的访问请求,由于进程0不访问资源B,故进程0会返回OK消息,进程1接收到OK消息后,便可访问资源B。所以,在给定情形下不会死锁。

在其他情况下,richard和agrawala算法的情境满足互斥,请求并保持,不可剥夺条件,但是并不满足循环等待条件。下面对循环等待进行证明:如果a1,a2...ak循环等待,那么ai的时间戳大于a(i+1)的时间戳,ak的时间戳大于a1的时间戳,矛盾。故richard和agrawala不会造成死锁。

3. 在分布式系统中,Bully算法是一种常用的选举算法。该算法的主要功能是在系统协调者崩溃的情况下,选出一个新的协调者以维持系统的正常运行。

假设两个进程同时检测到协作者崩溃并且它们都使用Bully算法主持一个选举,每个进程会向所有编号比它大的进程发送一个ELECTION消息。在这个过程中,可能会出现两种情况:

如果某个进程没有得到其他任何进程的回应,那么这个进程就会成为新的协调者,因为它的请求无法得到应答,这通常意味着其他进程已经崩溃或者它们的响应在通信过程中丢失

如果有编号比它大的进程回应它的ELECTION消息,那么选举工作将会由回应者接管。这种情况下,系统可能会进入一种复杂的状态,其中两个或更多的进程都在尝试成为协调者。这将导致系统进入一种循环等待的状态,可能最终导致系统的不稳定。

4.

逻辑时钟:

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

1

2

3

4

6

9

10

1

3

4

5

8

1

4

7

8

11

2

3

5

7

向量时钟:

A

B

C

D

E

F

G

(1,0,0,0)

(2,1,0,0)

(3,1,0,0)

(4,1,0,0)

(5,5,1,2)

(6,5,4,4)

(7,5,4,4)

H

I

J

K

L

M

N

(0,1,0,0)

(0,3,1,0)

(1,4,1,2)

(1,5,1,2)

(4,6,1,5)

(0,0,1,0)

(0,3,2,0)

O

P

Q

R

S

T

U

(3,3,3,4)

(3,3,4,4)

(7,5,5,4)

(1,0,0,1)

(1,0,0,2)

(4,1,0,3)

(4,1,0,5)


 

5. 集中式算法:所以进程共用一个协调者,每次要访问临界资源A,就向协调者发一个访问请求,若当前没有进程访问临界资源A,则访问请求通过,准许访问,否则进入队列中等待。缺点是,协调者单点故障,会导致整个系统不可用。消息交互有:进程向协调者发送请求,协调者向进程发送许可,进程向协调者发送释放消息。共计三次消息交互。

非集中式算法:每种资源有M个副本,每个副本有一个协作者,要求每个协作者均可立即响应进程的资源访问请求。只要进程获得协作者的投票数m>M/2,则可以访问资源。消息交互有:进程向协调者发送请求,协调者向进程发送许可,进程向协调者发送释放消息。共计3M次消息交互。

分布式算法:每个进程要访问临界资源,需向其它所有进程发送请求消息,当所有进程均返回OK时,才可以访问临界资源,消息交互有:向n-1个进程的请求消息,与来自n-1个进程的响应消息,共计2(n-1)次消息交互。

令牌算法:可以访问临界资源的令牌在所有进程依次传递,当某个进程获得令牌后,才可以访问临界资源。假设有n个进程,其中有m个进程有临界区有访问请求。消息交互有:令牌的传递,共计n次消息交互,平均每个请求n/m次消息交互。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值