分布式系统复习(课后重点题型)
1.2 什么是分布式计算系统?它的实质是什么?
分布式计算系统是由多个相互连接的计算机组成的⼀个整体,这些计算机在⼀组系统软件(分布式操作系统或中间件)环境下,合作执⾏⼀个共同的或不同的任务,最少依赖于集中的控制过程、数据和硬件。
实质:分布计算系统=分布式硬件+分布式控制+分布式数据。
1.10多处理机与多计算机的区别是什么?同构多计算机和异构多计算机各有什么特点?
区别:多计算机是将多个计算机联合起来处理问题,
多处理机是在⼀个系统内集成多个处理器.
⼴义上说,使⽤多台计算机协同⼯作来完成所要求的任务的计算机系统都是多处理机系统。即多计算机系统。
狭义上说:多处理机系统的作⽤是利⽤系统内的多个CPU来并⾏执⾏⽤户的⼏个程序,以提⾼系统的吞吐量或⽤来进⾏冗余操作以提⾼系统的可靠性。
同构计算机的特点:
上校的涩涩小妻1.每个节点是⼀台计算机,包含CPU和存储器。
2.节点间的通信量较少。
3.同构计算机系统的互连有两种结构:基于总线的多计算机系统和基于交换的多计算机系统。
异构计算机的特点:
1.节点差异很⼤,节点可能是多处理机系统、集或并⾏⾼性能计算机。
2.节点间通过互联⽹络如Internet连接起来的。
3.有两种实现⽅法:采⽤分布式操作系统和中间件软件层。
1.16什么是中间件,它的功能是什么?它在分布式系统中的地位是什么?
中间件是⼀种独⽴的系统软件或服务程序,分布式应⽤软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和⽹络通讯,是连接两个独⽴应⽤程序或独⽴系统的软件
功能:命名服务 作业调度 ⾼级通信服务 资源管理 数据持久化 分布式事务
分布式⽂档系统 安全服务
地位:中间件的⼀个重要⽬标是对应⽤程序隐藏底层平台的异构型,因此中间件系统都提供⼀组完整度不同的服务集。这些服务是通过中间件系统提供的接⼝来调⽤的。⼀般禁⽌跳过中间件层直接调⽤底层操作系统的服务。
1.18分布式系统有哪些计算模式?(必考)
1.⾯向对象模式
2.⾯向服务模式
3.公⽤计算模式
4.志愿参与模式
(详见书p21-p22页)
⾯向对象模式OOM
⾯向对象模式OOM( Object Oriented Model)是基于客户/服务器模型(如CORBA,DCOM)
⾯向服务模式SOM
Web Service是这种⾯向服务模式的⼀个实例 ,SOA是⼀个较完整的软件结构体系。
公⽤计算模式UBM
⽀持e-科学的计算(如⽹格Grid等)。
志愿参与模式VJM
志愿参与模式VJM(Voluntary Join Model)是充分利⽤⽹上空闲的计算能⼒,⽀持计算量巨⼤的科学计算
2.5有哪些名字服务形式?名字服务器的组成与功能是什么?
名字服务形式:
(1)名字服务:名字服务是根据实体的名字查它的属性(地址)。
(2)⽬录服务:⽬录服务既可以根据实体的名字查实体的属性,当不知道实体名时也可以根据实体的⼀个或多个属性及其值查并得到⼀个匹配这些属性的实体列表。
(3)合约服务:是⼀种增强的⽬录服务,通过技术规范来定位⼀个命名实体。
名字服务器组成:
(1)名字服务器操作 :管理、查询操作和⾏政管理。增加、删除和修改上下⽂的⽬录项。访问优先权。
(2)名字解析 :根据名字解析请求,得到被解析对象地址。
(3)缓存 :缓存名字查询和解析的结果。
(4)多副本管理 :副本修改和副本⼀致性维护。
(5)通信 :客户端的名字代理通信和名字服务器之间
(6)数据库 :存放名字解析上下⽂或其⼦域。
名字服务器功能:管理名字命名上下⽂、实现名字查询与解析和其它名字服务器通信协调。
2.7什么是迭代名字解析,什么是递归名字解析,它们各有什么优缺点?
迭代名字解析:建议考试画图解释:
递归名字解析:也画图解释
各⾃优缺点:
递归名字解析缺点:要求每台名字服务器具有较⾼的性能。
递归名字解析优点:1.递归名字解析过程中,各名字服务器解析的缓存结果使⽤更为⾼效。2.如果主机与服务器距离很远,那么采⽤递归名字解析将更为⾼效。
迭代的优缺点与上⾯相反。
2.14什么是⽬录服务?⽬录项和属性及属性值的关系是什么?
⽬录服务:⽬录服务既可以根据实体的名字查实体的属性,当不知道实体名时也可以根据实体的⼀个或多个属性及其值查并得到⼀个匹配这些属性的实体列表。
关系:⽬录项是⼀个命名对象的信息集合。每个命名对象包括若⼲个属性,每个属性有⼀个属性类型和相应的⼀个或多个属性值。
2.17 X.500⽬录服务中定义了哪些⽬录服务协议?查询链与转交的含义是什么?
杨绣惠初恋X.500⽬录服务有4个协议:
⽬录访问协议DAP,DUA⽤来与DSA通信。
⽬录系统协议DSP,是两个DSA之间的操作协议,在DSA之间传递查询请求和响应。
⽬录信息镜像协议DISP,是DSA⽤来将信息从镜像提供者传送给镜像使⽤者。
⽬录操作绑定管理协议DOP,DSA⽤来层次操作绑定管理和镜像管理。
⽬录服务对⽤户请求的响应
成功,返回所需信息
失败,返回失败信息
转交,返回⼀个更适合的DSA
2.18轻量数据访问协议LDAP和⽬录访问协议DAP的关系和区别是什么?
1.LDAP的最初⽬标是向⽤户提供⽬录服务时避免DAP的⼤量开销。
2.LDAP的操作集对DAP做了简化,删除了read和list操作,⽤search代替。变更公司法定代表人
3.DAP是⽬录⽤户代理(DUA)与⽬录系统代理(DSA)之间的请求/响应协议。
LDAP是⽤户⽤来访问⽬录服务的⼀个协议。
4.建议再回答下LDAP的模型:
3.7什么是远程执⾏逻辑机模型?对逻辑机模型的要求是什么?
概念:客户节点上的代理进程负责远程服务节点上远程进程执⾏的初始化;远程服务节点执⾏客户机赋予的进程。这种模型成为逻辑机模型。
建议画图。
如图所⽰,它跨越⽤户节点和两个远程服务节点,在⼀个逻辑机边界内保持稳健系统,进程的⽗⼦关系和进程组的进程视图的⼀致。
要求:
(1)远程进程必须能访问驻留在源计算机上的⽂件系统。
(2)远程进程能接收逻辑机内任何进程发来的信号,也能将信号提供给逻辑机内任何进程。
(3)进程组保持在逻辑机内。
(4)基于树型的进程⽗⼦关系在逻辑机内必须得以保持。
3.13何为异步进程迁移算法?何为同步进程迁移算法?它们的优缺点是什么?
异步进程迁移算法:这类算法允许⾮迁移进程在迁移过程中继续运算,只有迁移进程被中断进⾏相关的操作。
优点:可以得到较好的执⾏效率。
成都有哪些职业学校缺点:和原有环境的兼容性不好,不能⽅便的移植。
同步迁移算法:这类算法在迁移过程中所有进程(包括⾮迁移的协同进程)都被挂起,进程之间需要同步来清空通信信道中的中途消息,所有进程均要阻塞等待迁移事件完成后,才能从中断处继续运⾏。
优点:算法简单,具有较好的可移植性和易于实现。
缺点:需要中央控制管理进程参与,所有进程都被迫中断,等待迁移过程的结束。
3.15⽐较进程远程执⾏与进程迁移两种机制。
进程远程执⾏,就是在集中或者⽹络中寻⼀个或多个合适节点来执⾏⽤户程序。
进程远程执⾏的要求:
(1)寻管理机制。
(2)进程远程执⾏是透明的,应与位置⽆关。
(3)主⼈优先原则
进程迁移是将⼀个正在运⾏的进程挂起,它的状态从源处理机节点转移到⽬标处理机节点,并在⽬标
处理机上恢复该进程运⾏。
优点:进程迁移具有灵活且应⽤⼴泛的优点,⽀持动态负载平衡、系统容错、⾼效使⽤本地资源等诸多系统功能。
缺点:进程迁移的缺点是运⾏开销相对较⼤。
进程的迁移可以⽀持:
(1)动态系统管理与维护
(2)动态负载平衡(load balancing),系统中重负载处理机转移⼀部分负载到轻负载的处理机上运⾏,使得整个集系统中的所有处理机的负载趋向均衡,从⽽提⾼系统的整体运⾏效率。
(3)系统容错
家用净水器哪种好
(4)主⼈优先使⽤原则
4.1在⽔平时间轴上表⽰阻塞发送/接收和⾮阻塞发送/接收进程与操作系统内核之间操作的时间关系。
没有具体答案,先⽅便理解⼀下阻塞和⾮阻塞:
阻塞和⾮阻塞关注的是程序在等待调⽤结果(消息,返回值)时的状态.
阻塞调⽤是指调⽤结果返回之前,当前线程会被挂起。调⽤线程只有在得到结果之后才会返回。
⾮阻塞调⽤指在不能⽴刻得到结果之前,该调⽤不会阻塞当前线程。
例⼦:
你打电话问书店⽼板有没有《分布式系统》这本书,你如果是阻塞式调⽤,你会⼀直把⾃⼰“挂起”,直到得到这本书有没有的结果,如果是⾮阻塞式调⽤,你不管⽼板有没有告诉你,你⾃⼰先⼀边去玩了, 当然你也要偶尔过⼏分钟check⼀下⽼板有没有返回结果。
这个图不知道对不对:
4.2试叙述如何实现阻塞发送/接收和⾮阻塞发送/接收,对操作系统有什么要求?
当进程到达发送原语时执⾏⼀次阻塞发送,⽆需等待对应的接收。在消息从S安全写⼊发送缓冲区前,发送进程不能返回。
当进程到达接收原语时执⾏⼀次阻塞接收,⽆需等待对应的发送。然⽽,消息从缓冲区接收到R之前,接收进程不会返回。
系统要为阻塞模式消息传送提供临时的缓冲区。
当进程到达发送原语时执⾏⼀次⾮阻塞发送,⽆需等待对应的接收。只要通知操作系统有⼀个消息要发送,发送进程就可以返回。
当进程到达接收原语时执⾏⼀次⾮阻塞接收,⽆须等待对应的发送。只要通知操作系统有⼀个消息要接收,接收进程就可以返回了。
系统要为⾮阻塞消息传送提供临时的缓冲区。
4.4对以下每个应⽤程序,你认为“⾄多⼀次”和“⾄少⼀次”语义哪个最好?
(1)在⽂件服务器上读写⽂件:⾄少⼀次。
(2)银⾏服务:⾄多⼀次
(3)编译⼀个程序:⾄少⼀次
通过发送原语send和接收原语receive实现要求操作系统能实现4种不同的可靠性语义。
⾄少⼀次:保证正确完成消息传送⾄少⼀次
⾄多⼀次:保证正确完成消息传送⾄多⼀次。在没有节点崩溃和⽹络断开情况下,它只正确地执⾏⼀次消息传送。
事务语义:它保证消息的原⼦性。不管节点崩溃或⽹络端⼝与否,它或者完成⼀次消息传送,或者什么也不做。
精确⼀次:⽆论在什么情况下,保证正确完成⼀次消息传送,不管是否有节点崩溃或⽹络断开,它接近某种程度的容错机制。
4.9什么是因果定律?它和FIFO全定序相⽐,哪个更严格?
因果定律:不管含有因果关系的消息是由同⼀个发送进程多播,还是不同发送进程多播,所有接收进程要保证先接收“因”消息,后接
收“果”消息。
FIFO:对同⼀个发送进程发出的多播消息,要求所有接收进程按发送的顺序接收,⽽对不同发送进程的多播消息可按不同顺序接收。
相⽐之下,因果排序更严格。
4.12RPC被认为是分布式最初的中间件,它能实现分布式系统的透明性吗?
行程轨迹查询p92
在执⾏RPC过程中,客户可以简单的忽略不关⼼的内容,客户只是像执⾏本地调⽤⼀样调⽤远程过程,并不直接执⾏send和receive原语,也不关⼼消息的传递,所有这些都隐藏在桩中,从⽽实现RPC的透明性。
在本地过程调⽤中,read例程是由连接器从库中提取出来,连接到应⽤程序,当read是针对远程过程时,从库中获取read例程的另⼀个版本,客户桩。在服务器端服务器也为远程客户提供⼀个read例程,服务器桩。
5.2假设两台机器的时钟每秒滴答1000次和990次,如果UTC每秒更新⼀次。两台机器时钟的最⼤偏移量是多少?
答:1000-990=10次/秒,每秒的最⼤偏移量为0.010ms。