• / 43
  • 下载费用:10 金币  

分布式导论3.ppt

关 键 词:
分布式导论3.ppt
资源描述:
第三章 进程,线程Threads 客户Clients 服务器Servers 代码迁移Code Migration 软件代理Software Agents,线程,简介 分布式系统中的线程,进程和线程,进程 一个正在执行的程序 并发透明性 所有的进程透明地共享资源 以很高的代价实现并发透明性 进程对构造分布式系统来说,粒度太大。 线程 一个正在执行的程序,或者部分正在运行的程序 A (part of a) program in execution 并发透明性相对便宜 多线程提升性能 需要更多的智力努力来开发多线程应用,多线程客户,为了实现分布透明性,多线程客户端可以将长的进程间消息传播时间隐藏起来 Example: web browser 取得主HTML之后,由不同的线程负责取得页面的各个部分 连接可以同时打开 服务器可以被复制到多台机器上 一个从客户发出的请求可以送给任意一个服务器 多线程客户端可以与任意一个服务器副本连接 大大提高效率,多线程服务器,优势 简化了服务器代码并可以实现并发 多线程服务器 File server: dispatcher/worker模式 Dispatcher负责读到一个文件操作的读请求 Server选择一个空闲的 worker 线程并让它负责执行这个请求,客户,用户界面User Interface 实现分布透明性的客户端软件Client-Side Software for Distribution Transparency,用户界面,几种形式 Simple one 与客户端的硬件结合起来 图形用户界面Graphical user interface,GUI X Window system,实现分布透明性的客户软件(1),客户端软件由可以获取分布透明性的部件组成 访问透明性Access transparency 根据服务器可以提供的服务,根据服务器方的接口定义,为客户端产生一个客户存根( client stub) 位置透明性,迁移透明性,重定位透明性Location, migration, relocation transparency 使用一个方便的名字系统 如果server移动可以方便地通知客户从而实现透明 与客户端的软件协作,实现分布透明性的客户软件(2),复制透明性Replication transparency 客户可以向所有的副本发送同样的请求,并只向客户返回一个应答失败透明性Failure transparency 客户中间件尝试一次一次地连接到特定的服务器 几次连接失败之后就尝试连接其他的服务器,服务器,通用设计问题General Design Issues 对象服务器Object Servers,分类,迭代服务器Iterative Server 服务器本身处理请求并向请求的客户端返回响应 并发服务器Concurrent Server 服务器本身不处理客户的请求,而是将请求发送给一个线程或者其他进程,发送完成之后立即等待下一个请求得到达 多线程服务器Multithread server UNIX: 用Fork为每一个新到来的请求创建一个新的进程,客户和服务器如何连接,客户端发送请求到服务器运行的那台机器的一个endpoint 或者端口(port) 如何知道endpoint? 为一些众所周知的服务全局分配endpoint Example: FTP on port 21, HTTP on port 80 如果没有预先分配endpoint 方案1:使用服务器上运行的 daemon 来跟踪当前的 endpoint 方案2:使用超级服务器(super server)监听每个 endpoint,通信中断,如何中断服务器的服务 例如开始下载一个文件,突然发现是错误的文件 客户应用突然关闭,服务器最终会断开原来的连接,认为客户应用失败 支持带外数据(out-of-band)发送 建立独立的终点 一旦收到优先处理 通常是紧急指令,服务器应该有状态还是没有状态,无状态服务器Stateless server 不保存其客户的任何信息,自身状态改变的时候无需通知客户 Example: Web server is stateless 有状态服务器Stateful server 维护其客户的信息 Example: file server (client,file) 项目 如果服务器失败,必须恢复所有的状态,对象服务器Object Server,对象服务器Object server 一个专门设计用于支持对象的服务器 对象服务器和传统服务器之间的区别 对象服务器本身不提供任何服务,而是由其管理的对象提供服务 服务器提供调用其本地对象的方法 可以通过增加或者删除对象来改变服务器的服务,对象适配器Object Adapter,激活策略Activation policy 决定如何调用对象 对象适配器 用于实现一个特定激活策略的软件 对象服务器支持不同的激活策略,工作原理,对象适配器不知道它所控制的对象的接口 可以从一个调用请求中提取出对象引用,并把这个请求分配给所引用的对象 对象适配器可以直接将请求发送给对象,并将一个调用请求交给服务器端对象的存根(Skeleton),由此存根取出请求并激活相应的方法 适配器提供invoke方法注册对象,unregister-object方法注销对象,多路复用器,,代码迁移,代码迁移 Code Migration 资源迁移 Resource Migration 异构系统中的迁移Migration in Heterogeneous Systems,代码迁移Code Migration,以进程迁移的形式发生 原因 进程可以从高负载的机器上迁移到底负载的机器上去运行,从而实现负载均衡 进程可以移动到要处理的数据附近去执行 特点 由于代码迁移获取到的性能提升经常是定性推理得到的,而没有数学模型的证明,Why Code Migration ???,实例,可以动态配置一个客户,让其可以与一个服务器通信 优点 客户不需要预先安装任何软件 缺点 安全问题,代码迁移的模型,代码迁移关心 代码,一个程序的执行状态,挂起的信号,环境的其他因素 一个进程由以下部分组成 代码段 资源段 执行段,弱移动性Weak Mobility,只迁移代码段和一些初始化代码 程序被迁移之后总是从头开始执行 容易实现 只要求目标机器可以执行这段代码就可以 Example: Java applets,强移动性Strong Mobility,将代码段和执行段迁移过去 一个正在运行的程序可以停下来,移动到另一台机器上,并从断点继续执行下去 不容易实现 Example: D’Agents,发送者发起的迁移 Sender-initiated Migration,迁移是代码当前所在的机器发起的或者由代码正在执行的机器发起的 不容易实现 Example1: 上传程序到计算服务器 Example2: 发送一个查询程序到Internet上的一个Web数据库服务器以在此服务器上执行查询,接受者发起的迁移 Receiver-initiated Migration,迁移是目标机器发起的 容易实现 Example: 下载程序到客户端,迁移进程如何执行,在目标进程中执行? 作为一个单独的进程执行? 弱移动性可以用两种形式实现 Example: Java applets 可以在浏览器进程空间中执行 可以以单独的进程形式执行,克隆进程Clone Process,远程克隆Remote cloning 使原有进程的一个副本,可以在不同的机器上运行,并与原有进程并性执行 强移动性 Example: UNIX系统的在一个远程机器上运行一个子进程,How to implement Strong Mobility ?,资源迁移Resource Migration,代码迁移的困难在于资源段不能总是很难没有任何变化地与其他段一起传送的目标机器,Is Resource Migration Easy ???,进程-资源绑定 Process-to-Resource Bindings,通过ID绑定Binding by identifier 最强的绑定形式 进程精确地需要访问某个资源 通过值绑定Binding by value 相对弱的绑定形式 如果其他资源可以提供同样的值,那么进程的执行不会受到影响 通过类型绑定Binding by type 最弱的绑定形式 一个进程只是需要某一个特定类型的资源,资源-机器绑定 Resource-to-Machine Bindings,独立的资源Unattached resources 资源可以很容易地在不同的机器中移动 例如数据文件 强制的资源Fastened resource 资源要以相对高的开销移动资源 Example: 数据库或者整个的网站 固定的Fixed resources 资源密切地绑定到一个特定的机器或者环境上,不能移动 通常是本地的设备,9种组合,,将资源与进程一起迁移,如果资源是共享的,创建一个引用来打破机器之间的边界,建立一个全局引用,,,,资源通常是运行时库,并且目标机器上通常可以提供,如果数据太大,可以建立一个全局引用,,,重新将进程绑定到一个本地可用的同类型资源上。如果本地没有这样的资源,将原来的资源复制或者移动到本地,或者建立一个全局引用、,,,,异构系统中的迁移,在弱移动性中 解决方案是对每一种潜在的目标平台编译资源代码已产生不同的代码段 在强移动性中 问题: 执行段高度依赖于它所运行的平台 执行段包含:进程私有数据,当前栈(包含临时数据、平台相关信息、寄存器值等等)以及PC的值,软件代理,分布式系统中的软件代理Software Agents in Distributed Systems 代理技术Agent Technology,定义,Software agents 软件代理是一个自治的进程,能够在其所在环境中创建并初始化变化,并可以与用户或者其它代理进行协作,分布式系统中的软件代理(1),合作代理Collaborative agent 作为一个多代理系统的多个代理通过合作完成一个共同的目标 典型应用:会议安排 移动代理Mobile agents 拥有在不同机器之间移动能力的代理 需要拥有强移动性,分布式系统中的软件代理(2),接口代理Interface agents 可以帮助终端用户以使用一个或者多个应用的代理 学习能力 信息代理Information agents 管理各种不同资源的代理 信息的管理包括排序、过滤、比较等等,Foundation for Intelligent Physical Agents (FIPA),代理平台,Agent platform:提供多代理系统所需要的基本服务:创建代理、删除代理、定位代理和代理间通信,,跟踪相关平台上的代理,为一个代理实现创建代理、删除代理和为一个特定代理查询当前endpoint,,通过目录服务代理可以查询平台上的其他代理,,代理通信管道(ACC): 关心所有不同代理平台之间的通信问题,负责与其他平台进行可靠、有序的点对点通信,,代理通信语言 Agent Communication Language(ACL),ACL是一个应用级通信协议以控制代理之间的通信 目标 一个消息的目标是请求接受方提供特定的服务 相应以前发送的请求信息 通知事件已经接收到的一些消息 用于沟通的消息Something in the act of negotiation 内容,代理通信语言 Agent Communication Language(ACL),,ACL的其他问题,发送代理和接收代理至少拥有对消息目标的同样理解 ACL message 头 确定消息目标的域 确定发送方和接收方的域 确定内容的语言或者内容编码机制的域 确定符号到其含义的标准映射的域 内容,实例,Homework,1.为什么多线程的文件服务器的效率好于单进程文件服务器? 2.一个文件服务器使用缓存,其命中率为80%。当服务器在缓存中查找被请求的块的时候,服务器中的文件操作要花费5ms的CPU时间,否则还要再花费15ms用于磁盘I/O。对于下面假设的各种情况,估计服务器的吞吐量(计算每秒钟可以平均响应多少个请求) (1)单线程 (2)单处理器计算机上运行的两个线程 (3)两个处理器计算机上运行的两个线程,Homework,3.设计一个并发服务器,它为每个到来的请求创建一个服务器进程。请分析这种设计与多线程服务器之间的利弊。 4.UNIX通过一个进程在远程机器上创建一个子进程的方法实现强移动性。解释这种方法是如何实现的。,
展开阅读全文
  微传网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:分布式导论3.ppt
链接地址:https://www.weizhuannet.com/p-9831956.html
微传网是一个办公文档、学习资料下载的在线文档分享平台!

网站资源均来自网络,如有侵权,请联系客服删除!

 网站客服QQ:80879498  会员QQ群:727456886

copyright@ 2018-2028 微传网络工作室版权所有

     经营许可证编号:冀ICP备18006529号-1 ,公安局备案号:13028102000124

收起
展开