分布式操作系统学习体会_积极心理学学习体会
分布式操作系统学习体会由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“积极心理学学习体会”。
分布式操作系统学习笔记
陆健(1020332197)
1、分布式系统中实现互斥的难点,及其原因。
分布式系统中资源管理的方法有两种,一种是分布式集中管理,一种是完全分布管理。分布式集中管理的每个资源均由本地主机唯一的一个管理员管理,实现互斥采取单机系统同样的算法,没有特别的难点。但分布式集中管理存在单点故障,一旦管理资源的主机崩溃,整个系统将瘫痪。
完全分布管理的情况下每个资源由位于不同节点上的资源管理者共同来管。每个管理者在决定分配资源前,必须与其他资源管理者协商。但由于分布式系统中各计算机没有公共存储区,所以进程间只能通过网络传递消息,而不支持通过公共变量通信。另一方面分布式系统中各计算机没有公共时钟,时间消息通过网络传输也有延迟,因此首先存在一个为事件定序的问题。这些都是分布式系统中实现互斥的难点。
2、为什么不能够用单机或SMP中采用的Test and Set指令或信号量的手段解决分布式系统中的互斥问题。
单机或SMP中采用的Test and Set指令需要对锁变量lock上锁,对信号量sem执行Wait,Signal操作也都依赖于共享内存。而如前所述,在分布式系统中各计算机没有公共存储区,所以进程间只能通过网络传递消息,而不支持通过公共变量通信。这就是不能够用单机或SMP中采用的Test and Set指令或信号量的手段解决分布式系统
中的互斥问题的原因。
3、在分布式系统中设置“逻辑时”的实质是什么?说明p.284
中的三个定义如何体现了上述实质。
在分布式系统中设置“逻辑时”的实质是,系统中的事件必须有全局的顺序,也就是说、对于系统中任意两个事件,它们谁先发生必须是明确无误的。而物理的“真实”时间却是不用关心的。
p.284中的三个定义说明了上述实质:
1、逻辑时小则事件先发生,逻辑时大则事件后发生,确立了逻辑时与事件发生先后的确定关系。
2、进程不与其他进程发生关系时,按他自身的发展顺序确定逻辑时;若与其他进程发生关系,则调整“逻辑钟”,这种调整是单向的“拨快”,即逻辑时小的向大的看齐,以求相互发生关系的进程间逻辑时的同步。
3、逻辑时是确定事件发生次序的决定因素,在逻辑时一样时,进程编号也能影响事件发生次序的确定,从而保证任意两个进程的两个事件间必定能确定一个确定的先后关系。
4、指出p.286中的令牌算法中的那些行用到了逻辑时的概念,并对这些行加上注解,以详细说明在这些行中是如何使用逻辑时的。
在P.286中的令牌算法中,以下这些行用到了逻辑时的概念: 程序实体的第一行:
begin request[i].clock:=1+request[i].clock;
//定义二(1),内部事件,逻辑时顺序加1。
程序实体的第三行:
Broadcast(Request,clock,i);
//向其他进程广播申请信件,信中附上当时的逻辑时的时间戳。
程序实体的第七行:
Token[i]:=Request[i].clock;
//将已完成的请求的逻辑时时间戳放入令牌数组本进程对应的位置中。
程序实体的第十行:
if(request[j]>token[j])…
//请求数组中的逻辑时时间戳若等于令牌数组中的逻辑时时间戳,说明该请求已获得过令牌(已完成),不再需要获得新令牌;请求数组中的逻辑时时间戳若大于令牌数组中的逻辑时时间戳,说明该请求后于上次获得的令牌,需要获得新令牌;本行程序正是用于顺序寻找需要获得新令牌的进程。
程序实体的第十八行:
request[j].clock:=max(request[j].clock,clock);
//clock为信件中用的时间戳。每个进程收到其他进程发来的申请信件时,记录该申请的时间入申请数组中,该时间取发信人的逻辑时与收信人的逻辑时中的大者。