C.要发送的消息 D. 当前正在传输中的消息 24.面向消息的中间件模型一般提供(ACD)。 A.持久异步通信 B. RPC和RMI C.电子邮件 D. 工作流 25.在分布式系统中,实现事务的方法是(B C)。
A.创建进程 B. 为进程分配私有工作空间 C.做写前日志 D. 创建线程 26.并发控制的总体思想是( A )。
A.正确调度相冲突的操作 B. 对事务进行管理 C.进行数据的更新 D. 有序的通信 27.下面属于进程间同步算法的是(C D)。
A.FIFO算法 B. 基于优先级的算法 C.选举算法 D. 互斥算法 28.严格一致性中存在的问题是(A)。
A.依赖于绝对的全局时间 B. 不依赖于绝对的全局时间 C.依赖于并发控制算法 D. 不依赖于并发控制算法 29.下列属于“以数据为中心的一致性模型”是(ACD)。 A.线性化和顺序一致性 B. 最终一致性 C.因果一致性 D. FIFO一致性 30.下列属于“以客户为中心的一致性模型”是(BCD)。 A.严格一致性 B. 单调读一致性 C.写后读一致性 D. 读后写一致性 31.下面属于一致性协议的是(C D)。
A.传输协议 B. 中间件协议 C.基于主备份的协议 D. 复制的写协议 32.基于主备份的协议是指(A B)
A.负责协调X上的远程写操作 B. 负责协调X上的本地写操作 C.主动复制 D. 协调操作
33.冗余是获得容错性所需的关键技术,下面属于冗余掩盖故障的是(BCD)。 A.存储器冗余 B. 信息冗余 C.时间冗余 D. 物理冗余 34.在可靠多播通信中,解决反馈拥塞的方法是(A B)。
A.无等级的反馈控制 B. 分等级的反馈控制 C.分层的反馈控制 D. 闭环反馈控制 35.实现可靠原子多播的方法是(B C)。
A.转发指针 B. 消息排序 C.虚拟同步 D. 指针缓存
36.在分布式系统安全设计问题中,控制的焦点是(ABC)。
A.防止无效操作的保护 B. 防止未经授权调用的保护 C.防止未经授权用户的保护 D. 安全机制的保护 37.在分布式系统中,加密和解密的实现是(D)。 A.递归算法 B. 安全管理
C.通道管理 D. 以密钥为参数的加密算法 38.分布式系统常用的加密系统有(ABC)。
A.对称加密系统(DES) B. 公钥加密系统(RSA) C.散列函数(MDS) D. 授权加密 39.在分布式系统安全通道的通信中,其安全性归结为(B C)。
A.授权访问 B. 对通信各方进行身份验证 C.确保消息完整性和机密性 D. 检验权限 40.在分布式安全访问控制中,实现访问控制的方式有(A BC)。 A.构造访问控制矩阵 B. 构造保护域 C.采用防火墙 D. 密钥管理
三.简答题(每小题n分,共m分)
1.按照资源共享的观念定义的计算机网络具备哪几个主要特征?
答:三个主要特征:1.建立的目的是实现计算机资源的共享,包括数据资源\\软件资源和硬件资源。2.互连的计算机是分布在不同地理位置的多台独立的”自治计算机”。3.连网的计算机之间的通信必须遵循共同的网络协议。
2.为什么传输层通信服务常常不适于构建分布式应用程序?
答:因为它不适合用于支持多层客户-服务器交互过程所使用的同步请求-应答方式,在可靠传输中,造成许多开销都耗费在连接的管理上。
3.描述一下客户和服务器之间使用套接字的无连接通信是如何进行的?
答:首先服务器和客户端都要创建一个套接字,并遵循UDP协议,服务器将其所在的IP地址以及一个端口号绑定到套接字,完成绑定后,服务器就能接收来自客户端的UDP数据包了。同样,客户端在创建套接字后,能够向服务器发送UDP包进行通信,通信过程中,服务器和客户端之间是不用建立连接的。
4.简述TCP和UDP协议在通信中的区别 TCP是面向连接的可靠的协议,适用于传输大批量的文件,检查是否正常传输。而UDP是面向非连接的不可靠的协议,适用于传输一次性小批量的文件,不对传输数据报进行检查。
TCP需要先建立连接才能通话;而UDP不需要,实时性要高点。
TCP可以形象比喻为打电话的过程;UDP可以比喻为发短信的过程。 TCP不能发送广播和组播,只能单播;UDP可以广播和组播。
5.Java RMI对代码迁移依赖到何种程度?
答:Java RMI时,每一个方法引用传递实际上就是执行一次代码的迁移,对于移植性差的进程来说,代码迁移是非常必要的。
6.标识符是否可以包含它所引用实体的信息?
答:标识符可以包含它所引用实体的信息,但是,这些信息不允许修改,因为那意味着标识符被改变。
7.在深度为k的分层定位服务中,当移动实体改变它的位置时,最多需要更新多少条位置记录?
答:移动实体改变位置会产生删除操作和插入操作,删除操作至少需要更新k条位置记录。同样,插入操作也需要更新k条位置记录。最后,删除与插入更新移动实体位置的记录共需要2k+1条。
8.要使用Lamport时间戳实现全序多播,是不是每个消息都必须要被严格地确认?
答:不需要,任何类型的消息,只要它的时间戳大于所接收到的消息的时间戳,就可以被加入消息队列,使用Lamport时间戳实现全序多播。
9.许多分布式算法需要使用协调进程。讨论一下,这样的算法实际上可以在什么程度上被看作为分布式的?
答:在集中式算法中,一般会选择一个固定的进程作为协调者,其它的进程可以分布在
不同的机器上运行。分布式算法中也同样可以引入协调进程,但是,这个进程并不是固定的,它是从作为算法一部分的进程中选择的。因此,使用协调进程并不会影响算法的分布性。 10.作业调度和进程调度有何区别?
答:作业调度与进程调度之间的差别主要是:作业调度是宏观调度,它所选择的作业只是具有获得处理机的资格,但尚未占有处理机,不能立即在其上实际运行;而进程调度是微观调度,动态地把处理机实际地分配给所选择的进程,使之真正活动起来。另外,进程调度相当频繁,而作业调度执行的次数一般很少。
11.请解释DNS如何进行复制,以及它实际运行很好的原因。
答:DNS进行复制的基本思想是:域名服务器可以缓存以前查找过的结果。由于DNS的名称到地址的映射很少更改,因此,这些结果可以缓存很长一段时间。
12.简述进程与程序的联系和区别
答:(1)联系:一个进程可以涉及到一个或几个程序的执行;一个程序可以对应一个或多个进程,即同一程序段可以在不同数据集合上运行,可构成不同的进程,例如打印输出程序段,例如同一高级语言编译程序与多个用户源程序。
(2)进程和程序的区别主要体现在:
1)进程是动态的,具有一定的生命周期,而程序是静态的;
2)进程可并发执行,而没有创建进程的程序是不能执行的;
3)进程是操作系统中申请和分配资源的基本单位,而没有创建进程的程序是不能申请资源的;
4)进程包括程序、数据和进程控制块; 5)同一程序的多次执行对应多个进程
13.在下图中,一个顺序一致的存储器允许6种可能的语句交叉。请列举出这6种可能的情况。
进程P1 进程P2 x=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 ( 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.原子多播的可扩展性重要到哪种程度上?
答:它取决于一组包含多个进程的状态。如果进程为故障容错进行了复制,拥有少量的副本可能就足够了,在这种情况下,可扩展性几乎不成问题。如果是由不同进程构成的组,可扩展性就可能成了一个问题。当为了性能而复制时,原子多播自身可能超出负荷的能力。
16.在两阶段提交协议中,为什么即使在参与者们选择一个新的协调者的情况下也不会完全消除阻塞?
答:因为选举结束后,新的协调者也同样可能会崩溃。在这种情况下,其余的参与者也不能做出最后决定,因为这需要由新当选的协调者发起选举。
17.假设Alice希望向Bob发送一条消息m。她没有使用Bob的公钥K+B加密m,而是生成了一个会话密钥KA,B,然后发送[KA,B(m), K+B(KA,B)]。为什么一般来讲,这种方法更好?(提示:考虑性能问题)。 答:会话密钥有一个短而固定的长度,而消息m可能是任意长度。因此,采用会话密钥和公钥结合加密短消息通常在性能方面优于只使用一个公钥加密的消息。
18.列举出为密钥管理使用集中式服务的一些优点和缺点。
答:一个显著的优点是简单。比如:若有N个客户在一个集中式的服务器上共享了1个密钥,我们就只需要维护N个密钥;如果是成对共享密钥,那我们就需要维护N(N-1)/2个。而且使用集中式服务器存储和维护都在一个站点上,使存储和维护都比较方便。潜在的缺点:首先是服务器有可能成为性能和可用性的瓶颈。其次,如果服务器机密被泄露,就必须建立新的密钥。
19.一个网络中,DNS服务器应该部署在什么地方最合适?
答:要用域名访问Internet上的服务器必须先访问DNS服务器,经过DNS对域名的解析才能连接到相应的主机。所以,在一个网络中,DNS服务器应该部署在客户端可以集中访问的网络位置上。
20.进程间同步和互斥的含义是什么?
答:进程间同步是并发进程之间存在的相互制约和相互依赖的关系。 进程间互斥是若干进程共享一资源时,任何时刻只允许一个进程使用。
四.综合题(本题结果不是唯一的,每小题n分,共m分)
1.有三个进程P1,P2和P3并发工作。进程P1需用资源S3和S1;进程P2需用资源S1和S2;进程P3需用资源S2和S3。回答:
(1)若对资源分配不加限制,会发生什么情况?为什么?
(2)为保证进程正确工作,应采用怎样的资源分配策略?为什么?
(1)多个进程动态地共享系统的资源可能会产生死锁现象。死锁的产生,必须同时满足四个条件,第一个是互斥条件,即一个资源每次只能由一个进程占用;第二个为等待条件,即一个进程请求资源不能满足时,它必须等待,但它仍继续保持已得到的所有其它资源;第三个是非出让条件,任何一个进程不能抢占另一个进程已经获得且未释放的资源;第四个为循环等待条件,系统中存在若干个循环等待的进程,即其中每一个进程分别等待它前一个进程所持有的资源。防止死锁的机构只须确保上述四个条件之一不出现,则系统就不会发生死锁。 只要资源分配策略能保证进程不出现循环等待,则系统就不会发生死锁。
(2) 银行家算法分配资源的原则是:系统掌握每个进程对资源的最大需求量,当进程要求申请资源时,系统就测试该进程尚需资源的最大量,如果系统中现存的资源数大于或等于该进程尚需的最大量时,则就满足进程的当前申请。这样可以保证至少有一个进程可能得到全部资源而执行到结束,然后归还它所占用的全部资源供其它进程使用。银行家算法破坏了产生死锁的第四个条件,即不可能产生循环等待,从而可以避免死锁的发生。
防止进程发生循环等待的另一种资源分配策略是按序分配算法,其基本思想如下:把系统中所有的资源排一个顺序,例如系统共有m个资源,用ri表示第i个资源,那么这m个资源是: r1, r2, r3 ??, rm
规定任何进程不得在占用资源ri(1
2.如何设计一个好的RPC?采用client/server模型与应用程序的组件说明开发过程?
本文比较详细地介绍了远程过程调用(RPC)的OSF标准在Microsoft VC++中的实现原理, 以及如何使用它们来开发应用程序. 阅读本文你将了解RPC的基本原理, 并将看到如何开发使用RPC进行异种机网络分布式处理的客户机应用程序和服务器应用程序. Para 1. RPC工作原理
RPC是把传统本地过程调用的概念加以扩充后引入分布式环境的一种形式. RPC的形式和行为与传统本地过程调用极为相似, 差别仅在于被调用的procedure(过程)实际运行在与调用者的场点不同的场点上(如图1). 也正是由于这一差别, 我们得通过编写程序来实现两场地之间的连接和信息沟通.
RPC机制的实质是实现OSI七层模型中的会话层功能. 它在两个试图进行通信的场点之间建立一条逻辑信道(即会话连接), 并利用这个信道交换信息, 不用时就释放连接. 下面我们就来看看RPC的通信模型(如下图2): Client端:
1) 发送远程过程调用的消息(以消息包形式)给远程的server端; 2) 等待, 直到收到server端对该请求的回复;
3) 一旦接收到来自server端的返回执行结果, 就继续执行后面的程序. Server端:
1) 倾听状态, 等待client端发送过程调用消息;
2) 一旦接收到过程调用消息, server就抽取参数并分析它, 然后执行所请求的过程; 3) 将执行结果以消息包形式回送给client.