
分布式审查材料第1章. 分布式系统是几台独立计算机的组合. 这些计算机对用户而言就像一个单一的相关系统. 硬件: 机器本身是独立的. 软件: 对用户而言,这就像处理单个系统一样. 重要功能: 1.用户看不到各种计算机之间的差异以及计算机之间通信方式的差异. 2.用户和应用程序可以随时随地以一致和统一的方式与分布式系统进行交互. 中间件: 为了使不同种类的计算机和网络看起来像一个系统,分布式系统通常通过“软件层”进行组织. 该“软件层”在逻辑上位于用户和应用程序的较高层与操作系统的较低层之间. 如图所示,这种分布式系统有时称为中间件. 注意分层分发和组件分布式系统的主要目标是使用户易于访问远程资源并以受控方式与其他用户共享资源. 透明度: 如果可以将分布式系统作为单个计算机系统呈现给用户和应用程序,则这种分布式系统是透明的. 透明性的类型: 1.访问透明性: 指隐藏不同的数据表示形式和资源访问方法. 2.位置透明性: 这意味着用户无法判断系统中资源的物理位置. 3.并发性和透明性: 共享资源时,用户不会觉得其他人正在使用他们正在使用的资源. 4.故障透明性: 用户不会注意到某个资源(也许他从未听说过该资源)不能正常工作,并且系统随后会从故障中恢复.
开放性: 一种开放的分布式系统,可以根据描述所提供服务的语法和含义的一组准则提供服务. 互操作性: 描述了来自不同供应商的系统或组件的两种实现可以共存和协同工作的程度. 这种共存与合作只能取决于双方在公共标准中提供的相应规定. 服务完成. 可移植性: 它描述了性能. 如果为分布式系统A开发了一个应用程序,而另一个分布式系统B具有与A相同的接口,则该应用程序位于B中,而无需进行任何修改. 实施的可行性. 可伸缩性: 当需要扩展系统时,必须解决许多问题. 考虑先扩. 如图所示,当我们需要支持更多的用户或资源时,我们经常会受到集中化服务,数据和算法的限制. 例如,许多服务以集中方式实现,并且它们由在分布式系统中特定计算机上运行的单个服务提供. 该解决方案的问题很明显: 当用户数量增加时,服务将成为系统中的瓶颈. 即使具有无限的处理能力和存储容量,在系统达到一定大小后,与服务器的通信也将变得困难. 结果,系统规模无法继续增长. 扩展技术: 1.隐藏的通信等待时间更适合于区域扩展. 基本思想: 尽量避免等待远程服务响应请求.
例如,当请求远程计算机上的服务时,除了等待服务器响应之外,请求方还可以利用这段时间完成其他工作. 本质上,以这种方式构建的应用程序使用异步通信. 当响应到达时,应用程序生成一个中断并调用一个特殊的处理程序来处理先前发出的请求. 2.分发技术分发技术将一个组件分为多个部分,然后将它们分发到系统的中央区域. 3.缓存缓存是一种特殊的复制形式. 与复制一样,缓存通常会在访问资源的客户附近复制资源. 但是,与复制不同,缓存是由要访问资源的客户端而不是资源所有者确定的. 缓存和复制存在严重缺陷,可能会对可伸缩性产生不利影响. 缓存或复制后,由于资源有多个副本,因此修改其中一个将导致它与其他副本不同,从而导致一致性问题. 集群计算: 底层硬件由通过高速LAN紧密连接的相似的工作站或PC组组成. 此外,每个节点运行相同的操作系统. 网格计算: 分布式系统的此子组通常内置于计算机系统联盟中,其中每个系统都属于不同的管理域,并且在硬件,软件和部署网格技术方面也存在很大差异. 光纤层: 提供到特定站点的本地资源的接口.

