中科大分布式云计算期末考试版本4.0

聚氨酯墙板1、分布式系统的定义:分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统。
2、分布式系统的特点:各种计算机之间的差别以及计算机之间的通信方式的差别对用户来说是隐藏的;用户和应用程序无论在何时何地都能够以一种一致和统一的方式与分布式系统进行交互。
3、分布式系统的目标:分布式系统必须能够让用户方便地访问资源;必须隐藏资源在一个网络上分布这样一个事实;必须是开放的;必须是可扩展的。
4、透明性:分布式系统的重要目标之一是将它的进程和资源实际上在多台计算机上分布这样一个事实隐藏起来。如果一个分布式系统能够在用户和应用程序面前呈现为单个计算机的系统,这样的分布式系统就称为透明的。
透明性的类型:
访问透明性:隐藏数据表示形式的不同以及资源访问方式的不同位置透明性:隐藏资源所在的位置迁移透明性:隐藏资源是否移动到另一个位置重定位透明性:隐藏资源是否在使用过
程中移动到另一位置监控复制透明性:使用资源是否对资源进行复制并发透明性:隐藏资源是否由若干相互竞争的用户共享故障透明性:隐藏资源的故障和恢复
5、开放的分布式系统:系统应该符合定义良好的接口、系统应该支持应用程序的可移植性、系统应该容易互操作。
物料周转箱6、系统的可扩展性:规模上可扩展、地域上可扩展和管理上可扩展。
7、扩展技术:Hide communication latencies隐藏通信等待时间、Distribution分布技术、Replication/caching复制技术。
复制/缓冲:将组件复制并拷贝分布到系统各处;缓冲与复制不同的是,是否进行缓存是由要访问资源的客户决定的,而不是资源拥有者决定。缺点是一致性问题。
8、分布式系统类型:Distributed Computing Systems分布式计算系统、Distributed Information Systems分布式信息系统、Distributed Pervasive Systems分布式嵌入系统,又叫分布式普适系统。shlr
9、体系结构样式:根据组件、组件之间相互的连接方式、组件之间的数据交换以及这些元素如何继承到一个系统中。组件是一个模块单元,可以提供良好定义接口,在其环境中是可替换的。
10、连接器 connector:在组件之间传递通信、使组件相互协调和协作。甲醇制氢
根据组件和连接器的使用,划分成不同体系结构:分层体系结构、基于对象的体系结构、以数据为中心的体系结构、基于时间的体系结构。
11、幂等的(idempotent):某个操作可以重复多次而无害出。有些请求是幂等的,有些不是,不能用某一个解决方法来处理消息的丢失问题。
点对点体系结构(P-to-P)
1、P2P的一个常见问题是如何高效的定位节点,也就是说,一个节点怎样高效的知道在网络中的哪个节点包含它所寻的数据。
2、DHT的主要思想是:首先,每条文件索引被表示成一个(K, V)对,K称为关键字,可以
是文件名(或文件的其他描述信息)的哈希值,V是实际存储文件的节点的IP地址(或节点的其他描述信息)。所有的文件索引条目(即所有的(K, V)对)组成一张大的文件索引哈希表,只要输入目标文件的K值,就可以从这张表中查出所有存储该文件的节点地址。然后,再将上面的大文件哈希表分割成很多局部小块,按照特定的规则把这些小块的局部哈希表分布到系统中的所有参与节点上,使得每个节点负责维护其中的一块。这样,节点查询文件时,只要把查询报文路由到相应的节点即可(该节点维护的哈希表分块中含有要查的(K,V)对)。
Chord算法就是解决网络内节点定位问题的一种P2P协议,它通过多个节点跳转到我们所查的资源。
3、Chord里面的基本要素:节点ID:NID(node identifier),表示一个物理机器;资源ID:KID(key identifiers),原为键ID,其实际表示一个资源;Chord环:Chord Ring,NID和KID被分配到一个大小为2^m的环上,用于资源分配(给某一个节点)和节点分布,以及资源定位。首先我们说资源分配,资源被分配到NID>=KID的节点上,这个节点成为k的后继节点,是环上从k起顺时针方向的第一个节点,记为successor(k)。而节点分布则顺时针将节点N由大到小放在这个环上。
现在N26节点要加入系统,首先它指向其后继N32,然后通知N32,N32接到通知后将N26标记为它的前序节点(predecessor)。然后N26修改路由表,下一次N21运行stabilize()询问其后继节点N32的前序节点是不是还是自己,此时发现N32的前序节点已经是N26于是N21就将后继节点修改为N26,并通知N26自己已经将其设置为后继节点,N26接到通知后将N21设置为自己的前序节点。
Chord资源定位(Key Location):资源定位是Chord协议的核心功能
这个加入操作会带来两方面的影响:
1)正确性方面:当一个节点加入系统,而一个查发生在stabilization结束前,那么此时系统会有三个状态:
A.所有后继指针和路由表项都正确时:对正确性没有影响。B.后继指针正确但表项不正确:查结果正确,但速度稍慢(在目标节点和目标节点的后继处加入非常多个节点时)。
2)效率方面:当stabilization完成时,对查效率的影响不会超过O(log N) 的时间。当stabilization未完成时,在目标节点和目标节点的后继处加入非常多个节点时才会有性能影响。可以证明,只要路由表调整速度快于网络节点数量加倍的速度,性能就不受影响。
4.Chord节点失败的处理
我们可以看出,Chord依赖后继指针的正确性以保证整个网络的正确性。但如图,若N14, N21, N32同时失效,那么N8是不会知道N38是它新的后继节点。为了防止这样的情况,每个节点都包含一个大小为r的后继节点列表,一个后续节点失效了就依次尝试列表中的其他后继节点。可以证明,在失效几率为1/2的网络中,寻后继的时间为O(log N)
4、Chord的特征和应用,特征:去中心化,高可用度,高伸缩性,负载平衡,命名灵活。应用:全球文件系统、命名服务、数据库请求处理、互联网级别的数据结构、通信服务、事件通知、文件共享。
第三章:进程
1、不同层次提供4个不同界面:①由机器指令组成,可由任何程序及其的软硬件界面;②由机器指令组成,只有特权程序才可激活的软硬件界面;③由操作系统提供的系统调用组成的界面;④由库调用组成的界面,通常形成了所谓的应用程序编程接口。
2、虚拟化可采用的两种方式:①构建运行时系统,提供一套抽象指令集执行程序—进程虚拟机;②做成一层完全屏蔽硬件但提供一个人同样指令集的界面—虚拟机监视器。
第六章:同步化
1、物理时钟:高频振荡器(石英晶体)、计数器和保持寄存器。高频振荡器的每次震荡使计数器减1,档计数器减为0时,产生一个中断,计数器从保持计数器中重新装入初始值。
自动削皮机
国际原子时间(TAI).UTC统一协调时间is TAI with leap seconds.
3、Lamport逻辑时钟:
为了同步logical clocks,Lamport 定义了一个关系叫做happens-before(先发生),记作a->b意味着所有的进程都agree事件a发生在事件b之前。
在两种情况下,可以很容易的得到这个关系:①如果事件a和事件b是同一个进程中的并且事件a发生在事件b前面,那么a->b;②如果进程A发送一条消息m给进程B,a代表进程A发送消息m的事件,b代表进程B接收消息m的事件,那么a->b(由于消息的传递需要时间)。如果事件a和事件b发生在不同的进程,并且这两个进程没有传递消息,那么既不能推到a->b也不能推到b->a,这样的两个事件叫做并发事件
三个机器上各自跑着一个进程,分别为P1,P2,P3,由于不同的机器上的quartz crystal不一样,所以不同的机器上的时钟速率可能是不同的,例如当P1所在的机器tick了6次,P2所在的机器tick了8次。图中,P1给P2发送了消息m1,m1上附带了发送m1时的时钟6,随后P2收到了m1,根据P2接收到m1时的时钟,认为传输消息花了16-6=10个tick,随后,P3给P2发送消息m3,m3附带的发送时钟是60,由于P2的时钟走的比P3的慢,所以接收到m3时,本机的时钟56比发送时钟60小。这是不合理的,需要调整时钟,如图中,将P2的56调整为61,即m3的发送时钟加1。
Lamport logical clocks的实现:每个进程Pi维护一个本地计数器Ci,相当于logical clocks,按照以下的规则更新Ci;①每次执行一个事件(例如通过网络发送消息,或者将消
息交给应用层,或者其它的一些内部事件)之前,将Ci加1;② 当Pi发送消息m给Pj的时候,在消息m上附着上Ci;③当接收进程Pj接收到Pi的发送的消息时,更新自己的Cj = max{Cj,Ci}。
向量时钟:Lamport logical clocks的问题是:事件a和事件b实际发生的先后顺序不能仅仅通过比较C(a)和C(b)来决定。Lamport logical clocks没有capture causality(因果关系),而causality可以通过Vector Clocks来capture,用VC(a)来表示事件a的Vector Clock。有性质:VC(a) < VC(b)可以推出事件a 发生在事件b之前。
为每个进程Pi维护一个向量VC,也就是Pi的Vector Clock,这个向量VC有如下属性:①VCi[i] 是到目前为止进程Pi上发生的事件的个数;② VCi[k] 是进程Pi知道的进程Pk发生的事件的个数(即Pi对Pj的了解)。每个进程的VC可以通过以下规则进行维护(和Lamport logical clocks算法类似):①进程Pi每次执行一个事件之前,将VCi[i]加1;②当Pi发送消息m给Pj的时候,在消息m上附着上VCi(进程Pi的向量时钟);③当接收进程Pj接收到Pi的发送的消息时,更新自己的VCj[k] = max{VCj[k],VCi[k]} ,对于所有的k。
因果有序多播
一个进程组中,每个进程需要广播消息给其它进程(相当于一个并发更新问题),一个消息被delivered到应用层,仅当所有的causally发生之前的消息都被收到。假设:Pi给Pj发送消息m,那么Pj可以将消息m交给应用层必须首先满足上面两个条件:

本文发布于:2024-09-22 15:28:08,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/129875.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   资源   系统   进程   消息
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议