《分布式系统复习题与参考答案答案完全版.docx》由会员分享,可在线阅读,更多相关《分布式系统复习题与参考答案答案完全版.docx(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于分布式系统复习题及参考答案一, 填空题(每题n分,答错 个扣 分,全错全扣,共计m分)1下面特征分别属于计算机网络和分布式计算机系统,请加以区分:分布式计算机是指系统内部对用户是完全透亮的;系统中的计算机即合作又自治;系统可以利用多种物理和逻辑资源,可以动态地给它们支配任务。计算机网络是指互连的计算机是分布在不同地理位置的多台独立的“自治计算机。2点到点通信子网的拓扑构造主要有以下几种:星型, 环型, 树型, 网状型,请依据其特征填写相应构造。网状型 :结点之间的连接是随意的,没有规律。环型:节点通过点到点通信线路连接成闭合环路。星型:节点通过点到点通信线路及中心结点相连;树型:结点按层次
2、进展连接。3分布式计算系统可以分为两个子组,它们是集群计算系统和网格计算系统。4分布式事务处理具有4个特性,原子性:对外部来说,事务处理是不行见的;一样性:事务处理不会违反系统的不变性;独立性:并发的事务处理不会相互干扰;许久性:事务处理一旦提交,所发生的变更是永久性的。5网络协议有三要素组成,时序是对事务实现依次的详细说明;语义是指须要发出何种限制信息,以及要完成的动作及作出的响应;语法是指用户数据及限制信息的构造及格式6依据组件和连接器的不同,分布式系统体系构造最重要的有4种,它们是:分层体系构造, 基于对象的体系构造, 以数据为中心的体系构造, 基于事务的体系构造7在客户-效劳器的体系构
3、造中,应用分层通常分为3层,用户接口层, 处理层和数据层。8有两种类型的分布式操作系统,多处理器操作系统和多计算机操作系统。9软件自适应的根本技术有3种,一是要点别离, 二是计算映像, 三是基于组件的设计。10DCE本身是由多个效劳构成的,常用的有分布式文件系统, 书目效劳, 平安效劳以及分布式时间效劳等。11TCP/IP体系构造的传输层上定义的两个传输协议为传输限制协议(TCP)和用户数据报协议(UDP)。12Windows NT的构造借用了层次模型和客户/效劳器两种模型。13常用的进程调度算法有先来先效劳, 优先数法和轮转法14进程的三个根本状态是就绪, 执行, 等待(堵塞)。15进程是
4、程序在一个数据集合上的运行过程,是系统进展资源支配和调度的一个 独立单位16进程四个特征是 动态性, 并发性, 独立性 ,异步性。17操作系统通常可以分为以下几种类型:批处理系统, 分时系统, 实时系统 , 网络操作系统 和分布式操作系统。18解决死锁的根本方法包括预防死锁, 防止死锁,死锁检测,死锁复原。19在引进线程的操作系统中,调度和分派的根本单位是线程,拥有资源的单位是进程。20在面对流的通信中,为连续供应支持数据流的模式有异步传输模式, 同步传输模式和等时传输模式三种。21在流同步机制,通常有在数据单元层次上进展显式同步和通过高级接口支持的同步两种。22在分布式系统中,挂载外部名称空
5、间至少须要的信息是:访问协议的名称, 效劳器的名称和外部名称空间中挂载点的名称。23在名称空间的实现中,为了有效实现名称空间,通常把它划分为逻辑上的三层,其三层指的是全局层, 行政层和管理层。24在名称解析的实现中,通常接受两种方法,一是迭代名称解析;二是递归名称解析。25在逻辑时钟算法中,Lamport定义了一个称作“先发生的关系,表达式ab表示a在b之前发生。先发生关系是一个传递关系。26分布式系统中,通常有4种互斥算法,一是集中式, 二是非集中式, 三是分布式, 四是令牌环。27分布式系统中的选举算法有两种,一是欺压选举算法;二是环选举算法。28在以数据为中心的一样性模型中,依次一样性是
6、指“任何执行结果都是一样的,全部进程对数据存储的读/写操作是按某种序列依次执行的,并且每个进程的操作依据程序所制定的依次出现在这个序列中。29在因果一样性中,全部进程必需以一样的依次看到具有潜在因果关系的写操作。不同机器可以以不同的依次看到并发的写操作。30以客户为中心的一样性模型中,满足最终一样性的数据存储具有以下属性:没有更新操作时,全部副本慢慢成为相互完全一样的拷贝。31以客户为中心的一样性模型中,一个写操作总是在同一进程执行的后续读操作之前完成,而不管这个后续的读操作发生在什么位置。32在一样性协议中,基于主备份的协议比拟盛行,它包括远程写协议和本地写协议两种。33在一样性协议中,复制
7、的写协议包括主动复制和基于多数表决的一样性协议两种。34在容错性中,故障通常被分为短暂性故障, 间歇性故障和许久性故障三大类型。35假如系统是容错的,运用冗余掩盖故障的方法有信息冗余, 时间冗余和物理冗余三种。36在牢靠的客户-效劳器通信中,失败时的RPC系统中发生客户不能定位效劳器, 请求消息丢失, 效劳器崩溃, 应答消息丢失和客护端崩溃等5种形式。37在原子多播里,消息排序通常有4种不同的排序方法,它们分别是:不排序的多播, FIFO依次的多播, 按因果关系排序多播和全序多播。38容错性的根本要求是从错误中复原,本质上有两种形式的错误复原,一是回退复原;另一种是前向复原。39在分布式平安性
8、中,通常考虑计算机系统受到的平安威逼有窃听, 中断, 修改和伪造等四种。40平安策略精确地描述系统中的实体能够实行的行为以及制止实行的行为。41平安机制包括加密, 身份认证, 授权和审计等四个局部。42分布式加密系统通常有三种类型,一是对称加密系统DES;二是公钥加密系统RSA, 三是散列函数MDS系统。43身份认证是一种会话密钥,常用的身份认证有基于共享密钥的身份认证, 运用密钥分发中心的身份认证, 运用公钥加密的身份认证三种类型。44消息的完整性是指爱惜消息免受修改;其机密性确保窃听者不能截获和读取消息。45在平安通道中,为了使消息完整性和机密性。通常接受数字签名和会话密钥的加密算法实现平
9、安通道的数据交换。46在平安组通信中,要确保机密性,机密组通信运用公钥加密系统可以解决;而平安的复制效劳器组中共享一个保密签名的方法。47在访问限制中,要建立主体对对象的访问权限,其一般方法是构造一个访问限制矩阵,而访问限制列表ACL和权能列表来实现。48防火墙通常分为两种不同的类型,一种是数据包过滤网关;另一种是应用层的网关。49在分布式系统平安管理中,主要分密钥管理, 平安组管理以及授权管理三大内容。50在容错性中,人们定义了一些不同类型的故障,主要的有崩溃性故障, 遗漏性故障, 定时性故障, 响应性故障以及随意性故障等五大类。二, 选择题(每题n分,共m个题,共计x分)1网络体系构造可以
10、定义为:( C )A, 一种计算机网络的实现 B, 执行计算机数据处理的软件构造C, 建立和运用通信硬件和软件的一套规那么和标准 D, 由ISO制定的一个标准2在OSI参考模型中,数据链路层的数据效劳单元是: C A, 分组 B, 报文 C, 帧 D, 比特序列3下面属于分布式计算系统的是B C A, 资源管理 B, 集群计算 C, 网格计算 D, 运行应用程序4目前分布式信息系统按集成可分为A BA, 事务处理系统 B, 企业应用集成 C, 网络管理 D, 资源支配系统5现在已认可的分布式系统软件体系构造样式有ABCDA, 分层体系构造 B, 基于对象的体系构造C, 以数据为中心的体系构造
11、D, 基于事务的体系构造6两个旅行社甲和乙为旅客到某航空公司订飞机票,形成互斥的资源是( A )。A. 飞机票 B旅行社 C航空公司 D旅行社和航空公司7DNS属于 A 层协议。 A应用层 B传输层 C互联网层 D网络接口层8活动书目是一种 AB 构造的书目效劳。 A层次式 B分布式 C对等式 D主次式9对于域名:test ,DNS效劳器查找依次是 B 。 A先查找test主机,再查找 域B先查找 域,再查找test主机C随机查找 D以上答案皆是10SMTP协议是关于 A 的协议。 A邮件传输 B文件传输 C超文本传输 D网络新闻组传输11POP3协议是关于 C 的协议。 A超文本传输 B邮件
12、传输 C接收邮件 D网络新闻组传输12远程客户端登录终端效劳器必需供应确定的信息,以下有AC属于这种必要的信息。 A用户名 B域 C效劳器IP地址 D连接名称13在多播通信中,应用层多播树的质量通常以ABC不同的尺度来度量。 A链接树 B. 相对延时补偿 C. 树本钱 D. 树构造14以多播流方式传递内容时只能接受B类型的发布点。A单播发布点 B播送发布点C单播发布点或播送发布 D既不是单播发布点也非播送发布点15DNS名称空间是分层组织的一棵有根树,标识符是有 C 。 A字母组成 B. 数字组成 C. 字母和数字组成 D. 汉字组成16IDL编译器的输出包括的文件是 ABD 。 A文件头 B
13、. 客户存根 C. 守护程序 D. 效劳器存根17以下属于流同步的是C D。A位同步 B. 字同步 C. 离散数据流及连续数据流之间同步D口型同步18实现线程包的根本方法有AC。A构造一个完全在用户模式下执行的线程库 B. 由进程间通信实现C由内核来管理线程并进展调度 D. 由用户程序来实现19下面是多线程效劳器可行的设计方法是ACD A多线程文件效劳器 B. Web效劳 C单线称文件效劳器 D. 作为有限状态机20及迭代名称解析比拟,递归名称解析的优点是B C。A要求效劳器性能高 B. 缓存结果更为有效C能削减通信开销 D. 算法简洁21名称用来表示实体,下面属于实体名称的是BCDA实体图
14、B. 标识符 C. 易于理解的名称 D. 实体地址22下面用于定位移动实体的方法是(ABCD)A运用播送及多播 B. 运用转发指针 C给实体指定一个起始位置 D. 创立一棵分层搜寻树23分布式系统的全局状态是指( B D )。 A用于计算的临时记录 B. 每个进程的本地状态 C要发送的消息 D. 当前正在传输中的消息24面对消息的中间件模型一般供应ACD。A许久异步通信 B. RPC和RMIC电子邮件 D. 工作流25在分布式系统中,实现事务的方法是B C。A创立进程 B. 为进程支配私有工作空间C做写前日志 D. 创立线程26并发限制的总体思想是 A 。A正确调度相冲突的操作 B. 对事务进
15、展管理C进展数据的更新 D. 有序的通信27下面属于进程间同步算法的是C D。AFIFO算法 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. 复制
16、的写协议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. 平
17、安机制的爱惜37在分布式系统中,加密和解密的实现是D。A递归算法 B. 平安管理C通道管理 D. 以密钥为参数的加密算法38分布式系统常用的加密系统有ABC。A对称加密系统DES B. 公钥加密系统RSAC散列函数MDS D. 授权加密39在分布式系统平安通道的通信中,其平安性归结为B C。A授权访问 B. 对通信各方进展身份验证C确保消息完整性和机密性 D. 检验权限40在分布式平安访问限制中,实现访问限制的方式有A BC。A构造访问限制矩阵 B. 构造爱惜域C接受防火墙 D. 密钥管理三简答题每题n分,共m分1依据资源共享的观念定义的计算机网络具备哪几个主要特征?答:三个主要特征:1.建立
18、的目的是实现计算机资源的共享,包括数据资源软件资源和硬件资源。2.互连的计算机是分布在不同地理位置的多台独立的自治计算机。3.连网的计算机之间的通信必需遵循共同的网络协议。2为什么传输层通信效劳经常不适于构建分布式应用程序?答:因为它不适合用于支持多层客户-效劳器交互过程所运用的同步请求-应答方式,在牢靠传输中,造成许多开销都消耗在连接的管理上。3描述一下客户和效劳器之间运用套接字的无连接通信是如何进展的?答:首先效劳器和客户端都要创立一个套接字,并遵循UDP协议,效劳器将其所在的IP地址以及一个端口号绑定到套接字,完成绑定后,效劳器就能接收来自客户端的UDP数据包了。同样,客户端在创立套接字
19、后,能够向效劳器发送UDP包进展通信,通信过程中,效劳器和客户端之间是不用建立连接的。4简述TCP和UDP协议在通信中的区分TCP是面对连接的牢靠的协议,适用于传输大批量的文件,检查是否正常传输。而UDP是面对非连接的不行靠的协议,适用于传输一次性小批量的文件,不对传输数据报进展检查。TCP须要先建立连接才能通话;而UDP不须要,实时性要高点。TCP可以形象比方为打 的过程;UDP可以比方为发短信的过程。TCP不能发送播送和组播,只能单播;UDP可以播送和组播。5Java RMI对代码迁移依靠到何种程度?答:Java RMI时,每一个方法引用传递事实上就是执行一次代码的迁移,对于移植性差的进程
20、来说,代码迁移是特殊必要的。6标识符是否可以包含它所引用实体的信息?答:标识符可以包含它所引用实体的信息,但是,这些信息不允许修改,因为那意味着标识符被变更。7在深度为k的分层定位效劳中,当移动实体变更它的位置时,最多须要更新多少条位置记录?答:移动实体变更位置会产生删除操作和插入操作,删除操作至少须要更新k条位置记录。同样,插入操作也须要更新k条位置记录。最终,删除及插入更新移动实体位置的记录共须要2k+1条。 8要运用Lamport时间戳实现全序多播,是不是每个消息都必需要被严格地确认?答:不须要,任何类型的消息,只要它的时间戳大于所接收到的消息的时间戳,就可以被参加消息队列,运用Lamp
21、ort时间戳实现全序多播。 9许多分布式算法须要运用协调进程。探讨一下,这样的算法事实上可以在什么程度上被看作为分布式的?答:在集中式算法中,一般会选择一个固定的进程作为协调者,其它的进程可以分布在不同的机器上运行。分布式算法中也同样可以引入协调进程,但是,这个进程并不是固定的,它是从作为算法一局部的进程中选择的。因此,运用协调进程并不会影响算法的分布性。 10作业调度和进程调度有何区分?答:作业调度及进程调度之间的差异主要是:作业调度是宏观调度,它所选择的作业只是具有获得处理机的资格,但尚未占有处理机,不能立刻在其上实际运行;而进程调度是微观调度,动态地把处理机实际地支配给所选择的进程,使之
22、真正活动起来。另外,进程调度相当频繁,而作业调度执行的次数一般很少。 11请说明DNS如何进展复制,以及它实际运行很好的缘由。答:DNS进展复制的根本思想是:域名效劳器可以缓存以前查找过的结果。由于DNS的名称到地址的映射很少更改,因此,这些结果可以缓存很长一段时间。 12简述进程及程序的联系和区分答:1联系:一个进程可以涉及到一个或几个程序的执行;一个程序可以对应一个或多个进程,即同一程序段可以在不同数据集合上运行,可构成不同的进程,例如打印输出程序段,例如同一高级语言编译程序及多个用户源程序。2进程和程序的区分主要表达在:1进程是动态的,具有确定的生命周期,而程序是静态的;2进程可并发执行
23、,而没有创立进程的程序是不能执行的;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;
24、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原子多播的可扩展性重要到哪种程度上?答:它取决于一组包含多个进程的状态。假如
25、进程为故障容错进展了复制,拥有少量的副本可能就足够了,在这种状况下,可扩展性几乎不成问题。假如是由不同进程构成的组,可扩展性就可能成了一个问题。当为了性能而复制时,原子多播自身可能超出负荷的实力。 16在两阶段提交协议中,为什么即使在参及者们选择一个新的协调者的状况下也不会完全消退堵塞?答:因为选举完毕后,新的协调者也同样可能会崩溃。在这种状况下,其余的参及者也不能做出最终确定,因为这须要由新中选的协调者发起选举。 17假设Alice渴望向Bob发送一条消息m。她没有运用Bob的公钥K+B加密m,而是生成了一个会话密钥KA,B,然后发送KA,B(m), K+B(KA,B)。为什么一般来讲,这种
26、方法更好?提示:考虑性能问题。答:会话密钥有一个短而固定的长度,而消息m可能是随意长度。因此,接受会话密钥和公钥结合加密短消息通常在性能方面优于只运用一个公钥加密的消息。 18列举出为密钥管理运用集中式效劳的一些优点和缺点。答:一个显著的优点是简洁。比方:假设有N个客户在一个集中式的效劳器上共享了1个密钥,我们就只须要维护N个密钥;假如是成对共享密钥,那我们就须要维护N(N-1)/2个。而且运用集中式效劳器存储和维护都在一个站点上,使存储和维护都比拟便利。潜在的缺点:首先是效劳器有可能成为性能和可用性的瓶颈。其次,假如效劳器机密被泄露,就必需建立新的密钥。19一个网络中,DNS效劳器应当部署在
27、什么地方最适宜?答:要用域名访问Internet上的效劳器必需先访问DNS效劳器,经过DNS对域名的解析才能连接到相应的主机。所以,在一个网络中,DNS效劳器应当部署在客户端可以集中访问的网络位置上。20进程间同步和互斥的含义是什么答:进程间同步是并发进程之间存在的相互制约和相互依靠的关系。进程间互斥是假设干进程共享一资源时,任何时刻只允许一个进程运用。四综合题此题结果不是唯一的,每题n分,共m分1有三个进程P1,P2和P3并发工作。进程P1需用资源S3和S1;进程P2需用资源S1和S2;进程P3需用资源S2和S3。答复:(1)假设对资源支配不加限制,会发生什么状况为什么(2)为保证进程正确工
28、作,应接受怎样的资源支配策略为什么(1)多个进程动态地共享系统的资源可能会产生死锁现象。死锁的产生,必需同时满足四个条件,第一个是互斥条件,即一个资源每次只能由一个进程占用;第二个为等待条件,即一个进程请求资源不能满足时,它必需等待,但它仍接着保持已得到的全部其它资源;第三个是非出让条件,任何一个进程不能抢占另一个进程已经获得且未释放的资源;第四个为循环等待条件,系统中存在假设干个循环等待的进程,即其中每一个进程分别等待它前一个进程所持有的资源。防止死锁的机构只须确保上述四个条件之一不出现,那么系统就不会发生死锁。只要资源支配策略能保证进程不出现循环等待,那么系统就不会发生死锁。(2) 银行家
29、算法支配资源的原那么是:系统驾驭每个进程对资源的最大需求量,当进程要求申请资源时,系统就测试该进程尚需资源的最大量,假如系统中现存的资源数大于或等于该进程尚需的最大量时,那么就满足进程的当前申请。这样可以保证至少有一个进程可能得到全部资源而执行到完毕,然后归还它所占用的全部资源供其它进程运用。银行家算法破坏了产生死锁的第四个条件,即不行能产生循环等待,从而可以防止死锁的发生。防止进程发生循环等待的另一种资源支配策略是按序支配算法,其根本思想如下:把系统中全部的资源排一个依次,例如系统共有m个资源,用ri表示第i个资源,那么这m个资源是: r1, r2, r3 , rm规定任何进程不得在占用资源
30、ri1im后再申请rjjim,或者说,假如里程须要资源rj,那么它必需在申请ri之前申请ji。可以证明,按这种策略支配资源时破坏了循环等待条件,故能防止发生死锁 2如何设计一个好的RPC?接受client/server模型及应用程序的组件说明开发过程?本文比拟详细地介绍了远程过程调用(RPC)的OSF标准在Microsoft VC+中的实现原理, 以及如何运用它们来开发应用程序. 阅读本文你将了解RPC的根本原理, 并将看到如何开发运用RPC进展异种机网络分布式处理的客户机应用程序和效劳器应用程序.Para 1. RPC工作原理RPC是把传统本地过程调用的概念加以扩大后引入分布式环境的一种形式
31、. RPC的形式和行为及传统本地过程调用极为相像, 差异仅在于被调用的procedure(过程)实际运行在及调用者的场点不同的场点上(如图1). 也正是由于这一差异, 我们得通过编写程序来实现两场地之间的连接和信息沟通.RPC机制的实质是实现OSI七层模型中的会话层功能. 它在两个试图进展通信的场点之间建立一条逻辑信道(即会话连接), 并利用这个信道交换信息, 不用时就释放连接. 下面我们就来看看RPC的通信模型(如以下图2):Client端: 1) 发送远程过程调用的消息(以消息包形式)给远程的server端;2) 等待, 直到收到server端对该请求的回复;3) 一旦接收到来自serve
32、r端的返回执行结果, 就接着执行后面的程序.Server端:1) 倾听状态, 等待client端发送过程调用消息;2) 一旦接收到过程调用消息, server就抽取参数并分析它, 然后执行所请求的过程;3) 将执行结果以消息包形式回送给client.至于RPC的详细实现, 我们可以借助以下图3来理解:图3 RPC的实现概况其中stub是一组RPC机制的操作原语, 这些原语构成了RPC的实现微小环节, 它可以独立于client, server编程. 下面我们来讲解图3的执行过程:1) 调用者调用本地stub中的一个过程(开场远程过程调用请求).2) 这个stub过程把有关的参数组装成一个消息包或
33、一组消息包, 形成一条消息. 运行此执行过程的远程场点的IP地址和执行该过程的进程ID号也包含在这条消息中.3) 将这条消息发送给对应的RPC runtime(RPC运行库)子程序, 由这个子程序将消息发送到远程场点.4) 在接收到这条消息时, server端的RPC runtime子程序引用及被调用者对应的stub中的一个子程序, 并让它来处理消息.5) 及被调用者对应的stub中的这个子程序撤卸消息, 解析出相关参数, 并用本地调用方式执行所指定的过程.6) 返回调用结果, 调用者对应的stub子程序执行return语句返回到用户, 整个RPC过程完毕.事实上, 从上面这个执行过程中, 我
34、们可以看到RPC的实现主要有两个问题须要解决. 一个是在远程过程调用时, 如何定位远程场点; 另外一个就是相关的两个场点必需能协同工作, 全部这些工作对用户都是透亮的, 依次执行.通常在实际编程中, 程序设计者主要负责设计计算过程并实现计算过程体, 而对应的stub由系统生成. 后面我们就要说到Microsoft的RPC实现机制,看看它是如何产生stub的。Para2. 如何设计好的RPC对调用双方来说, 传递RPC参数包括帮助处理本地数据表示和网络数据表示的相互转换. 此外, 输入输出参数须要一些存储支配. 同时, RPC中的等待时间也不能忽视.所以, 一般来说, 应当尽可能降低调用次数.
35、例如,假如要对一个大数组的每个元素都执行计算, 我们就可以一次调用处理一整行或者整个数组, 而不用每次调用传递一个元素. 这样可以降低有RPC引入的额外开销.Para3. 应用程序的组件为了在client和server端运用RPC, 当然少不了client进程和server进程. 另外还有一个名称效劳进程, 这个稍后再说.开发过程大致是这样的:1) 任何RPC调用都运用一个定义在IDL(interface definition language, 接口定义语言)文件中的接口, 然后MIDL(Microsoft IDL)编译器对IDL文件进展编译, 编译之后会自动生成一个.h文件, 同时生成一个
36、 client stub 和一个server stub. 关于这个你可以在dos下运行得到更详细的信息.2) Client端应用程序运用client stub调用RPC runtime以实现网络上的调用. 接下来RPC运行时运用一组DLL中的一个来实现被运用的特定网络协议.3) Server端也及RPC runtime连接. 不过server端应用程序运用一些其它的函数来将自己作为一个特殊接口的效劳器进展注册(向谁注册), 并开场侦听接口的请求. 3如何用Java或其它语言解决线程同步及互斥的问题?(任选择一种语言)同步 有同步方法和同步块当有多个线程的时候,经常须要去同步这些线程以访问同一个
37、数据或资源。例如,假设有一个程序,其中一个线程用于把文件读到内存,而另一个线程用于统计文件中的字符数。由于每个操作都有自己的线程,操作系统会把两个线程当作是互不相干的任务分别执行,这样就可能在没有把整个文件装入内存时统计字数。为解决此问题,你必需使两个线程同步工作。存在一些线程同步地址的问题,Win32供应了许多线程同步的方式。在本节你将看到运用临界区, 互斥, 信号量和事务来解决线程同步的问题。1. 临界区临界区是一种最干脆的线程同步方式。所谓临界区,就是一次只能由一个线程来执行的一段代码。假如把初始化数组的代码放在临界区内,另一个线程在第一个线程处理完之前是不会被执行的。在运用临界区之前,
38、必需运用InitializeCriticalSection()过程来初始化它。其声明如下: procedure InitializeCriticalSection(var lpCriticalSection: TRLCriticalSection);stdcall;lpCriticalSection参数是一个TRTLCriticalSection类型的记录,并且是变参。只须要在lpCriticalSection中传递未初始化的记录,InitializeCriticalSection()过程就会填充这个记录。在记录被填充后,我们就可以开场创立临界区了。这时我们须要用EnterCriticalSe
39、ction()和 LeaveCriticalSection()来封装代码块。这两个过程的声明如下: procedure EnterCriticalSection(var lpCriticalSection:TRRLCriticalSection);stdcall; procedure LeaveCriticalSection(var lpCriticalSection:TRRLCriticalSection);stdcall;正如你所想的,参数lpCriticalSection就是由InitializeCriticalSection()填充的记录。当你不须要TRTLCriticalSectio
40、n记录时,应当调用DeleteCriticalSection()过程,下面是它的声明:procedure DeleteCriticalSection(var lpCriticalSection: TRTLCriticalSection); stdcall; 2. 互斥互斥特殊类似于临界区,除了两个关键的区分:首先,互斥可用于跨进程的线程同步。其次,互斥能被赐予一个字符串名字,并且通过引用此名字创立现有互斥对象的附加句柄。提示临界区及事务对象(比方互斥对象)的最大的区分是在性能上。临界区在没有线程冲突时,要用1 0 1 5个时间片,而事务对象由于涉及到系统内核要用400600个时间片。可以调用函
41、数CreateMutex ( )来创立一个互斥量。下面是函数的声明:function CreateMutext(lpMutextAtrribes:PSecurityAttributtes; bInitalOwner:BOOL; lpName:PChar):THandle; stdcall;lpMutexAttributes参数为一个指向TSecurityAttributtes记录的指针。此参数通常设为0,表示默认的平安属性。bInitalOwner参数表示创立互斥对象的线程是否要成为此互斥对象的拥有者。当此参数为False时,表示互斥对象没有拥有者。lpName参数指定互斥对象的名称。设为nil表示无命名,假如参数不是设为nil,函数会搜寻是否有同名的互斥对象存在。假如有,函数就会返回同名互斥对象的句柄。否那么,就新创立一个互斥对象并返回其句柄。当运用完互斥对象时,应当调用CloseHandle()来关闭它。 在程序中运用WaitForSingleObject()来防止其他线程进入同步区域的代码。此函数声明如下:function WaitForSingleObject(hHandle: THandle; dwMilliseconds: DWORD): DWORD; stdcall;这个函数可以使当前线程在dwMilliseconds指定的时间内睡眠,直到hHandle参数指定的对
限制150内