分布与并行计算思考题答案整理.docx
分布式系统
笫一章分布式系统概述
1?一个有256个CPU的多计算机系统被组织成16X16的网格。在最坏的情况尺-?条消息的传输延迟为多少?(以跳为单位) 假定路由是最优的.那么最长的优化(理想)路径是从网格的一?角到相对的?角,即沿着对角线的路径。这个路径的长度是3()跳。如果在单行或单列上的终端处理器是互联起來的,那么路径长度变成15^
2?考虑一256个CPU的超立方休.在最坏的情况下,一个消息延迟是多少?(以跳为单位)
对于256个CPU的超立方体,每个节点有一个二进制地址.范围从OOOOOO(M)到11111111?从一个机器到另一个的一?跳,耍改变二进制地址中的一位,因此地址从00000000变到00000001就是一跳,从00000001到0(X)00011又是另外一跳。因此总共需耍八跳。
3?一个冬计算机系统有4096个50-MIPS的CPU,通过omega网络连接到内存。为了使一个内存请求能在-?条指令的时间内到达内存并返回结果.转换的速度需要有影快?
5O-MIPS=5纳秒.需耍【(4096的对数)=12】层开关.就有这么卷延迟?因为有来回.所以乘以2.转换速度就是5/24=0.208纳秒。
4 ?一台试验文件服务器由于错误的原因.3/4的时间正常工作,1/4的时间由于故障停止工作。为了达到99%的可用性,这一文件服务誥需耍复制多少次?
设k是服务器的数则由题意知(l/4)k<0.01?这是最坏的情况.即所有的服务器都出故障的时间至名为1%的时间的情况。这k = 4。
5 ?假设有一个包含m个待编详文件的大源程序。这个编译工作将在一个拥有!1个处理器的系统上进行.其中:n?m。希望这种方法的速度嚴好达到单处理器的m倍。哪些因素导致实际的速度达不到该值?
答:可能由于总线容量限制从而引起总线过载,或者交换开关延时。
6?举例说明名核并行计算机的结构和性能计算方法。(网上找的答案.参考)
多核并行计算机的结构
多核即在一?个单芯片上而集成两个捷至更多个处理器内核.其中每个内核都有自己的逻辑单元.控制单元.中断处理器、运算单元, -级cache.二级cache共享或独有.其部件的完整性和单核处理器内核相比完全一?致。片上多核处理器(CMP)是将多个计算内核集成在一个片处埋器芯片中.从而提高计算能力。每个微处理器核心实质上都是?个相对简单的单?线程微处理誥或者比较简单的冬线程微处理器. 这样多个效处理器核心就可以并行地执行程序代码.因而具有了较高的线程级并行性。由于CMP采川了相对简单的微处理蛊作为处理器核心?使得CMP具有高主煉设计和验证周期短.控制逻辑简单、扩展性好.易于实现.功耗低.通信延迟低等优点。此外.CHP还能充分利用不同应用的指令级并行和线程级并行,具有校高线程级并行性的应用町以很好地利用这种结构來提高性能。按照内核的对等与否,CMP 可分为同构多核和异构多核。计算内核相同,地位对等的称为''同构参核役同构CHP人务数山通用的处理器组成.零个处理器执行和同或者类似的任务。计算内核不同,地位不对等的称为“异构多核”,异构多核多采用“主处理核+协处理核”的设计。
C5IP处理器山多个CPU核心组成.每个核心执行%自的程序代码.但是CMP处理器的冬CPU核心执行的程序之间耍进行数据共享和同步.所以硬件结构必须支持核间通信。高效的通信机制是CHP处理器高性能的敢要保障?比较主流的片上高效通信机制有两种,一种是基于总线共享的cache结构,一种是基于片上的互连结构。总线共cache结构是扌旨每个CPU内核拥有共享的二级或三级cache,用于保存比较常用的数据.并通过连接核心的总线进行通信。这种系统的优点是结构简单,通信速度I淙缺点是基于总线的结构可扩展性较差。基于片上互连的结构是指每个CPU核心具有独立的处理单元和cache,各个CPU核心通过交叉开关或片上网络等方式连接在-?起。各个CPU 核心间通过消息通信。这种结构的优点是可扩展性好,数据带宽有保证,缺点是硕件结构复杂?且软件改动较大。
性能计算方法
以下6种性能爲求是用户经常提到的:执行时间.运行速隊吞吐率.利用率.成本有效性以及性能/成本比。
1) 运行?:运行速度是衡虽计算机性能的-项币雯指标。通常所说的计算机运算速度(平均运算速度).是指毎秒钟所能执行的描令条数.-般用
“百万条指令/秒"(mips, Million Instruction Per Second)来描述。同一台计算机.执行不同的运算所需时间可能不同?【大M对运算速度的描述常采用不同的方法。常用的有CPU时钟频率(丄频入每秒T?均执行折令数(ips)等。
2) 执行时间:等于从并行程序开始执行到所有进程执行完毕,瞄上时钟走过的时间,也称为谱上时间((wall clock time wall clock time).对客个
进程,增上时间可进??步分解为计算进涉分解为计算CPU时间.通偃CPU.同步开销时间.同步解的进程空闲时间。
3) 吞吐率:吞吐率定义为在单位时间内所处理的作业数。如果每次只执行一个作业,那么吞吐率就是执行时何的(御数。当有多个作业彼同
时执行时.常使用吞吐率来农示系统的性能。
4) 利川率:可茨示为计算机可达到速度与峰值速度之比。
5) 成本有效性:农示成本有效性的合适指标是利用率因子(或简称利川率),其可用利用率农达式,即农示为一个给定计算机可达到速度与峰值
速度之比。
6) 性能/成木比:所获得的性能与所消耗费用之比。性能可以川所获得的计并机达到放大速度表示。
第二章分布式系统中的通信机制
1?如果一个客户/服务器系统的通信原语是非阻塞的,在消息实际彼发送之前发送.对send的调川已完成。为了减少开销? 一些系统不拷贝数据到内核,而是直接从川户空间发送。对于这样的系统,诸设计两种方案.发送者能知道传输己经完成?可以遥新使用缓冲区。
第-?种方法是内核将消息拷贝到内部缓冲区,其后允许进程继续执行。第二种方法是当消息被发送后?中断发送者并通知它缓冲区可用.这里不需耍备分,节省了时间。
2?在许多通信系统中,调用send 个计数器,以保证当服务器削溃时客户机不会永久彼挂起。假设一容错系统,所有的客八机和
服务器都用多处理机方式实现.那么客户机或服务器谢溃的概率儿乎等于寥。你认为在这样的系统中能安全地避免超时吗?
不安全。因为在客户机和眼务器的通信过程中,并不仅仅由于客户机或服务器崩溃,从而引起信息的丢失,系统的瘫痪。在信息传输网络中也可能引起信息的丢失。而超时机制能够無决这个问题。
3. 解释RPC的工作原理和参数传递方法。僻释何为异步RPC。
客户机器上的进程调用远程过程时,通过客户存根将参数传递到服务器,然后阻塞"C直到收到响应。服务器上的服务器存根使用这些参数调用本地的过程,得出结果后再传递冋客户机器客户存根捉取结果后以通常的方式返冋。从客户的角度看,该过程和木地调用具有相同的形式,是透明的。
参数传递方法有传递值参数和传递引川参数。
在异步RPC中,服务器接收到客户发送的RPC请求后立即向客户送回应冷Z后再调川客户请求的过程.客户收到确认消息麻继续向下执行,只是在服务器将结果传递回来时发生一个中断。
4?当一组计算机组成一个逻辑环时,如何确保传输延迟不小于允许的嵌小端到端延迟时间?
这比确保传输延迟不大于最大端到端延迟时间还耍闲难,因为在理论上,接收端必须在…段时间后再接收数据。唯-的解决办法是,将数据包在缓冲区中存放必要的时何。这种暂存的行为可以山发送方.接收方?或者传输中的某个结点来完成.比如中间姑。而最好的存放地是接收方,因为这时对数据传输來说己经没有未知的阳碍「接收方只需耍把数据从缓冲区转移到使川一个简爪定时机构的应用程序。这种方法的缺点是必须耍有足够的缓存空间。
5?设计一?个使川RFC的简单客户?服务器系统。
服务器提供一个名为next的过程,该过程接受一个整形数作为输入.并且返回紧接若该整型数Z后的-个数。编写一个客户使用的名为next 的存根?它的任务是使用UDP将参敎发送给服务器.随后等待报务猱响应.如果过长时何未收到响应就认为超时了。服务器过程必须在一个公开的端口监听并接受请求.完成这些请求所耍求的操作.然后送回结果。
第三章进程
1?比较川单线程文件服务器读文件与用名线程文件服务器读取一个文件的不同Z处。如果要求的数据在缓存中,收到任务请求.分配这个工作?并作和应的处理总共需要15rm的时间。如果耍进行磁盘操作?进行读写需要占用1/3的时间,则需耍多使用75叫在磁盘操作期间.线程休眠。请分别计算单线程文件服务器和多线程文件般务器每秒各能处理多少条请求?
单线程文件服务很的情况下,缓存命中时需耍15ms,没有命中时需婆90加?加权平均等于2/3?15 + 1/3 ? 90=40(ms).因此平均请求处理时间是40ms. H服务誥每秒钟可以处理25条请求。对于多线程取务器.等待磁盘是重磴的.所以每个请求的处理时间是15ms.服务器每秒钟能处理1000/(15*2/3)=100条请求。
2. 如果两个用戶同时检査注册表.他们很可能会选中同一台空闲工作站.如何改进算法用來避免这种竞争问题?
当-?个用户启动romotc命令运行进程的时候? remote程序应能检査空闲工作站.如果工作站仍然空闲.这个工作站就将自己从注册表中删除并标志一?个正在运行的记号.这样可避免同时选中同一台空闲工作站的竞争问题。
3. 以处理机1为基准处理器?计算图4?15 (13)的响应率。如何分配进程?以使平均响应率最小低?
进程A在处理器1运行需要10s.在处理濡2运行要6s
进程B在处理器1运行需耍30s?在处理器2运行耍8s
以处理器1为基准处理器:A在1上运行,B在2上运行,则平均响应率为(10/128/30)/2=19/30
若A在2上运行,B在1上运行,则平均响应率为(6/10+30/30) /2=24/30
若AB都在1上运行则平均响应率为(10/1X30/30) 72=1
若AB都在2上运行则平均响应率为(6.110-8/30X2= 13/30
13/30最小,所以进程AB都应该在处理机2上执行
4. 在图4-17 (15) 我们讨论了两种不同的分配算法,它们的网络通信虽也不相同。还仔其它更好的分配方案吗?假定每台处理器最多可以运行4个进程。
(A)JBEGH),(CDFI)或者(AGEB) (FH)(CDI)可以有冬种分配方案
5. 当某个分布式系统过拔时,系统进行m个尝试.以寻找一台空闲的工作站來减轻其负载。一台工作站有k个进程的概率符介泊松分布:
P (K) = (Z k e A) /K!计算过载工作站在m次请求内能够找到空闲工作站的概率。(即K=0)计算在m=3?兄=时的结果。
(纯概率问题)卜U-P (0) ]?
6. 解释对象适配?器的概念飞.
对象适配器是丄种将对象根据策略进行分组的机制。是用來实现对彖激活锹的组件。
7?解释移动Agent的概念
移动Agent (Mobile Agent, MA)是代码、数据以及执行环境的软件包,它可以在执行过程中,有目的地、自治地在网络中移纵利川分布式资源以及与相应资源的局部交互來完成特定的任务。
8?済设讣一个简单的名线程服务器,支持目询常用的协议。
?个相关的简单设计是用一个单线程T筹待接收传输消息(TPDUs,传输协议数据单元)。如果我们假设毎个TPDU的头部都包含了个标志了更高层协议的数字,这个线程可以将负载传送到对应协议的模块进行处理。毎个这样的模块都有一个单独的线程处于空闲等待状态,将这种负载看成足传入的请求,处理完请求之后,再将一个响应消息传给T,这个消息披包在一个传输层消息里,然后传到适当的目的地。
第四章命名
1 ?解释“名称空间”的概念
在分布式系统中,名称是山位或字符纽成的字符串,用來指向一个实体,名称空间是由名称纽织而成的。结构化名称的名称空间可以表示为
带有标记的具有两种类型的结点的有向图。
2?解释女实体"的概念
分布式系统的实体儿乎可以是任何事物,典空的示例包括如主机、打印机、磁盘和文件等资鴻通常得到明确命名的众所周知的其他实体示例
还有进程、用户.邮箱、新闻组.Web页面.图形窗口、消息和网络连接等。
3?“名称”有哪三种衷示方法
命名的形式有:实体的地址:字符串:标识符。
4?解释“挂载点”的概念外部名称空何中的目录结点称为挂载点,通當是名称空间的根。
5?在DNS中是如何进行域名解析,实现主机査找的。(整理)
DNS名称空间划分成不重叠的区域,包括组织内文件的名称,可以通过因特网访问这些文件。每个区域山单独的名称服务器实现,区域更新-傲由主名称服务器完成。DNS数据库由一组文件实现,其中最垂要的一个文件包含了特定区域中所有结点.所有类型的资源记录,允许只川结点的域名來标识结点。
6?说说移动实体的定位方法
(1) 简单方法:广播/多播:转发播针。(2)基于宿主位置的方法。(3)分层方法。(4)可扩展性能
7. 在世代引用计数中,项G[i]是否可能小于0?为什么?
可以。假设复制笫k代的引用.指向笫k+1代的引用。如果后者比它复制的那个引用更早被删除,G[k+1]将减如果笫k代没有引用被删除,
G[k+1]就会小于()。
笫五章分布式系统中的同步机制
1?假设协调者閒溃.系统肯定会朋溃吗?如果不是.在什么条件下不会崩溃?有没有方法避免这一问题,使系统不会受“协凋若崩溃” 的影响呢?
假设使川这样的乳法:每一个请求都被立即应答.或者允许或者拒绝。如果在临界区没有进程和排队等待的进程.那么胡溃就不会是毁灭性的。下个请求允许的进程将不能得到任何回如并能引起新的协调者的选取。如果系统让协调者在发送回复Z前将每?个引入的请求存盘.那么系统就会更加健壮。这样.在发生为熾时.新的协调进程就可以通过读取存盘上的文件來重建活动临界区和排队的列表。
Previous coordinator 、has
crashed f 15.6.0) 了1 ) o r
【55
No response 6 ?
|5] ( 5 )
Rl
(\!
Election message
▲
|23|
2.在图5-12中(上图),有两个ELECTION (选举〉消息同时循环,但对它们都没有任何不利的莎响,如果消灭其中的一个会更好。设计一个算法实现这个想法,而且不影响基本的选举算法的运行。
当一个进程接收到一个ELECTION消息,它会检査淮启动了该消息。如果是它自己启动的(比如?它的进程号在表头人如文中所述, 它把这条消息转变成一条协调者消息。如果它不启动任何选举消息,它添加它的进程号并沿着环发送出去,然而,如果它先前没有发送它自己的选举消息JLL刚发现了一个竞争者,这里它将始发者的进程号和自己的进程号进行比校。如果其它的进程有更小的进程号,它将丢弃这条消息而不是传递它。如果竞争者的进程号是更大的,消息会以正常的方式发送。这样,如果启动了多条选举消息,那么只有首次进入最大的才会保留下來,其余的会被沿着路由断开。
3?假设两个进程同时检测到协调者的崩溃.都用“欺侮算法”发起选举,将会发生什么?
两个进程中进程号较大的那个会获得两条选举消息.但是它会忽略第二条,选举会正常进行。
4.在图5-25 (d)中给出了三种调度方法,两种合法.一种非法。对于同一个的事务处理?给出报终x所有的可能值的完全列表,并指出哪一个是合法的,哪一个是非法的?
BEGIN TRANSACTION BEGIN TRANSACTION BEGIN IRANSACTION
x = 0; ??■?x = 0; x = 0;
x = x + 1; x = x + 2; x = x + 3;
ENDTRANSACTION END_TR ANS ACTION END_TR ANS ACTION
(a) (b) (c)
Schedule 1 Schedule 2 x = 0; x = x+l; x = 0; x = x + 2; x = 0; x = x + 3 x = 0; x = 0;
x = x+l; x = x + 2; x = 0; x = x + 3;
x = 0; x = 0; x = x+l; x = 0; x = x + 2; x = x + 3;
(d )
Legal
Legal
Illegal
合法的值是1,2和3°不合法的值是4, 5和6。4是通过运行中间的事务然后错误地和另外两个交错执行而得到的值。5实在训度3 中得到的。6是通过首先三次设置x的值为零,然后递增三次得到的。
5 .分布式系统中可能有毛个互相独立的临界区。假设进秸! 0想进入临界区A,而进程1想进入临界区B, Rlcart和Agrawala算法会导致死锁吗?请解释匪因。
这取决于锁定规则。如果进程严格按照队列进入临界区?那么一个在临界区内的进程不会尝试去进入另一个临界区,因此它在占用某- 个其他进程想要的资源时,是不可能阻塞的(如临界断面)。这样的系统是不会发生死锁的。另一方面,如果进程0进入了临界区A后又尝试进入临界区B,如果另外的进程以倒序去请求这些临界区的话,是会发生死锁的。每个临界区都是独立地进行处理,所以Rican和Agrawala算法木身不保证死锁。
6?一个其事务时何戳为50的进程需要一个爭务时间戦为100的进程的诳源,如下各储况结果会怎样?
1) Wait-die
2) Wound-Wait
<1)50标记为等待(2) 50标记为抢先
7 ?在分布式事务中使用时间戳排序,假设写操作write (T,.x)被传递给数据管理器,因为仅有的可能发生冲突的操作write (TV x)的时何戟较早。为什么让调度管理濡推迟传递write (T. x)直到「完成呢?
这样,如果T2意外中止,调度程序可以避免级联失败。
8?设计一个完幣的算法,判定一个试图锁住一个文件的操作是否成功,要求同时考虜读锁和写锁,以及文件被解锁.读锁定或写锁定的可能性。
算法如下。如果文件没有被懺定,对它的请求总是成功。如果文件被读锁定而发生另一个读请求,也成功。任何真他的情况都导致请求失败(如,对已锁定文件的写请求将失败,对已写锁定文件的读请求也失败)。
笫六章一致性和复制
1、一第处理机有一条总线。能不能实现^格-致性内存?
能实现,总线使得请求串行化,他们以绝对的时间序列出现在主存。
2. 对于图6?5
P1: 艸)&
(b)
它违背了数据一致性凍则。
3.在图6-7 000000是不是PRAM 一致性内存的合法输出?给出你的理由?
是的?假设(a)首先运行,它打卬0(),现在(b)运行.如果进入(a)的存储还没有到达.它也会打印()0,现在(c)运行,如果(a) 和(b)的存储都没有到达.它同样会打卬00。
5?如果契将-个移动川户的个人邮箱作为广域范围的分布式数据库的-?部分来实现,哪种类型的以客户为中心的一致性最为合适?所有的一致性都可以。总结来讲就是.邮箱的拥有者总是查看同一个邮箱,不管他是读們件还是更新脇箱。半实上.这种邮箱最简唯的实现可以是一个基于主机的本地写协议.这个主机总是可以定位至使用者的移动电诙。
6. 请介绍-?利川于显示刚被更新的Web页而的写后读一致性的简单实现方法。
嵌简单的实现是令浏览器总是检査它是否显示一?个页血的巌新版本。这就耍求发送一个请求到Web服务器。这种简单的方案已经在很第系统中实现了。
7. 在图6?27 (25)中,假设页面拥有者以广播方式定位。在什么情况下,页面因为读操作而被发送?
Client
Q
R4
Data store
(1) A处理器读页面1并且A没有页面I的拷贝,此时页面1是在拥有者B处理机上且状态为R.则A必须向B诸求页面1,将页标志设为R:
(2) A处理器读页而1并且A没有页而1的拷贝,此时页而1是在拥有者B处理机上且状态为W,则A必须向B请求降级,请求页而1 的拷贝,将页而1设为R。
8、假设两个变罐A和B.恰好位于基于分页的DSM系统的同一页上。然而,他们都不是共享变竝。是否会发生错谋共亨?
不会。在基于分页的DSM系统中,一?次只允许一个处理机修改某页面,并且此时其他页而均不可读写该页而;其次,A, B不是共享变肚如果它们是普通变竝则只能被创建它们的进程读写,不町共享;如果它们足同步变量则只能通过系统提供的访问过程來访问。所以它们都不会发生错谋共享。
9. 当使用会话语义的时候?经常出现:修改一个文件立即被修改它的进程可见.但却不为其它机器上的进程所知晓。对这些文件的修改是否能被同一台机器上的其它进程也立即可见呢?这是一个值得讨论的问题。对毎…种选择给出你的见解与理由。
会话语义:在文件关闭Z前,对文件的修改对其他进程是不可见的。使用对话语义时当其子进程在不同的机器上运行时,这种共享就
Backup server
R1
W1 Wrte request
W2 Forward request to server for x
W3. AcknoiMedge write completed
W4 Acknowledge write completed
R1
R2
R3
R4
Read request
Fotward request to server for x
Return response
Return response
Client
Single server
for item x
无法实现。
并行系统中文件的共享,好像是当一个系统或进程修改文件时,首先修改口己缓冲区中的数据…写入磁盘时,文件系统会将该文件标志的脏数据.系统中保存有引用了每个文件的进程的列表,系统向进程发送消息便其缓冲区中的对应该文件的数据无效。
10. 在"cache -致性”一节中,建议的方法是与联系服务器连接,我们讨论了“客户wclw管理者如何知道-Jt cache中的文件仍然有效。建议的方法是与服务器联系比较客户机和服务器的时何即可。但是如果客户机和服务器的时钟不一致.这种方法就失效吗?
不会失效。在客户机从服务器读文件到cache时,记下服务器对该文件修改时间。从而比较的是服务器与客户机的相对时间,与客户机和服务器的时钟一致性无关。
1 1 ?如下所示有三个并发执行的进程P2和P3「数据项是三个談形变虽)G y和z.它们存储在顺序一致的共亨数据存储中。假设每个变虽的初始值都是0?賦值语句与写操作对应,而打卬语句与该时刻它所带两个参数的读操作对应。例如:对于P2有xd可以记作W. (x)l, print(m)记作R(y)0,R&)0?三个进程以如下顺序运行:首先运行Pl?然后运行P2,最后运行P3,如果将Pl, P2和P3的输出按照输出顺序连接起來?那么所得到的6位字符弗说明了每种语句的交叉特点。请回答以下问题.
(1)下列哪些字符串是符合顺序一致的,并且写出它的执行过程E和一个合法序列的历史H:
a. 000000
b. 101011
c. 001001
d.111111
<2)上而的哪些字符串是符合FIFO 一致性,并且写出只能在FIFO 一致性存储下执行的字符串每个进程的执行顺序;
<3)试比较弱一?致也肆放…致性,入口一致性,写出它们的相同点与不同点。
解:(1) b和d是符合顺序一致的
对于b.执行过程
El: W:(x)l, Ri(y)l,Ri(z)0
E2: W「(y)l, &(x)l,R?)0
E3: W;(z)l? R3(x)0,R3(y)0
WAy)l, &(x)l,R2(z)0,Ri(y)l,R】(z)0, %(力1, RMx)0.E(y)0
对于d?执行过程
El: W,(x)l, Ri(y)l,Ri(z)l
E2: W.(y)h R,(X)1,R2(Z)1
E3: W;(z)l? Ra(x)l,R3(y)l
扫W】(x)l. WAy)l, W3(z)l, R:(x)lJ<(z)L Ri(y) 1,Ri(z)l, R>(x)l,R>(y)l
(2) abc,d都符合FIFO -致性.只有a. c只能在FIFO -致性存储下执行
对于a
对于c
(3) 这三种一致性都是引入显示的同步变量,都需要附加程序设计结构。弱一致性只有在执行-?次同步后,共享数据才能被认为是-?致的,但是无法区分共享变量的使丿IJ。释放-?致性捉供了两种类型的同步变氐一种是获取操作是川于通知数据存储进程进入临界区的操作. 而释放操作是表明进程刚刚离升临界区的操作。与释放-致性不同的是,入口一致性要求每个普通变量的共竽数据项都要求与某种同步变量关联。
1 2.请描述一个能用于实现网络新闻组(BBS)的一致性模型和一个实现软件更新的一致性模型。
答:读写一致性可以保证,网络新闻组的川户只有在已经看到原文章Z后才能看到他的冋应文章。假设一个川户先读了一篇文章A。然后他回应了一篇文章咲通过要求保证读后写一致性,B被写入新闻组的任何拷贝Z前,A也必须已经被塢入那个拷肌
单调写一致性可以保证软件碎的更新间题。在很多情况厂更新软件库是通过替换一个或多个旳数來实现F—个版本的。单调写一致性保
证,如果在库的一?个拷贝上执行数据更新?那么前面(在其他拷贝上)执行的所有数据更新都将首光执行。此后,所得到的库将确实是巌新版本的库,并将包括所有以前冬个版本的更新。
1 3 ?假设有A到L12个服务做如卜?图,虚线代表写团体实线代表读团体血图1与图2的选择方式是否正确,请说明理山。
图1 图2
答:图1,不正确,由图可知N F2, NEO, N/NE2二n,根据需耍满足公式N,+M>n,这种情况可能产生读写冲突,所以选择不正确。
图2,不正确,由图可知N?=6, Nt=n/2.根据需要满足公式N?>n/2,这种情况可能有另一个个数为6的写团体,导致写写冲突,所以选择不正确。
1 4.简述拉式更新和推式更新的区别?
答:推式:这种方法中,不需耍其他副本请求更新.这些更新就会彼传播到那些副木里。永久副本和服务器启动的副本之间通常使用基于推式的方法,因为这些副本需耍保持较岛程度的一致性。毎个副本读与更新之比率相对较高时,基于推式的协议是高效的,因为每一个被推的更新可以被一个或务个读程序有用。基于推式的协议使「致的数据在被请求时立即冇效。采川名播方式传播更新倍息。
拉式:一台服务器或客户诘求31:他服务器向它发送该服务器此时持有的任何更新。此协议通常彼川于客户高速缓存。在读写更新之比率相对较低时,基于拉式的方法是高效的。与推式相比.拉式需要更新时间,如果高速缓存没命中时,响应时间会増大。采用单播方式传播更新信息。
第七章容错
1 ?三模兀余能处理Byzantine failures问题吗?
可以,对于Byzantine型的处理器错误,至少需要2k+l个处理器才能达到k容错。采川三模冗余的容错方法.当一个处理器出错的时帳,只耍另外幣个处理器产生的是正确结果,通过表决器,最后输出的仍然是正饰结果。当然这是在理想状况下的考虑,爭实上在实际中我们其实并不能保证k+1处理器产生的结果是正确的。
2. 对于下面的毎个应用,你认为最好使用“至少一次语义”还是“至*一次语义” ?