1、1一、名词解释1. 中间件:指一个软件层,放在应用程序和网络操作系统之间,它提供了一个编程抽象以及对底层网络、硬件、操作系统和编程语言异构性的屏蔽。2. RPC:RPC 是 remote procedure call(远程过程调用)的简称。RPC 思想是使远程的过程调用就像在本地的过程一样,调用者不应该意识到此调用的过程是在其他机器上实行的。3. 名称解析:在名称空间中,根据节点的路径名,就可以寻找到这个节点所存储的任何信息,这个查找的过程就称为名称解析。 4. 严格一致性模型:所有共享访问事件都有绝对时间顺序。5. 容错(fault tolerance):避免系统失效。在故障发生时系统仍能正
2、常运行(提供服务) 。二、综合题1.什么是分布式系统?分布式系统发展的前提条件有哪些?试列举 2 个分布式系统的例子?比较分布式操作系统、网络操作系统、多处理机分时操作系统的特点和应用范围。答:分布式系统是由一组具有自治功能的独立计算机构成的系统,在用户看来好像是一个计算机系统一样。物理上分布,逻辑上是一个整体。 硬件方面:每台计算机都是独立、自主的计算机 软件方面:用户感觉在独占系统分布式系统发展的前提条件有: 计算机性能价格比在迅速提高 网络技术的发展与普及:有线网络、移动计算、无处不在的计算 计算量增大 任务本身需要分布式处理例: 工作流处理系统:订单自动处理、办公自动化、电网调度等系统
3、 银行“一卡通”系统、电信“神州行”系统、飞机订票系统等项目 网络操作系统 分布式操作系统 多处理机分时操作系统表现是否象一台单机 否 是 是各台机器是否运行同样的操作系统 否 是 是操作系统有多少拷贝 多 多 1通信如何完成 共享文件 消息 共享存储器是否要求一致的网络协议 是 是 否是否具有唯一的运行队列 否 否 是文件共享是否具有统一的语义 通常没有 有 有22.什么是 RPC?试简述 RPC 的执行步骤。答:RPC 是 remote procedure call(远程过程调用)的简称。RPC 思想是使远程的过程调用就像在本地的过程一样,调用者不应该意识到此调用的过程是在其他机器上实行的
4、。RPC 的执行步骤:(1) 客户过程以普通方式调用相应的客户存根;(2) 客户存根建立消息,打包并激活内核陷阱;(3) 内核将消息发送到远程内核;(4) 远程内核将消息发送到服务器存根;(5) 服务器存根将消息解包,取出其中参数后调用服务器过程;(6) 服务器完成工作或将结果返回服务器存根;(7) 服务器存根将它打包并激活内核陷阱;(8) 远程内核将消息发送至客户内核;(9) 客户内核将消息交给客户存根;(10)客户存根将消息解包,从中取出结果返回给客户;3.常见的选举算法有哪几种?简述他们的算法实现过程。答:常见的选举算法有:欺负算法、环算法。欺负算法:当一个进程 P 发现协调者不响应请求
5、时,它就发起选举;进程 P 向所有号码都比它大的进程发送选举消息;若无人响应,P 获胜成为协调者;若有大的进程响应,响应者接管选举,P 的工作完成。环算法:假 设 所 有 进 程 是 按 物 理 或 逻 辑 排 序 , 形 成 没 有 令 牌 的 环 , 每 一 个 进 程 都 知 道 谁 是 它 的 后 继 者 ;当任何一个进程发现协调者不再起作用时,它就构造一个包含它自身进程号的选举消息发送给它的后继者(直到找到一个进程)每次发送者都将自己的进程号加入到消息中,当消息回到始发者的手中,始发者接收到包括自己进程号的消息;转成协调者消息。该消息将再一次绕环运行,向所有的进程通知谁是协调者(在成
6、员表中进程号码最大的那个)和新的环成员。4.简述三种分布式互斥算法(集中式算法、分布式算法、令牌环算法)的算法思想。答:集中式算法选一个进程为协调者(比如在最大网络地址的进程) ;无论什么时候进程要进入临界区,它将向协调者发送请求信息,说明它想进入那个临界区并希望获得允许;如果当前该临界区内没有其它任何进程,协调者就发送允许进入信息,当应答到达时,请求者就可以进入临界区;分布式算法:当某进程想进入临界区时,它要建立一个消息,包括:a 它要进入的临界区的名字;b 它要进入的处理机号;c 当前时间;将消息发送给所有其它进程;发送的消息假设是可靠的,即每条消息都应该被确认;当一个进程接收另一个进程请
7、求消息时,它取决于接收方的状态以及临界区的命名。有三种情况要加以区别:3(1) 接收者不在临界区中,也不想进入临界区,它就向发送者发送 OK 消息(2) 接收者已在临界区中,它就不必回答,而是负责对请求队列排队(3) 接收者要进入临界区,消息时间戳对比,取小的那个a 如果来的消息的时间戳小,接收者发送 OK 消息b 如果接收者本身时间戳更小,接收者负责排列请求队列而不发送任何消息令牌环算法:构造一个逻辑环,设置一个令牌,令牌在环上依次传递。获 得 令 牌 后 才 可 以 决 定 是 否 进 入 临 界 区 , 如 果 离 开 了 临 界 区 或 不 打 算 进 入 临 界 区 , 则 将 令
8、牌 下 传 。不允许使用同一令牌进入第二个临界区6.试分别解释严格一致性、顺序一致性、因果一致性、PRAM 一致性等几种以数据为中心的一致性模型的含义。下图中的事件序列对上述哪几种一致性模型是有效的?解答:严格一致性模型:所有共享访问事件都有绝对时间顺序;顺序一致性模型:所有进程都以相同的顺序检测到所有的共享访问事件;因果一致性模型:所有进程都以相同的顺序检测到所有因果联系的事件;PRAM 一致性模型:所有的进程按照预定的顺序检测到来自一个处理器的写操作,来自其他处理器的写操作不必以相同的顺序出现;图中的事件序列对因果一致性、PRAM 一致性是有效的。7.一致性协议中,复制的写协议有哪几种?请
9、简单解释。答:复制的写协议:写操作可以在多个副本上执行。包括两种类型:主动复制和基于法定数量的协议。主动复制:每个副本有一个关联的进程,该进程执行更新操作。操作被发送到每个副本。基于法定数量的协议,其基本思想是:在读或写一个复制的数据项之前要求申请并获得多个服务器的允许。8.在 RPC 中,如果客户机在发送请求后在服务器应答消息到来之前崩溃了,将会发生什么问题?如何解决?解答:发生现象:客户机在发送请求后在服务器应答消息到来之前崩溃,其已经激活了服务器的相应计算,而客户没有等待它的结果,将遗留“计算孤儿” 。清除“孤儿”方法:a) 根绝(extermination)法:客户存根发送 RPC 前
10、在日志文件中记录将要执行的 RPC,若客户重启则依据日志作准确清除远程计算。b) 再生(reincarnation) 法:划分时间为序号纪元(时间戳) , 客户重起则广播新纪元开始,所有远程计算被终止。c) 温和再生(gentle reincarnation)法:改进“再生”法,由服务器检查远程计算有无调用者,若无则远程计算被终止。P1 W(X)1 W(X)3P2 R(X)1 W(X)2P3P4R(X)1 R(X)3 R(X)2 R(X)1 R(X)2 R(X)3 4d) 过期(expinration) 法:每个 rpc 执行前给定时间段 T,rpc 到期未完成的必须再申请新的 T 。服务器将
11、清除没有再申请新的 T 的 rpc。9.分布式系统中,文件共享的语义有哪几种?阐述各自的工作原理。答:分布式系统中,文件共享的语义有 Unix 语义、对话语义、不可更改文件语义、事务处理语义等几种。Unix 语义:当 READ 操作紧跟在 WRITE 操作后执行时,READ 操作返回刚写入的值。当 READ 操作跟在两个紧连的WRITE 操作后时,读出的值就是后一个写入的值。强调绝对时间顺序对话语义:对一个打开文件的修改仅对修改该文件的进程(机器)是可见的;仅当文件关闭时,其修改才对其他进程(或机器)可见。不可更改文件语义:只有创建和读文件操作。事务处理语义:存取文件时,进程执行开始事务处理,
12、以指示跟在其后的操作是不可分的;通过系统调用来读写文件。当此工作完成后,执行结束事务处理原语。10.一个文件在 10 个服务器上复制,试列举基于法定数量的协议所有允许的读团体与写团体。答:所有允许的(读团体, 写团体 ) 有:(1,10), (2, 9), (3, 8), (4, 7), (5, 6)11.某多计算机系统中的 256 个 CPU 组成了一个 16X16 的网格方阵。在最坏的情况下,消息的延迟时间有多长(以跳(hop)的形式给出,跳是结点之间的逻辑距离)?答:假设路由是可选的,最长的可选路由是从网格中的一个角落到达与其相反的角落,这段路由的长度为 30 跳。12.举出一个例子,在
13、这个例子中,为了真正访问实体 E,需要把他的地址进一步解析成另一个地址。答:在因特网中,IP 地址通常就是所谓主机地址,然而,要访问一台主机,就要将主机 IP 地址解析为以太网地址。14.文件更新有哪几种主要算法?简述其算法思想?答:文件更新有主拷贝复制和表决(Voting)算法两种主要算法。主拷贝复制算法: 指定一个服务器为主服务器,其它服务器为从服务器; 当要更新一个复制文件,将该更新文件送至主服务器; 在主服务器处完成修改,然后向各从服务器发命令,完成修改; 容错方法:将日志写在稳定存储器。表决(Voting)算法:基本思想:在读或写一个复制文件之前要求申请并获得多个服务器的允许,并将新
14、的版本号与文件联系起来,用以识别文件版本;读法定数(read quorum)Nr:读文件操作前必须达到的服务器数;写法定数(write quorum)Nw:更新文件前必须达到的服务器数;Nr 与 Nw 遵循的规则:NwN/2(服务器总数的一半) ,NrNwN。15.说明分布式系统相对于集中式系统的优点和缺点。 从长远的角度看,推动分布式系统发展的主要动力是什么?答:相对于集中式系统,分布式系统的优点:1)从经济上,微处理机提供了比大型主机更好的性能价格比;2)从速度上,分布式系统总的计算能力比单个大型主机更强;3)从分布上,具有固定的分布性,一些应用涉及到空间上分散的机器;4)从可靠性上,具有
15、极强的可靠性,如果一个极强崩溃,整个系统还可以继续运行;5)从前景上,分布式操作系统的计算能力可以逐渐有所增加。5分布式系统的缺点:1)软件问题,目前分布式操作系统开发的软件太少;2)通信网络问题,一旦一个系统依赖网络,那么网络的信息丢失或饱和将会抵消我们通过建立分布式系统所获得的大部分优势;3)安全问题,数据的易于共享也容易造成对保密数据的访问。推动分布式系统发展的主要动力:尽管分布式系统存在一些潜在的不足,但是从长远的角度看,推动分布式系统发展的主要动力是大量个人计算机的存在和人们共同工作于信息共享的需要,这种信息共享必须是以一种方便的形式进行。而不受地理或人员,数据以及机器的物理分布的影
16、响16.多处理机系统和多计算机系统有什么不同?答:共享存储器的计算机系统叫多处理机系统,不共享存储器的计算机系统为多计算机系统。它们之间的本质区别是在多处理机系统中,所有 CPU 共享统一的虚拟地址空间,在多计算机系统中,每个计算机有它自己的存储器。多处理机系统分为基于总线的和基于交换的。基于总线的多处理机系统包含多个连接到一条公共总线的 CPU 以及一个存储器模块。基于交换的多处理机系统是把存储器划分为若干个模块,通过纵横式交换器将这些存储器模块连接到 CPU 上。多计算机系统分为基于总线的和基于交换的系统。在基于总线的多计算机系统中,每个 CPU 都与他自身的存储器直接相连,处理器通过快速
17、以太网这样的共享多重访问网络彼此相连。在基于交换的多计算机系统中,处理器之间消息通过互联网进行路由,而不是想基于总线的系统中那样通过广播来发送。17.在分布式操作系统中,为什么采用微内核技术,通常微内核提供哪些服务?答:采用微内核技术的原因:1)高度模块化,每一个服务都有一个定义好的接口,每个用户都可以访问任何服务,服务与位置独立;2)高度灵活性,具有添加、删除和修改服务的功能;3)用户定制,用户可以自定义服务。微内核提供的服务有:1)进程间通信机制;2)某些内存管理功能;3)少量的底层进程管理和调度;4)低层输入/输出服务18.解释透明性的含义,并举例说明不同类型的透明性。答:对于分布式系统
18、而言,透明性是指它呈现给用户或应用程序时,就好像是一个单独是计算机系统。具体说来,就是隐藏了多个计算机的处理过程,资源的物理分布。具体类型:透明性 描述存取透明性 隐藏了数据表示和获取资源的具体实现位置透明性 用户不必知道资源位于何处迁移透明性 资源可以不改名随意移动重定位透明性 用户不必知道资源是位置是否改变复制透明性 用户不必知道有多少拷贝存在并发透明性 多个用户可以自动的共享资源容错透明性 用户不必知道系统出现错误19.应用哪些技术可以使得一个分布式系统具有可伸缩性?答:实现分布式可伸缩性,基本的三种技术为:1、减少通信延迟,即使用异步通信方式,使得发送方发送请求后不必阻塞以等待答复,而
19、是处理其他本地任务。2、分层,即将一个组件分解为几个小层。一个好的例子是 DNS 域名系统,它将域名分为三层,均衡了系统负载。3、 复制冗余,它能使得资源更容易就近获取,并且它能使资源分布于整个系统,均衡了负载。20.举例说明三层客户/服务器体系结构。6答:此三层分为:用户接口层(接收用户请求) ,处理层(核心逻辑处理) ,数据层(返回用户所需数据) 。以一个 Internet 搜索引擎为例,用户使用键盘,鼠标输入想要检索的信息,经过用户接口层传递给处理层,生成查询语句,然后到达数据层(即数据库)查询数据,再将查询结果返回给处理层,让它对结果进行排序,生成 HTML 页面,最后返回给用户接口层
20、(即浏览器)显示给用户。21.给出一个多线程客户端的例子,并给出一种构造多线程服务器的方法。答:多线程客户端例子,以网页浏览器为例:浏览器在从服务器获取 HTML 文件时,同时也在显示它。因为一个 HTML 文件可能包含文本,图像,音频,视频等文件,故当一个线程获得其中一个文件并显示它时,同时还有其它线程正从服务器读取其它文件。即一个浏览器拥有多个线程与服务器进行交互。构建多线程服务器:使用有限状态机模型,它使用非阻塞系统调用方法,可实现并行处理多个请求。对每一个接收或发送的消息都将其处理状态存储到一个表中,由多线程对其进行处理。22.什么是有状态服务器和无状态服务器,给出相应的例子,并说明有
21、状态服务器存在的问题。答:无状态服务器,在请求之间,服务器不保存具体客户的信息,以及与客户端交互活动的有关信息。它要求每个请求必须是独立的,必须包含全文件名和文件中的偏移量,因此消息长度较长。有状态服务器,在请求之间,服务器保存客户信息以及与客户交互活动的有关信息,23.说明在移动 IP 系统中,如何定位一个实体。a) 名称与地址的直接映射b) 使用标识符的两极映射24.客户-服务器模式的主要思想及优点。答:其主要思想是构造一种操作系统,它由一组协同进程组成,这组进程称为服务进程,为客户机提供服务的进程称为客户。客户和服务器都运行在相同的微内核中,都以进程方式运行。一台机器可以运行多个客户、多
22、个服务器或者两者的结合,客户-服务器模式常常以简单的请求/应答协议为基础,客户向服务器发送一个请求,请求一些服务,服务器完成后返回所要的数据或者给出一个错误代码,指出工作未完成。优点:1)简单,客户发出一个请求得到一个应答,在使用之前无需建立连接也不需要释放连接;2)有效性,协议栈比较短因而更有效。25.客户为了发送消息给服务器,它必须知道服务器的地址。试给出服务器进程编址的几种方法,并说明如何定位进程。答:方法一。机器号加进程号,内核使用机器号将消息正确地发送到适当的机器上,用进程号决定将消息发送给哪一个进程。方法二。进程选择随机地址,通过广播方式定位进程,进程在大范围的地址空间中随机指定自
23、己的标识号。在支持广播式的 LAN 中,发送者广播一个特殊的定位包,其中包含目的进程地址,所有的内核查看地址是不是他们的,如果是则返回消息给出网络地址,然后发送内核缓存地址。方法三。客户机运行时,使用 ASCII 码访问服务。客户机运行时,向名字服务器发送请求信息,名字服务器将 ASCII 服务器名映射成服务器地址,客户机收到给地址后,可以访问服务器。726.对于接收消息 Receive 原语,为什么需要缓存, 缓存的作用是什么?答:如果不适用缓存,服务器接收来的消息会被丢弃或者存在诸如服务器需要存储和管理早到来的消息这样的问题。缓存的作用就是用来统一管理消息的:它定义了一种叫邮箱的数据结构,
24、接收客户端请求的进程通知内核创建邮箱存储消息,并且指定了访问地址。当 Receive 原语调用是,系统内核就会提取消息并知道如何处理它。27.说明在 C/S 模式下解决消息可靠传输的三种方法? 答:1、重新定义非可靠的 send 语义。系统无法保证消息发送成功,完成可靠地通信依赖于用户。2、要求接收机器的内核给发送机器的内核发送一个确认消息。只有收到这个确认消息后发送内核释放用户进程。确认消息从一个内核传送到另一个内核,无论是客户还是服务器都看不到确认消息。3、客户在发送消息后阻塞,服务器内核不发送确认消息而是将应答作为确认消息。因此客户进程一直阻塞到应答消息到来为止,如果时间太长,发送内核会
25、重新发送请求以防止消息丢失。28.在 RPC 调用时,如果服务器或客户机崩溃了,各有哪些解决方法。答:如果是服务器崩溃了,用户无法区分服务器是在执行前还是执行后崩溃,解决方案如下:1)至少一次语义,指等待服务器重新启动,然后重发请求。这种方法要求不断重试直至客户收到应答消息。它保证 RPC 至少执行一次。2)之多一次语义,指立即放弃并报告失效。它确保 RPC 至多执行一次,但也可能根本没有执行;3)不作保证;4)精确一次语义;如果是客户机崩溃了,存在孤儿问题(客户已发送请求,在应答到来之前崩溃了,此时已经激活服务器中的过程并获得结果,但是没有客户在等待结果)解决方案如下:1)根除,在客户存根发
26、送 RPC 消息前先做日志(用来恢复崩溃) ,系统重新启动后,检查日志,发现孤儿存在并将其杀死;2)再生,把时间分成有序的纪元,当客户端重启时,向所有机器广播一个消息通知一个新纪元的到来,并结束所有的远程计算;3)温和再生,服务器接收到新纪元广播时,检查自己是否有远程计算,只有那些找不到所有者的远程计算终止。4)过期,每个 RPC 都分配一个标准时间 T 来完成任务,如果超时没有完成则显示分配一个数额。29.一个影响 RPC 执行时间的问题是消息的拷贝问题,试说明在那些环节需要拷贝,并说明减少拷贝次数的方法。答:需要消息拷贝的环节:在发送端,消息从客户存根拷贝到客户内核缓冲区,再从客户内核缓冲
27、区拷到客户接口芯片缓冲区(网卡) ,然后消息被拷贝到接收端的服务器接口芯片缓冲区,之后拷贝到服务器内核缓冲区,最后到达服务器存根(共 5 次)拷贝。此外,有时还需要拷贝参数数组。减少拷贝次数的方法:分散-集中方法(汇集发) ,具有分散- 集中能力的网络芯片可以减少拷贝次数,他通过拼接 2 个或者多个内存缓冲区来组装报文。在发送端,由客户内核缓冲区生成报文消息头。由客户存根生成报文消息体,当发送时,由网络芯片组装报文。同样地,接收端将接收来的报文分解成消息体和消息头,并放入相应的缓冲区。30.在组通信中,给出组编址的的三种方式。答:1、每组分配地址,有三种方式:单播,多播,广播,发送进程将消息发
28、送给组地址,消息将会发布给所有成员 2、要求发送端提供一份目的地址的显示列表;3、判定编址,消息将被发送给所有成员,每条消息包含了判定条件,如果判定条件评估为 TRUE,则消息被接受,否则消息丢弃。31.用组通信方式时,举例说明消息顺序的重要性,并说明解决方法说明。答:要使组通信易于理解和使用,有两种性质是不可缺少的,首先是原子广播原语,它确保了一条消息要么被所有组内成员收到,要么没有一个成员能收到。其次是消息的顺序。例如:有四台机器每台机器有一个进程,进程 1、2、3、4 属于同一个进程组,进程 0 与进程 4 同时想给该组发送一条消息,当两个进程竞相访问LAN 时,在网络中消息传送的顺序是
29、无法确定的,可能是 0-1, 4-0,4-1,4-3,0-3,0-4。这样进程 1 先收到0 再收到 4,进程 3 先收到进程 4 在收到 0,则 1 与 3 之间可能会出现不一致。解决方法:1)全局时间顺序,保证立即发送所有消息并让他们保持发送顺序,该方法能将消息精确的按照发送顺序传递到目的地。2)一致时间顺序,若有两条消息 A 和 B,以很少的时间间隔发送,系统先取其中一个8DCBA01020304050607080901000612182430364248546008162432404856647280进程 0 进程 1 进程 2作为第一个发送给所有组内成员,然后再取下一个发送给组内成员
30、,这种方法保证组内成员按照统一的顺序收到了消息,但是这个顺序可能并不是发送消息的顺序。32.实现分布式系统同步的复杂性表现在哪几个方面?说明先发生关系,并说明在 LAMPORT 算法中怎样给事件分配时间。答:分布式算法有如下性质:1)相关信息分散在多台机器上;2)进程决策仅依赖于本地信息;3)系统中单点故障应避免;4)没有公用时钟和其他精确的全局时间资源存在。前三点说明在一处收集所有信息并对他们进程处理是不可接受的,左后一点说明在分布式系统获得时间上的一致并不是容易的。LAMPORT 算法的解决方案是直接使用先发生关系,每条消息都携带发送者的时钟以指出其发送的时间,当消息到达时,接受者的时钟比
31、消息发送者时钟小,就立即将自己的时钟调到比发送者的时间大 1 或更多的值,我们给出一种测量时间的方法,使得对每一事件 a,在所有进程中都认可给它一个时间值 C(a),在给事件分配时间时要遵循一下规则:1)在同一进程中 a 发生在 b 之前则 C(a)N,只有在适当数目的服务器同意参与时,文件才能进行读写操作。54.说明基于总线的多处理机系统中的 write-through 和 write once 协议。答:通写缓存一致性协议是一种特别简单的,通用的协议。当 CPU 从存储器中首次读取某个字时,该字通过总线取出并存储在提出请求的 CPU 缓存中,当再次需要这个字时,CPU 不再提出访问存储器的
32、请求,而是直接从缓存中获取,这样减少了总线流量,通写缓存一致性协议概括如下:事件 缓存响应本地 CPU 操作时执行 缓存响应远程 CPU 操作时执行的动作读失败 Read miss 从存储器中取得数据并存储到缓存中 无动作读命中 Read hit 从本地缓存中取得数据 无动作写失败 Write miss更新存储器中的数据并存储到缓存中 无动作写命中 Write hit 更新存储器和缓存 使缓存无效表中的第一列列出了可能发生的四种基本事件,第二列说明缓存如何响应 CPU 的操作,第三列说明缓存发现(通过监听)其他 CPU 的读写操作如何反应。例如,当监听者发现其他 CPU 写入的字在其缓存中(从
33、监听者15角度看是命中)时,监听者必须采取措施,即从本缓存中删除这个字。通写协议易于理解和使用。缺点是所有的读写操作必须通过纵向,因此允许挂在单一总线上的 CPU 数量仍然很少,不能满足大型多处理机的需求。write-once 协议:该协议管理缓存块,每个块处于一下三种状态之一:1)无效,本缓存块没有有效数据;2)干净,存储器被更新,该块可能在别的缓存中;3)脏,存储器错误,该数据块不在其他缓存中。基本思想是允许正被多个 CPU 读取的字出现在它们所有的缓存中,而仅被一个 CPU 经常写的字只保存在他的缓存中,为减少总线流量,不必每次都写回存储器。55.说明顺序一致性应满足的要求;在如下并行执
34、行的进程 P1 和 P2,列出顺序一致性所允许的 6 种语句交叉执行情况。a=1; b=1;if (b= =0) kill (P2) if(a= =0) kill (P1)(a) P1 (b) P2答:顺序一致性模型由下述条件定义:1)如果所有进程以一定顺序执行操作,每一进程的操作都以程序规定的顺序出现,则任何操作的结果都是一样的;2)要求分布式系统中的所有成员和它们的进程共享一个通用视图,此视图记录了对于共享能存访问操作的顺序。顺序一致性所允许的 6 种语句交叉执行情况:a = 1;b = 1;if(b = 0) kill(P2)if(a = 0) kill(P1)b = 1;a = 1;i
35、f(b = 0) kill(P2)if(a = 0) kill(P1)a = 1;b = 1;if(a = 0) kill(P1)if(b = 0) kill(P2)b = 1;a = 1;if(a = 0) kill(P1)if(b = 0) kill(P2)a = 1;if(b = 0) kill(P2)b = 1;if(a = 0) kill(P1)b = 1;if(a = 0) kill(P1)a = 1;if(b = 0) kill(P2)56.举例说明什么是错误共享及其产生的原因。假设两个变量 a 和 b,恰好位于基于分页的 DSM 系统的同一页上。然而,它们都不是共享变量。是否会
36、发生错误共享?说明理由。答:错误共享是指无关的变量出现在同一页上,当一进程使用它们之一时,进程也得到了其他变量。有效页越大,发生错误共享的可能性越大。假设有一页包含了两个无关的共享变量 A 和 B,如下图所示,进程 1 经常对 A 执行读写操作,进程 2 经常使用 B,这时包含两个变量的页将经常在两个进程之间传送。“错误共享”问题是由于有效页太大产生的,有效页越大,发生错误共享的可能性越大,共享页越小,发生错误共享的可能性越小。图中所示的情况会发生错误共享,因为两个变量 A 和 B 恰好位于基于分页的 DSM 系统的同一页上,即使不是共享变量,由于他们出现在同一页上,当一进程使用它们之一时,进
37、程也得到了另一个变量,因此发生错误共享。包 含 两 个 无 关 变 量 的 错 误 共 享 处 理 器 1 使 用 A的 代 码 处 理 器 2 A B 共享页 使 用 B的 代 码 A B 两 个无 关的 共享 变量 1657.说明基于分页的分布式共享存储器置无效协议中如何读写存储器的一页。答:在这个协议中,任意时间每一页或者在 R 状态(可读) ,或者在 W 状态(可读可写) ,在执行程序时,页的状态可以改变,当页处于 W 状态时,只有一个拷贝,当页处于 R 状态时,拥有者有一个拷贝,其他进程可能有其拷贝。每一页有一个拥有者,即最近在该页上写入的进程。图(a)给出了处理机 1 上的进程 P
38、 要读一页的六种情况。在前四种情况中,P 仅做读操作,页被映射到他们的地址空间,所以读操作由硬件完成,不会激活陷阱程序。第五六种情况,发生缺页错误,DSM 的软件获得控制权,发送消息给拥有者以获得一份拷贝。当拷贝传到时,页被映射,出错的指令继续执行,如果拥有者处于 W 状态,必须将之降级为 R 状态。图(b)给出了处理机 1 上的进程 P 要写一页的六种情况,第一种情况,因为页映射为只读模式吗,所以写操作只是发生了,而不激活陷阱程序;第二种情况,也被改为 W 状态,并写入;第三种情况,该页有其他拷贝,所以在写以前,必须先置无效这些拷贝。在后三种情况中,当 P 要执行写操作时,其他进程是拥有者,
39、P 必须要求现在的拥有者将其置无效,将拥有权传给 P,除非 P 已经有了一个拷贝,将该页的一个拷贝也传给 P。只有这样写操作才能开始。在这三例中,P 最后拥有该页的唯一拷贝,其状态为 W。在所有的六例中,在写操作执行以前,协议保证要写得进程的地址空间中只有页的一个拷贝存在,这样可以保证一致性。1758.在基于分页的 DSM 系统中,复制页更新时需要通过置无效协议以实现一致性,试给出一种寻找复制页拷贝的方法。答:广播的方式,要求拥有者对申请消息进行响应,从而确定所需拷贝页的拥有者。使用拥有者定位协议,在系统中指定一个进程为页管理者,来跟踪哪个进程有哪些页,在具体实现时有四消息和三消息两种方法。四
40、消息方法,申请者向页管理者提交请求,页管理者返回消息指出拥有者是谁。申请者在向拥有者发送请求,拥有者返回所需的页的拷贝或者拥有权。同时也管理者根据新的信息将相应的进程中的页置为无效页。三消息方法,申请者向页管理者提交申请后,页管理者将请求消息转发给响应的拥有者,由拥有者对申请者直接给出所需页的拷贝或者拥有权。消息传送完成后,页管理者对页的拥有者做出改变,同时设置无效页。1按照资源共享的观念定义的计算机网络具备哪几个主要特征?答:三个主要特征:1.建立的目的是实现计算机资源的共享,包括数据资源软件资源和硬件资源。2.互连的计算机是分布在不同地理位置的多台独立的”自治计算机”。3.连网的计算机之间
41、的通信必须遵循共同的网络协议。2为什么传输层通信服务常常不适于构建分布式应用程序?答:因为它不适合用于支持多层客户-服务器交互过程所使用的同步请求- 应答方式,在可靠传输中,造成许多开销都耗费在连接的管理上。3描述一下客户和服务器之间使用套接字的无连接通信是如何进行的?答:首先服务器和客户端都要创建一个套接字,并遵循 UDP 协议,服务器将其所在的 IP 地址以及一个端口号绑定到套接字,完成绑定后,服务器就能接收来自客户端的 UDP 数据包了。同样,客户端在创建套接字后,能够向服务器发送 UDP 包进行通信,通信过程中,服务器和客户端之间是不用建立连接的。4简述 TCP 和 UDP 协议在通信
42、中的区别TCP 是面向连接的可靠的协议,适用于传输大批量的文件,检查是否正常传输。而 UDP 是面向非连接的不可靠的协议,适用于传输一次性小批量的文件,不对传输数据报进行检查。TCP 需要先建立连接才能通话;而 UDP 不需要,实时性要高点。TCP 可以形象比喻为打电话的过程;UDP 可以比喻为发短信的过程。TCP 不能发送广播和组播,只能单播;UDP 可以广播和组播。6标识符是否可以包含它所引用实体的信息?答:标识符可以包含它所引用实体的信息,但是,这些信息不允许修改,因为那意味着标识符被改变。7在深度为 k 的分层定位服务中,当移动实体改变它的位置时,最多需要更新多少条位置记录?答:移动实
43、体改变位置会产生删除操作和插入操作,删除操作至少需要更新 k 条位置记录。同样,插入操作也需要更新 k 条位置记录。最后,删除与插入更新移动实体位置的记录共需要 2k+1 条。8要使用 Lamport 时间戳实现全序多播,是不是每个消息都必须要被严格地确认?答:不需要,任何类型的消息,只要它的时间戳大于所接收到的消息的时间戳,就可以被加入消息队列,使18用 Lamport 时间戳实现全序多播。9许多分布式算法需要使用协调进程。讨论一下,这样的算法实际上可以在什么程度上被看作为分布式的?答:在集中式算法中,一般会选择一个固定的进程作为协调者,其它的进程可以分布在不同的机器上运行。分布式算法中也同
44、样可以引入协调进程,但是,这个进程并不是固定的,它是从作为算法一部分的进程中选择的。因此,使用协调进程并不会影响算法的分布性。10作业调度和进程调度有何区别?答:作业调度与进程调度之间的差别主要是:作业调度是宏观调度,它所选择的作业只是具有获得处理机的资格,但尚未占有处理机,不能立即在其上实际运行;而进程调度是微观调度,动态地把处理机实际地分配给所选择的进程,使之真正活动起来。另外,进程调度相当频繁,而作业调度执行的次数一般很少。11请解释 DNS 如何进行复制,以及它实际运行很好的原因。答:DNS 进行复制的基本思想是:域名服务器可以缓存以前查找过的结果。由于 DNS 的名称到地址的映射很少
45、更改,因此,这些结果可以缓存很长一段时间。12简述进程与程序的联系和区别答:(1)联系:一个进程可以涉及到一个或几个程序的执行;一个程序可以对应一个或多个进程,即同一程序段可以在不同数据集合上运行,可构成不同的进程,例如打印输出程序段,例如同一高级语言编译程序与多个用户源程序。(2)进程和程序的区别主要体现在:1)进程是动态的,具有一定的生命周期,而程序是静态的;2)进程可并发执行,而没有创建进程的程序是不能执行的;3)进程是操作系统中申请和分配资源的基本单位,而没有创建进程的程序是不能申请资源的;4)进程包括程序、数据和进程控制块;5)同一程序的多次执行对应多个进程13在下图中,一个顺序一致
46、的存储器允许 6 种可能的语句交叉。请列举出这 6 种可能的情况。进程 P1 进程 P2x=1; y =1;if(y= 0) kill(P2) if(x= 0) kill(P1)答:这 6 种可能的情况是:(1) a=1; if ( b= =0 ); b=1; if ( a= =0 );(2) a=1; b=1; if ( a= =0 ); if ( b= =0 );(3) a=1; b=1; if ( b= =0 ); if ( a= =0 );(4) b=1; if ( a= =0 ); a=1; if ( b= =0 );(5) b=1; a=1; if ( b= =0 ); if (
47、a= =0 );(6) b=1; a=1; if ( a= =0 ); if ( b= =0 );14一个文件被复制在 10 个服务器上,请列出表决算法允许的所有读团体和写团体。答:下列可能性的读团体和写团体是合法的:(1,10) 、 (2,9) 、 (3,8) 、 (4,7) 、 (5,6) 、 (6,5) 、 (7,4) 、 (8,3) 、 (9,2) 、 (10,1) 。15原子多播的可扩展性重要到哪种程度上?答:它取决于一组包含多个进程的状态。如果进程为故障容错进行了复制,拥有少量的副本可能就足够了,在这种情况下,可扩展性几乎不成问题。如果是由不同进程构成的组,可扩展性就可能成了一个问
48、题。当为了性能而复制时,原子多播自身可能超出负荷的能力。1916在两阶段提交协议中,为什么即使在参与者们选择一个新的协调者的情况下也不会完全消除阻塞?答:因为选举结束后,新的协调者也同样可能会崩溃。在这种情况下,其余的参与者也不能做出最后决定,因为这需要由新当选的协调者发起选举。17假设 Alice 希望向 Bob 发送一条消息 m。她没有使用 Bob 的公钥 K+B 加密 m,而是生成了一个会话密钥 KA,B,然后发送K A,B(m), K+B(KA,B)。为什么一般来讲,这种方法更好?(提示:考虑性能问题) 。答:会话密钥有一个短而固定的长度,而消息 m 可能是任意长度。因此,采用会话密钥
49、和公钥结合加密短消息通常在性能方面优于只使用一个公钥加密的消息。18列举出为密钥管理使用集中式服务的一些优点和缺点。答:一个显著的优点是简单。比如:若有 N 个客户在一个集中式的服务器上共享了 1 个密钥,我们就只需要维护 N 个密钥;如果是成对共享密钥,那我们就需要维护 N(N-1)/2 个。而且使用集中式服务器存储和维护都在一个站点上,使存储和维护都比较方便。潜在的缺点:首先是服务器有可能成为性能和可用性的瓶颈。其次,如果服务器机密被泄露,就必须建立新的密钥。19一个网络中,DNS 服务器应该部署在什么地方最合适?答:要用域名访问 Internet 上的服务器必须先访问 DNS 服务器,经过 DNS 对域名的解析才能连接到相应的主机。所以,在一个网络中,DNS 服务器应该部署在客户端可以集中访问的网络位置上。20进程间同步和互斥的含义是什么?答:进程间同步是并发进程之间存在的相互制约和相互依赖的关系。进程间互斥是若干进程共享一资源时,任何时刻只允许一个进程使用。四综合题(本题结果不是唯一