这些接口已经过定制,可以在虚拟组织中共享资源. 连接层: 它由通信协议组成,以支持网格事务处理并扩展多种资源的使用. 例如,一种用于在资源之间传输数据或从远程位置访问资源的协议. 此外,连接层还具有用于用户和资源认证的安全协议. 资源层: 负责管理单个资源. 它使用连接层提供的功能直接调用光层可用的接口. 聚合层: 负责处理对多个资源的访问,通常包括诸如资源分发,任务分配和对多个资源的调度以及数据复制之类的服务. 连接层和资源层由相对较小的标准协议集组成,而聚合层由许多用于不同目的的不同协议组成. 应用层: 由应用组成. 第2章体系结构样式: 1.层次结构体系2.基于对象的体系结构3.以数据为中心的体系结构4.基于事件的体系结构客户端-服务器模型分为三层: 1)用户界面2)处理层3)数据层多层体系结构点对点体系结构: 在结构化的点对点系统中,覆盖网络是确定性过程. 这个最常用的过程由分布式哈希表组织. 超级对等方: 可以维护索引或充当代理的节点. 控制管理多个常规对等方. 边界服务器系统此系统部署在Internet上,服务器位于网络的“边界”.
此边界由公司网络和实际Internet之间的分界线形成. 协作分布式系统混合体系结构主要部署在协作分布式系统中. 在许多重要的系统中,主要问题是首先启动,因为经常部署直通客户端-服务器结构. 将节点添加到系统后,可以使用完全分散的组织结构进行协作. 自主计算: 以高级反馈控制系统的形式组织分布式系统,从而实现自动自适应转换. 也称为自治系统. 自适应多样性: 自我管理,自我恢复,自我配置,自我优化等. 反馈控制模型反馈控制系统的核心由需要管理的组件组成. 这些组件可由可控制的输入参数驱动,并受干扰或噪声输入的影响. 系统本身需要监视,因此系统的各个方面都需要进行测量. 但是,实际测量难以实现,并且需要逻辑规模预测组件. 控制回路的核心部分是反馈分析组件,该组件分析上述测量值并将它们与参考值进行比较. 包含各种算法来确定适应性. 第3章为什么使用线程?尽管进程构成了分布式系统的基本构建块,但实践表明,由操作系统提供的用于构建分布式系统的进程的粒度仍然太大. 在粒度方面,将每个进程细分为几个控制线程更为合适,这样可以更轻松地构建分布式应用程序并获得更好的性能.
进程间通信机制IPCIPC需要内核干预. 从用户模式切换到内核模式S1,在内核中执行上下文切换S2,然后从内核模式切换到用户模式S3. 完成过程之间的切换. 多线程客户端隐藏通信时间延迟的常规方法是在启动通信后立即执行其他工作. 示例: Web浏览器. Web浏览器通常在开始获取HTML页面后立即显示它们. 为了尽可能隐藏通信时间延迟,某些浏览器开始显示接收到的数据. 首先显示文本,并提供诸如页面滚动的功能,同时还获得组成页面的其他文件(例如图像). 用户不必等待浏览器获取整个页面的所有组件就可以查看页面. 从效果来看,Web浏览器似乎同时处于多任务状态. 一旦获得主HTML文件,就可以激活多个独立线程,每个线程负责获取页面的每个部分. 每个线程都建立与服务器的单独连接以获得数据. 多线程服务器虚拟化计算机接口1)2)3)4)它由机器指令组成. 可以由任何程序启动的硬件和软件均由机器指令组成. 只有特权程序(例如OS)才能刺激操作系统提供的系统调用. 接口的组成. 由库调用组成的接口通常形成所谓的应用程序接口. 生活. 程序编程结构(API).

在许多情况下,上述系统调用被API隐藏. 虚拟化的本质是模仿这些接口的行为. 有两种虚拟化方法. 第一: 您可以构建一个运行时系统,该系统实质上提供了一组抽象指令集来执行程序. 指令可以通过翻译或仿真来执行,就像在Unix平台上运行Windows应用程序一样. 第二: 提供一个系统. 使它成为完全屏蔽硬件但提供具有相同指令集(或其他硬件)的接口的层. 该接口可以同时提供给不同的程序. 可以有多个不同的操作系统在同一平台上独立并发运行. 客户端软件和分发透明性客户端通过将呼叫请求转发到每个服务器的副本来实现复制透明性. 服务器组织结构: 1)迭代服务器: 自行处理请求,并在必要时将响应返回给发出请求的客户端. 2)并发服务器: 它不处理请求本身,而是将请求传递给独立线程或其他进程进行处理,并立即返回并等待下一个请求. 或者,每次接收到输入请求时,都会产生一个新的流程来处理它. 多线程服务器是一种特殊情况. 3)状态无关的服务器: 不保存其客户的状态信息,也不将其状态更改通知任何客户. 例如,Web服务器仅响应输入的HTTP请求,而在处理请求时完全忽略用户的存在.
软状态: 有一种特殊的独立于状态的设计,其中服务器维护软状态信息. 服务器仅在短时间内维护客户端状态. 时间到期后,相关的客户信息将被删除,成为无状态行为. 4)与状态相关的服务器: 保留客户端信息,直到将其明确删除为止. 就像文件服务器一样,它允许客户保留文本的本地副本,甚至执行更新操作. 端口: 客户端始终向服务器计算机上的端点发送请求. 该端点是端口. a)许多服务不需要预先分配端点. 例如,时间服务器可能使用由本地操作系统动态分配给它的端点. 在这种情况下,客户必须首先查询端点号. 一种解决方案是在运行服务器的每台计算机上运行特殊的守护程序. 该守护程序负责跟踪由同一台机器上的服务器实现的每个服务使用的当前端点. 守护程序还会在已知端口上侦听. 客户端通过该端口联系守护程序,请求指定服务器的端点号,然后联系服务器. b)超级服务器最好侦听与这些服务关联的所有端点,而不是跟踪这么多的被动进程. 接收到请求后,将生成一个进程以进一步处理该请求,并且在处理完成后会自动退出该生成的进程. 中断服务器的工作: 处理通信中断的更好方法是在开发客户端和服务器程序时考虑对带外数据发送的支持.
带外数据是服务器在处理客户端发送的所有其他数据之前必须处理的数据. 一种方法是让客户端将带外数据发送到另一个控制端点,然后服务器侦听该端点以及该端点进行常规数据传输. 另一种方法是通过原始请求使用的连接发送带外数据. TCP转发原理: 当交换机接收到TCP连接请求时,它将找到处理该请求的最佳服务器,并将请求数据包转发到该服务器. 服务器依次将响应发送到客户端,并将交换机的IP地址放入数据段中. 第4章通讯OSI模型用于支持开放式系统间通讯. 开放系统通过一系列标准规则与其他开放系统进行通信的系统. 每一层都指定到上一层的接口. 该界面包括一组操作,这些操作定义了提供给用户的服务. 面向连接的协议: 消息的发送者和接收者必须首先显式建立连接,并且可能还需要协商采用的协议,然后才能进行数据交换. 通信完成后,必须终止连接. 如电话系统. 无连接协议: 交换数据之前无需建立连接过程. 消息的发件人仅在准备就绪时才需要传输第一条消息. 例如将信件放入邮箱. 如果机器1上的进程A要向机器2上的进程B发送消息,则该消息将到达机器1上的应用程序层,并逐一传递. 对于每一层,在消息之前都会添加一个标题.

第n层协议使用第n层添加的标头中的信息. 一些图层还需要添加预告片. 物理层仅负责传输位,而数据链路层负责检查传输错误. 数据链路层在每个帧的开头和结尾放置特殊的位以标记头部和尾部,并以某种方式将帧中的所有字节相加以计算校验和. 将校验和放入框架中. 接收到消息后,接收者重新计算校验和并将其与原始校验和进行比较. 最广泛使用的网络协议是无连接Internet协议(IP). 远程过程调用包括以下步骤: 1)客户端进程以正常方式调用客户端存根2)客户端存根生成消息,然后调用本地操作系统3)客户端操作系统将消息发送到远程操作系统系统4)远程操作系统将消息传递到服务器存根5)服务器存根提取参数,然后调用服务器6)服务器执行所需的操作,并在操作完成后将结果返回给服务器存根7 )服务器存根将结果打包为消息分布式系统 原理与范型pdf,然后调用本地操作系统8)服务器操作系统将包含结果的消息发送到客户端操作系统9)客户端操作系统将消息传递给客户端存根10)客户端存根从消息中提取结果,并将其返回给调用它的客户端进程. 传递参考参数?异步RPC在异步RPC中,服务器在收到RPC请求后立即向客户端发送响应,然后调用客户端请求.
响应是向客户端确认服务器已准备好开始处理RPC请求. 从服务器接收到确认消息后,客户端将不再阻塞,并将继续执行. 延迟的同步当RPC远程服务器处理请求时,客户端同时执行其他操作. 当服务器处理请求时,它将返回结果以中断客户端,并且服务器端将成为发送端,以实现第二个异步RPC. 套接字: 通信端点. 如果应用程序要通过基础网络发送一些数据,则可以将该数据写入套接字,然后从套接字读取数据. 服务器通常执行前4个原语,并通常按照图中所示的顺序执行它们. 调用套接字原语时,调用方将为特定的传输协议创建一个新的通信终结点. MPI是高级的: 程序的硬件独立性需要导致MPI的引入. MPI专为并行应用而设计,专为瞬态通信而设计. 它直接使用基础网络. 消息队列系统: 面向消息的中间件服务. 为持久性异步通信提供多种支持. 本质上是提供消息的中间存储功能,以便消息的发送方和接收方在消息传输中不需要保持活动状态. 与套接字和MPI的重要区别在于,其设计目标通常是支持具有较少时间要求的那些消息传输,这不适合在几秒钟甚至几微秒内完成传输. 当一条消息进入接收者的消息队列时,接收者不必运行.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-146669-1.html
五角大楼一再扬言
西方列强普遍认为北阳水师可以轻松战胜日本海军