欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    8网络与分布式系统_50980834.ppt

    • 资源ID:82769601       资源大小:377.50KB        全文页数:65页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    8网络与分布式系统_50980834.ppt

    第 8 章 网络与分布式处理8.1 分布式系统概述8.2 网络服务器8.3 进程迁移8.4 分布式进程通信8.5 分布式进程管理8.6 分布式进程死锁问题8.1 分布式系统概述 分布式计算机系统(Distributed computer systems)是由多个分散的计算机经互连网络连接而成的计算机系统。其中各个资源单元(物理的或逻辑的)既相互协同又高度自治,能在全系统范围内实现资源管理,动态地进行任务分配或功能分配,并能并行地运行分布式程序。分布式计算机系统是多机系统的一种新形式,涉及资源、任务、功能和控制的全面分布。分布式能力包括以下几个方面 通信结构。通信结构是支持各个独立计算机连网的软件。它提供支持分布式应用,例如电子邮件、文件传输和远程终端的存取。网络操作系统。网络中的各台计算机配置各自的操作系统,网络操作系统把它们有机地联系起来。分布式操作系统。它是为分布式计算机系统配置的操作系统,是网络中计算机共享使用的一个公共的操作系统。在用户看来,它像一个普通的集中式操作系统。但它向用户提供透明存取许多计算机上资源的能力。返回上一页分布式计算机系统与计算机网络的主要异同 在计算机网络中,每个用户或任务通常只使用一台计算机,若要利用网络中的另一台计算机,则需要远程注册。在分布式计算机系统中,用户进程在系统内各个计算机上动态调度,并根据运行情况,由分布式操作系统动态地、透明地将机器分配给用户进程或任务。在计算机网络中,用户知道它们的文件存放在何处,并用显示的文件传输命令在机器之间传送文件。在分布式计算机系统中,文件的放置由操作系统管理,用户可用相同方式访问系统中的所有文件而不管它们位于何处。在计算机网络中,各节点计算机均有自己的操作系统,网络内的进程调度通过进程迁移和数据迁移实现。在分布式计算机系统中,每个场点上运行一个局部操作系统,场点相互协同,合作平衡系统内的负载。在计算机网络中,系统几乎无容错能力,在分布式计算机系统中有系统自动重构、适度降级使用及错误恢复功能。两者透明性的程度和级别不同。就资源共享而言,计算机网络和分布式计算机系统是类似的。u通信结构 当计算机、终端和其他数据处理设备交换数据时,涉及的过程是非常复杂的。下面以连网的两个计算机之间进行文件传输为例,说明实现时需要的几个任务:源系统必须告诉网络目标系统的标识。源系统必须测定目标系统是否已做好接收数据的准备。源系统上的文件传输应用必须判明目标系统上的文件管理程序是否准备接收并存储这个特定用户的文件。(4)如果两个系统的文件格式不一致,其中之一必须实现文件格式的转换功能。下图给出了文件传输技术的一个实现方法。它由三个模块组成:文件传输模块、通信服务模块和网络存取模块。一个简单的通信结构 通常,通信涉及三个方面:应用、计算机和网络。这里的应用是指涉及两个计算机系统之间进行数据交换的分布式应用。电子邮件和文件传输是这些应用的典型例子。计算机是支持多任务并发和采用多道程序设计技术运行这些应用的,并且这些计算机是通过网络相互连接的。被交换的数据通过网络从源应用所在计算机传送到目标应用所在计算机。因此,一个通信任务组织成相对独立的三层:网络存取层、传输层和应用层。网络存取层 网络存取层负责的是计算机与其连接网络之间的数据交换。发送计算机必须向网络提供目标计算机的地址,以便网络为发往指定目标的数据选择路由。同时,发送计算机希望调用网络提供的一些服务,如优先级服务等。这一层的软件依赖于所使用的网络类型:对于线路交换、成组报文交换、局域网和其他网络都已开发了各种不同的标准。例如x.25是存取成组报文交换网的标准。因此,将网络存取必须做的这些功能构成一个独立层是比较合理的。这样网络存取层之上的其他通信软件不必关心所用网络的细节,不管使用什么网络连接计算机,较高层的软件都应能正确工作。传输层 传输层的功能是,不管交换数据的各个应用性质是什么,都应该确保可靠地进行数据交换。即确保数据按照发送的顺序到达目标应用。传输层为所有应用提供了可靠的传输机制。应用层 应用层包含了支持各用户应用所需的逻辑。对于每个不同的应用,如文件传输,都需一个独立的模块支持。每个计算机都包含了网络存取层和传输层的软件以及支持一个或多个应用的应用层软件。为了成功地进行通信,整个系统中的每个实体都必须有一个惟一的地址,实际上需要两级编址:网络上的每个计算机必须有一个惟一的网络地址,以便网络将数据发送给正确的计算机。每个计算机上的每个应用必须有一个惟一的地址,以便传输层将数据发送给正确的应用。这里的应用地址叫做服务存取点。通过它,每个应用可以独立地访问传输层的服务。不同计算机上同一层的模块使用协议彼此进行通信。协议是一组规则或约定。它用来控制两个实体为交换数据进行合作的方法。协议的规范详细说明了可以执行的控制功能、通信的使用的格式和控制代码以及两个实体必须遵循的方法。为了清楚地理解两个计算机采用协议的通信过程,让我们跟踪一个简单的操作。设计算机A上与SAP1相关的应用希望发送一个信息给计算机B上与SAP2相关的另个应用。A上的应用将要发送给B的SAP2的信息递交给它的传输层,传输层将这个信息传递给网络存取层,指示网络将这个信息发送给计算机B。网络不需要知道接收这个信息的目标服务存取点的标识。只要知道接收信息的目标计算机就可以了。为了控制这个操作的实现,必需的传输控制信息以及用户数据如下图所示。应用层的发送应用程序产生一个数据块并将它传送给传输层。传输层可以将这个数据块分解成两个便于管理的较小的块,并给这样的数据块追加一个传输头,它包含了协议控制信息。较高层来的数据和控制信息的组合叫做协议数据单元(PDU)。每个传输PDU的头包含了计算机B的同层传输协议要使用的控制信息。这个头中存储的信息项通常包含下面一些内容:目标SAP。当目标传输层接收到传输协议数据单元时,它必须知道数据将要发送给它的哪一个应用。序列号。因为传输协议正在发送一系列协议数据单元,为此,对其发送的数据单元进行顺序编号。错误检测码。发送传输实体可以计算和插入一个错误检测码,以便接收者能确定传输是否有错。若有错,放弃这个PDU,请求重发。之后,传输层将每个PDU传送给网络层,以便将它进一步发送给目标计算机。为了满足这个发送请求,网络存取协议必须将数据和传输请求传送给网络。同样,这个操作也需要控制信息。为此,网络存取协议为从传输层接收的数据追加一个网络存取头,创建一个网络存取PDU。这个头通常包含下面一些信息:目标计算机地址。网络必须知道数据应发送给网上的哪个计算机。设施请求。网络存取协议可能要求网络使用一些设施,如优先级服务等。下面以前图为例,说明从计算机A向计算机B传输一块数据时,各模块之间的交互以及使用的命令。当计算机A中的某个应用要向计算机B的SAP2相关的应用发送一个文件的记录时,使用命令:A.send(Dest.Host,Dest.SAP2,record);传到传输层时,传输层模块将目标服务存取点(Dest.SAP2)和其他控制信息追加到记录上,创建一个传输协议数据单元(T_PDU)。然后用传输发送命令(T.send)再向下传送给网络存取层:T_send(Dest.Host,T_PDU);网络存取层模块使用这个信息构造网络存取协议数据单元。假定网络是x.25分组报文交换网络。这时,网络存取协议数据单元是一个x.25的数据包。网络存取层附加的头信息应该包括连接计算机A和B的虚拟电路的编号。网络接收计算机A的数据报文并发送给B,B中的网络存取模块接收这个报文,将报文的头信息拆下,再将封装好的传输协议数据单元传送给B的传输层模块。传输层再将传输PDU的头信息拆下,检查无误时,根据目标SAP2,将封装好的记录发送给适当的应用,即B中的文件传输模块,最终完成记录的发送工作。返回上一页u开放式系统互连通信结构 国际标准化组织(ISO)在l977年建立了一个分委员会来专门研究这样一种体系结构开放式系统互连OSI(Open System Interconnection)模型。国际标准化组织(ISO)分委员会的任务是定义一系列层和每一层应完成的服务。OSI参考模型的特性可描述为:这是一种将异构系统互连的分层结构。它提供了控制互连系统交互规则的标准骨架。它定义了一种抽象结构,而不是具体实现的描述。不同系统上相同层的实体称为同等层实体。同等层实体之间通信由该层的协议管理。相邻层间的接口定义了原语操作和低层向高层提供的服务。每层完成所定义的功能,修改本层的功能不影响其他层。两个实体间的直接数据传送在最低层实现,且以位流的形式传送。物理层 国际标准化组织为开放式系统互连的七层参考模型中的物理层的定义如下:“物理层为启动、维护和释放数据链路实体之间二进制位而进行的物理连接提供机械的、电气的、功能的和规程的特性,这种物理连接允许进行全双工或半双工的二进制位流传输。”机械特性。它规定了数据传输设备和传输介质之间连接时所采用的可接插连接器的规格尺寸,连接器的引脚数以及信号线的排列情况等。电气特性。它规定了在物理连接器上传输比特流时线路上信号“1”和“0”电压的大小、信号维持的时间、传输速率和脱离限制等。功能特性。它规定了物理接口上各条信号线的功能分配和确切定义。物理接口上的信号线通常有:数据线、控制线、同步线和地线等。规程特性。它定义了利用信号线进行比特流传输时使用的一组操作过程,即各信号线工作的规则和各信号时序的先后顺序。最通用的物理层接口标准之一是RS-232-C和之后的美国电子工业协会(EIA)提出的EIA RS-232-C接口标准。RS-232-C接口是一个具有25针的连接器,可采用单向、半双工、全双工等多种传送方式。数据链路层 数据链路层协议的主要功能是,在相邻的两个计算机之间建立、维持和释放一条或多条数据链路。其主要工作是将数据按规定的格式(帧)组织起来,进行传输,保证数据传输无差错,按顺序到达目的地。在链路上实现帧的同步,以及进行差错控制、流量控制和顺序控制等。HDLC(高级数据链路控制协议)是ISO制定的一个标准。通常用在计算机与计算机链路和计算机与终端链路连接上。HDLC协议涉及到各种类型的操作方式,通常使用的有三种方式:正常响应方式(NRM)。这种方式用于一个主站(计算机)和一个或多个次站(终端)连接的多点式结构。异步响应方式(ARM)。仅用于一个主站和一个次站的点到点的连接。异步平衡方式(AHM)。这种方式主要用于通信双方都是混合站的结构。混合站的主要功能是既要发送命令帧,又要接收命令帧,并负责整个链路的控制。返回上一页网络层 网络层提供了计算机之间通过某类通信网的信息传输。它接收来自数据链路层的服务,并向传输层提供服务。网络服务负责建立、维护和终止网络连接手段。网络中任意两台主机的通信都是由通信子网完成的。网络层则是通信子网的最高层。网络层直接为主机服务,这种服务分为两大类:虚拟电路和分组数据报文交换。虚拟电路服务是指两个主机通信之前,网络层负责建立一条通路,称为虚拟电路。虚拟电路一经建立,就为某一对主计算机服务。数据传输结束时,拆除该电路。分组报文服务是指网络层直接从传输层接收报文并负责传送。网络层应负责为传送的报文选择路由,以便使各分组报文能正确到达目的地。如果子网使用数据报文服务,则对每一个到达的报文分组都需作一次路由选择。但对子网采用虚拟电路服务时,只有当一条新的虚拟电路建立时才做一次路由选择。路由选择要求做到正确、简单、牢靠、稳定、公正和最优化。网络层还负责对死锁和拥挤的控制。网络层另外还提供网际互联的服务。传输层 传输层的功能是在通信用户之间提供点到点的可靠的通信服务。传输层提供的服务主要有:传输连接管理和数据传输。所谓传输连接管理就是在两个传输用户之间建立和维护一条畅通的传输通道。数据传输服务则要求在一对传输用户之间提供相互交换数据的方法。为了保证用户进程之间的可靠的点到点传输通信,传输层必须具备以下主要功能:将传输层所给的传输地址映射到网络层的网络地址。将多路的点到点的传输连接变成一路网络连接。传输连接的建立或释放。差错检测和恢复。对传输的信息进行分块。对传输的数据进行缓冲和流量控制。完成给定的传输服务数据单元的传送。会话层 会话层接收从传输层来的任务,同时又为表示层服务。会话层的主要任务是提供一种有效方法,以便组织并协调两个表示实体进程之间的对话,并管理它们之间的数据交换。会话层的功能包括:在两个表示实体之间建立会话连接,以进行正常的数据传输。控制两个表示实体之间的数据交换,限制和同步数据操作的会话服务。恢复功能。会话层可以提供一个同步检查点机制,以便两个检查点之间产生某类错误时,会话实体可以重新发送自上一检查点以来的全部数据。一个表示层实体同另一个表示层实体之间建立会话连接时必须满足下列两个条件:它主动发起一个会话连接;接收对方提出的会话连接。表示层 表示层向上为应用层提供服务,向下接收来自会话层的服务。表示层的目的是对应用层送来的命令和数据内容加以解释说明,并对各种语法赋以应用的含义,以便使从应用层送入的各种信息具有明确的表示意义。每种计算机都有自身的描述数据的方法,所以不同类的计算机之间必须进行数据转换才能相互了解。表示层的任务就是对发送方内部格式的数据结构进行编码,使形成的比特串适应于传输。然后在目的地接收方进行解码,转换成所要求的格式。表示层有四个主要功能:提供执行会话层原语的方法;提供说明复杂数据结构的方法;管理所需要的数据结构的集合:数据转换工作。由此可见,表示层是为用户进程提供服务的,这些服务项目包括密码技术(加密和解密)以及文本压缩(减少通信传输的信息量)等。应用层 应用层为应用程序提供存取OSI环境的手段。这一层包含支持分布式应用的各种管理功能和公用的机制。诸如虚拟终端服务和协议、文件传送、电子邮件的访问和管理的服务和协议等。所谓虚拟终端就是把各种实际的不同类型的终端映射成一个标准终端,而这种标准终端是抽象的、虚拟的。计算机网络要能支持这种虚拟终端。用户只能看到一个叫做虚拟终端的实体,由这个虚拟终端进行服务,使这样两个相关的实体根据一定的协议相互配合工作,这就是虚拟终端协议。所谓文件传输协议是指将一个文件从一个开放系统传送到另一个开放系统时,利用下面六层提供的服务,在两个交换文件的系统之间建立一条逻辑的通路,以便实现文件的存取、访问和管理。8.2 网络服务器 网络,特别是局域网的优点之一是能够共享价格昂责的资源,如辅存设备和高质量的打印机。通常的方法是在局域网上提供一个或多个服务器。u服务器的结构 下图所示的服务器是专为网络提供共享资源、管理网络通信的局域网中的核心设备。这类设备通常由一台或多台专用的微型计算机构成,控制一台或多台可共享的资源。返回上一页它的一般结构如下图如示。服务器与网络上的其它工作站一样,它有一个网络接口模块,该模块包括了与局域网交互所需的硬件和软件;用户工作站也包括了一个网络接口。此外它还包含了与服务器通信的一些网络逻辑。这种结构的服务器功能强,而且灵活,其功能表现在它可用于控制各种类型的资源。u磁盘和文件服务器 连到局域网上的文件服务器是一个独立的计算机或一组计算机,以便向局域网上的其他所有系统提供公共的服务。典型的文件服务器是一台高档微机或一台小型计算机,它具有大容量的硬盘,用来存放网络中共享的程序和数据,还可为无盘工作站提供存放私人数据和程序的磁盘空间。除此之外,服务器还可提供其他有用的服务:自动备份和恢复。备份是指周期性地将文件系统内容拷贝到后备盘或磁带上,以防止存储介质故障、用户使用错误和病毒破坏。备份必须定期地进行,个人计算机或工作站上的普通用户不应该担负这个工作。用户流动性。应该允许一个用户在不同的时间不同地点使用不同的计算机。一个文件服务器应提供一个灵活的独立于工作站的工作环境。不必迁移文件存储介质(磁盘或磁带)。与其他文件服务器进行连接。一个组织或机构在一个或多个位置可能有许多局域网。每个局域网部有一个文件服务器。每个文件服务器中都应该实现文件传输功能,以便允许用户存取其他LAN上的文件。u文件高速缓冲存储器的一致性问题 当使用文件服务器时,由于网络传输的延迟,使得文件IO的性能相对于本地文件的存取可能显著地下降。为了减少这个性能损失,各个独立的用户系统可以使用文件高速缓冲存储器保留最近存取的文件记录。由于局部性原理,使用本地的文件高速缓冲存储器将大大减少对远程服务器必须进行的存取次数。下图给出了一组连网的工作站上文件缓冲的一个典型的分布式机制。图8-7给出了一组连网的工作站上文件缓冲的一个典型的分布式机制。当高速缓存总是包含了远程数据的精确拷贝时,高速缓存是一致的。当远程数据已被修改,相应的本地的已过时拷贝还没有废弃时,高速缓存就变为不一致的。当一个客户机修改了由其他客户机高速缓冲的文件时,这种情况也可能发生。这时的困难实际出在两级上。如果客户机采用将对文件修改立即写回到服务器的策略,那么具有这个文件有关部分的高速缓冲拷贝的任何客户机将有着作废的数据。如果客户机对文件修改推迟写回到服务器,这将使问题变得更坏。这样,文件服务器本身就包含了过时的文件版本,若此时有一个对文件服务器上该文件的新请求,获得的将是作废数据。使本地高速缓行的拷贝保持远程数据的最新修改的问题就叫做高速缓存的一致性问题。解决一致性问题的最简单方法是对文件采用加锁技术,以防止多个客户机同时存取一个文件。这是以牺牲性能和灵活性为代价而保证数据一致性的方法。更有效的方法是允许任意多的进程同时打开一个文件读并创建各自的客户机高速缓存。但当有一个对服务器的请求是打开文件写请求,而其他进程打开文件是读存取时,文件服务器采取两个活动。首先,它通知写进程,它可以保持一个高速缓存,但当它修改完时应立即将所有修改块写回到服务器。至多允许有一个这样的客户机。其次,服务器通知所有读进程正在打开的文件不再允许高速缓存。返回上一页u打印机服务器 打印机服务器可以处理许多用户工作站的打印请求。这不仅可以节省打印费用,而且使得打印更加容易和打印速度更快。打印机服务器使用的是操作系统技术中最早使用的技术之一Spooling技术。Spooling是将对相对慢的打印机请求重定向到快速磁盘上的软、硬件结合的一种技术。当有打印请求时,先将每个数据文档或文件假脱机到磁盘,并将这些文件按先进先出的方法组织成队列。服务器从磁盘上一次一个地检索文件并进行打印。Spooling技术克服了直接使用打印机时存在的两个问题。被打印的资料可以比主存的可用空间大得多。这样,它可以存储在磁盘上,并一次读入一块地进行打印。当打印机正在打印一个文件时,多个用户仍可以泄放打印请求。这些请求可以排队等待打印机的服务。u调制解调器服务器 加到LAN上的一个简单而有效的能力是调制解调器服务器。如果用户希望访问一个远程信息检索或电子邮件系统,最经济的办法是通过公用电话系统将它们与所希望的目标连结在一起。为此需要在客户机与电话系统之间安装一台调制解调器服务器。因为任何时间内只有一小部分用户需要通过调制解调器存取,因此,只要用少量的调制解调器就足以支持LAN上的用户团体。用户向服务器请求存取调制解调器并提供一个电话号码,服务器启动调制解调器,拨号、并报告结果。如果呼叫成功,向用户提供一个连接。一旦连接成功,用户通过这个连接就可以发送或接收数据,就好像用户正在直接使用调制解调器一样。用户可能感觉到的真正差别是通过调制解调器传来的数据是数据报文。即当数据通过调制解调器到达服务器时数据被缓冲,并以数据包的形式发送给用户。因此,用户在屏幕上看到的是一个字符组数据流。8.3 分布式进程管理返回上一页u分布式进程 分布式进程是能够真正在多个处理机上同时运行的诸进程。u分布式进程的状态及其转换 分布式环境下,进程的状态有执行态、等待态、挂起态和就绪态四种。执行态 当进程占有处理机正在执行指令的状态称为运行态。进程在整个运行周期不一定都是在同一个处理机上运行。等待态 进程运行过程中,因等待某种事件的发生所处的一种状态称为等待态。挂起态 进程进入等待态只不过是一个暂存的过渡,此后必须进入挂起态,暂时停止执行。此时,进程必须释放它占用的资源,当该进程再次运行的条件满足时,进程由挂起态转换为就绪态。就绪态 当进程已符合运行要求,只是因为系统中当前的进程个数已超过了处理机的个数而不能进入运行时,进入就绪态;或者是当进程运行的时间超过了系统预分的时间时,系统就强制其进入就绪态,排队等待下次运行机会。u处理机管理 在分布式系统中,处理机的状态及其转换、处理机通信和处理机分配等,需要专门讨论和解决。处理机的状态及其转换 处理机的状态与进程的状态不完全一样,通常处理机只有空闲、等待和运行三种状态。空闲态:系统开始工作之后,尚未分到任务的处理机状态,或虽分配到任务,但已完成了的处理机状态,均认为是处于空闲状态。等待态:处理机在执行任务期间,所运行的进程由于某种原因被挂起但又没有新的进程运行时的状态。运行态:处理机接受任务后且正在执行进程时的状态。三种状态的转换可通过操作原语进行控制,例如可用wait原语控制进入“等待”状态,用continue原语控制进入“运行”态,而当处理机完成任务后,便回到了“空闲”态。当然,最理想的情况是,设法使所有处理机都经常保持忙碌状态。处理机通信 分布式系统中各处理机的通信一方面表现在进程运行期间的诸进程之间的通信上;另一方面还表现在无进程运行或进程运行已经结束时的信息交换上。处理机通信,一般有“点点”方式和“广播”方式两种。处理机分配和调度 一种可供选择的方法如下:当某台处理机在执行任务的过程中要求启动一并行任务时,它就把“需要一台可供使用的处理机”的请求消息连同自己的地址广播出去。这一消息被存入所有接收到请求消息的处理机的消息缓冲区中,直到发出请求消息的处理机自动撤消为止。若有空闲的接收处理机,则它马上响应请求,投入运行,即转执行;若暂无空闲的接收处理机,则接收处理机的消息缓冲区继续保存发出请求消息的处理机的地址,且根据“就近原则”,仅保存距离该接收处理机最近的那个发出请求消息的处理机地址。当接收处理机可接受任务时,就在其局部操作系统控制下,在消息缓冲区中找到发出请求消息的处理机地址,并向发出请求消息的处理机发应答消息及自己的地址。发出请求消息的处理机收到应答消息后,立即转入本机局部操作系统,并向对方发出任务分配消息,让它执行任务,然后回到原来的应用程序。任务分配信息有一特别标志位,当该位为“1”时表示任务是其他机上的;当该位为“0”时,表示此任务是本机上的。任务的最后语句总是return(p),执行到此语句且特别标志位为“1”时,就产生局部操作系统的内部中断,然后把“任务已完成”的信号传送给发出请求消息的处理机,同时该接收处理机返回到空闲态。当没有可供使用的接收处理机时,发出请求消息的处理机把派生的任务P作为一道普通子程序来执行,当执行到return(p)时,因特别标志位为“0”,便知道该任务是本机的任务,因而不会产生中断,而只是把return(p)作为普通的返回命令实现从子程序返回主程序。当任务已分配一台可供使用的(接收)处理机但又未执行完时,该机的局部操作系统使发出请求消息的处理机进入等待状态,后者在收到该接收处理机发来的完成信号后,再从等待态回到运行态。返回上一页8.4 进程迁移 进程迁移是指为了使进程在另一个机器上执行,源机器向目标机传送足够数量的进程的状态信息。在分布式系统中,希望进程迁移的理由:负载均衡。为了改善整体性能,可以将进程从负载重的机器上迁移到负载轻的机器上。通信性能的改善。为了减少进程交互期间的通信代价,可将频繁交互的各进程迁移到同一个节点上。此外,当一个进程正在对某一个或一组文件进行数据分析时,若文件的尺寸大于进程尺寸,最好将进程迁移到数据所在地,可用性。长时间运行的进程,在预先通知它可能由于故障被停止运行之前需要迁移,以便以后某个时间可以继续在当前系统上重新启动继续运行。利用专用的能力。一个进程从一个节点迁移到另一个特定节点上,以便利用这个节点上惟一的硬件或软件能力。u进程迁移机制 在设计进程迁移设施时,需要从以下几个问题考虑:由谁来启动进程的迁移。应该迁移进程哪些部分的信息。为进程迁移时,对于尚未完成的信息和信号如何处理。启动迁移 由谁启动迁移将依赖于迁移设施要实现的目标。如果目标是负载平衡,那么,操作系统中监督系统负载的某个模块通常负责决策迁移发生的时间。它负责向迁移进程发信号。为了决定迁移的地点,这个模块需要与其他系统中的具有类似功能的模块进行通信,以便监控其他系统上的负载情况。这种迁移对用户是透明的。如果目标是获得某个特定的资源,那么,当进程需要时,就可以迁移。这种情况下,进程必定知道存在着一个分布式系统,也就是说,这种迁移用户是知道的。需要迁移哪些信息 当一个进程被迁移时,需要撤消源系统上的进程,并在目标系统上创建它。需要将进程映像(至少有进程控制块)移走,这个进程与其他系统之间的任何连接,例如正在传送的信息和信号,也必须被修改。首先考虑进程的地址空间,假定系统使用的是分段或分页或段页式虚拟存储技术。通常采用下面两种策略:迁移进程的整个地址空间。仅迁移进程在主存的那部分地址空间。对于打开文件的迁移与地址空间类似。对尚未完成的信息和信号的考虑 对于尚未完成的信息和信号,通过提供一个机制,临时存储尚未完成的信息和信号,待进程迁移到目标机后再将它们转移到目标机去,以保证这些信息相信号的最终完成。u迁移处理 与进程迁移有关的是关于迁移的决策问题。在有些情况下,由一个实体进行决策。例如,如果负载平衡是系统目标,则负载平衡模块监督各个机器上的负载并在必要时实现迁移。为了允许一个进程存取一些专用设施或一些大的远程文件,采用自我迁移策略,那么,进程自己可以根据需要而决定迁移。然而,某些系统允许指定的目标系统参与决策,其理由是可以保证用户的响应时间。下面我们介绍一下在Charlotte系统中采用的处理迁移的机制。其迁移的决策由Starter实用程序负责(它是一个进程)同时也负责系统的长程调度和存储器的分配。因此,Starter可以在这三个方面进行协调。每个Starter可以控制一组机器,Starter及时接收并对来自每个机器内核的负载统计信息进行公平地加工处理。迁移决策必须通过两个Starter进程共同决定,如右图所示。迁移决策由下面几步完成。当负责控制源系统S的Starter决定应该将一个进程P迁移到一个特定的目标系统D时,它发送一个“请求传送”的信息给D的Starter。如果D的Starter准备接收该进程,它回送一个规定的确认信息。S的Starter若在S上运行,则将这个决策通过服务调用传送给S的内核。否则它传送一个信息给机器S的核心作业KJ,再由一个进程将远程进程的信息转换成系统服务调用。于是S上的内核将这个进程发送给D。所提供的信息包括有关P的统计信息,如P所用处理机和通信的负载。如果D缺少资源,它拒绝供给,否则,D上的内核转送这个提供给它控制的Starter传送的信息与S提供的信息相同。Starter的最后决策通过一个迁移调用传送给机器D。D保留必要的资源以防止死锁的发生以及流量控制的需要。然后它发送一个接收P的信息给S,准备接收进程P的迁移。8.5 分布式进程通信返回上一页u信息传送机制 下图给出了用于分布式信息传送的最普通的模型:客户机/服务器模型。一个客户机进程请求某个服务(读一个文件,打印个文件等)并发送一个信息给服务器进程。服务器进程接收这个请求,并发送一个回答信息。采用这种最简单的形式时,信息传送仅需要两个功能:发送和接收。u远程过程调用 远程过程调用是对信息传送基本模型的修改,它现在正广泛地应用到分布式系统中,而且是封闭式通信普遍采用的方法。它允许不同机器上的程序使用简单的过程调用和返回方式进行交互对话。这个过程调用是用来访问远程服务的。由于它具有如下一些优越性,所以得到广泛应用:过程调用是一个被广泛接收、使用和理解的概念。使用远程过程调用说明了一些远程接口,它是作为具有指定类型的一组命名操作被说明的。这些接口可以清楚地用文件的形式说明,而且可以对分布式程序静态地检查其类型错误。由于说明了一个标准的和精确定义的接口,这样可以自动生成应用的通信代码。由于说明的是一个标准的和精确定义的接口,开发者所写的客户机和服务器模块只要稍加修改就可以移植到各个计算机和操作系统上。下图给出了远程过程调用的一般结构,调用程序在它的机器上进行正常的带参数的过程调用,其命令格式如下:CALL P(x,y)这里P是过程名字,x为传送的变量,y是返回值参数。远程过程调用中涉及的几个设计问题 参数传递问题 大多数程序设计语言允许将参数作为值(即值调用)进行传送,或者作为一个包含值所在位置的指针(即引用调用)进行传递。参数表示 如果被调用程序和调用程序是在同一种类型的机器上,运行相同的操作系统采用的是同一种程序设计语言,那么参数表示的要求可能不成问题。但若不是上述情况,那么表示数字和文本的方法将可能是不同的。最好的办法是为一些通用目标,即整型数、浮点数、字符和字符串提供一个标准格式。这样,任何机器上的本地参数与标准表示只要进行相应的转换即可。客户机与服务器的结合 “结合”指出了远程过程和调用程序之间的关系如何建立的问题,当两个应用已进行了一个逻辑的连接并准备交换命令和数据时,便形成了结合。非持久的结合是指逻辑连接是在远程过程调用时间内两个进程之间建立的连接,而且一旦有值返回,这个连接就被解除。持久性的结合是针对非持久结合的。采用这种方式为远程过程调用所建立的连接在过程调用返回后仍旧维持不变。u确定分布式系统的全局状态全局状态和分布式瞬态 在紧藕合系统中所有的并发问题,如互斥、死锁和饿死等,在分布式系统中也会遇到。在这些领域的设计策略由于没有一个系统全局状态变得复杂化。因为操作系统或任何进程不可能知道分布式系统中所有进程的当前状态。一个进程通过访问存储器中的各个进程控制块可以知道在本地系统上所有进程的当前状态。对于远程进程,一个进程只可能通过接收到的信息来了解它的状态信息,这个信息记录了该远程进程过去某个时间的状态。由于网络传输的延迟,分布式系统的性质带来的时间滞后使得所有与并发有关的问题复杂化。为了说明这个问题,先举一个进程事件图的例子,如下图所示。在这个图中,每个进程都有一条表示时间轴的水平线,线上的各点表示进程内部的事件(消息发送,消息接收等);圈住点的方框表示在那一点取出的一个本地进程的瞬态;箭头表示两个进程之间的一个信息。为了理解这个问题并找到一个正确的解,定义几个术语:通道。如果两个进程要交换数据,在它们之间就存在一个通道。我们可以把通道看成是信息传输的路径或手段。为了方便起见,通道被认为是单方向的。因此,如果两个进程交换信息,就需要两个通道,每个信息的传送方向有一个。状态。一个进程的状态是与该进程相关联的通道上发送和接收的信息序列。瞬态。一个瞬态记录了一个进程的状态。每个瞬态包括了自上一个瞬态以来在所有通道上发送和接收的所有信息的记录。全局状态。所有进程的组合状态。分布式瞬态。所谓分布式瞬态是指每个进程有一组状态的收集。由于信息传送引起的时间差,使得我们不能确定一个真正的全局瞬态。我们可以设法通过收集来自所有进程的瞬态定义一个全局状态。下图(a)给出了在(A,B)通道上信息正在传送中的全局的状态,(A,C)通道上以及(C,A)通道上传送的信息状态。图中的SA、SB和SC是同步时间点,也即它们处于同一时间点上。由图中可以看出,信息M2和M4是正确的,因为它们都是在同步点之前发送,而在同步点之后到达目的地的;但信息M3是不正确的,因为它是在分行A的同步点之后发送,却在分行C的同步点之前到达目的地。显然,这是一个不一致的全局状态。我们希望分布式的瞬态记录一个一致性的全局状态。所谓全局状态是一致的,是指如果接收信息的进程已记录它接收到了信息的状态,那么,在发送信息的进程状态中应记录它发送了那个信息。图(b)正是给出了全局一致性状态的例子,即M2、M3和M4这三个信息都是在同步点之前发送,而在同步点之后被接收的。如果一个进程已经记录了它接收到一个信息,但相应的发送进程还没有记录那个信息被发送,这样就产生了不一致的全局状态。分布式瞬态算法 所谓分布式瞬态算法是指记录一致性全局状态在分布式系统中采用的方法。该算法假定,信息应按照其发送的顺序传送,并且在传输过程中没有被丢失。OSI模型第四层的可靠传输协议满足了这些要求。算法用了一个专用的控制信息marker。一些进程在发送其他任何信息之前,通过记录它们的状态并在所有向外发送的通道上发送一个marker来启动这个算法。这样每个进程P按照如下方式前进:一旦进程P首先接收到了这个marker(比如说来自进程Q的),它执行下面几步:进程P记录下它的局部状态SP。记录从Q到P进入(incoming)通道的状态。进程P沿着所有向外发出的通道传播这个marker给它的所有邻接进程。要求上述3步必须按原始方式执行,即在这三步执行完之前既不会发送也不会接收信息。在记录它的状态之后的任何时间,若P接收了另一个进入通道(如来自进程R)的marker时,它执行如下:进程P记录从R到P的通道状态。这个状态是作为P记录它的局部状态SP,开始到它接收到来自R的marker时信息序列而记录的。一旦沿着每个进入通道都已收到了marker,这个算法就在进程P终止。这是一个分布式算法,它包含如下一些内容:一个进程可以通过发送出一个marker启动这个算法。如果每个信息(包括marker信息)在有限时间内被发送,这个算法将在有限时间内终止。每个进程负责记录它自己的状态和所有进入通道的状态。一旦所有的状态被记录,这个算法在所有进程中终止。这时,我们说这个算法得到了一个一致的全局状态。它包括每个进程沿着每个向外通道发送它记录的状态数据和沿着每个向外通道转发它接收的状态数据。8.6 分布式进程同步与互斥返回上一页 进程同步主要是指彼此合作的进程在共享资源上协调其操作顺序。进程互斥则主要是指彼此竞争的进程严格按照次序(排它性的)使用资源。u事件定序法 时标模式用来为传输的信息组成的事件定序。网上的每个系统i都维持一个局部计数器Ci,用它充当时钟。每当一个系统传输一个信息时,它首先将它的时钟值增1,信息用下面的形式发送:(m,Ti,i)。这里,m是信息的内容,Ti是信息的时标,其值设置为Ci,i是这个站点的数字标识。当系统j接收到这个信息时,它将时钟设置成比它的当前值和进来的时标值中的最大值还大1的值,即Cj=1十max(Cj,Ti)。在每个站点,事件的顺序由下面的规则决定。对于来自站点i的信息x和来自站点j的信息y,如果下面的条件中有一个成立,我们就说x出现在y之前:如果TiTj 或者Ti=Tj而且ij 与每个信息相关的时间是该信息的时标,这些时间的顺序由上述两个规则决定,即两个具有相同时标的信息由它们所在的节点号决定顺序,这种方法避免了通信进程的各个时钟的漂移问题。为了给出这个算法的实现过程,用下图的例子说明其执行情况。图中有三个节点,每个节点上由一个控制时标算法的进程表示。进程P1以时钟值0开始。为了向其他两个节点发送信息a,它将其时钟值增为1,并发送信息(a,1,1)。这里,信息a的第一个数字值表示它的时标,第二个数字值表示该发送地的标识。当这个信息被进程P2和P3接收到时,由于此时两节点的时钟值都为0,因此,设置它们的时钟值为2(1+max(1,0)),此后,P2先增加它的时钟值为3,并泄放一个信息(x,3,2)。P1和P3两进程一接收到这个信息就增加各自的时钟值为4。然后,几乎同时使用相同的时标,P1泄放信息(b,5,1)给节点2和3,P3泄放信息(j,5,3)给节点1和2。根据时间定序原理,它们不会发生冲突。因此,在所有这些事件发生后,信息的顺序在所有节点都相同,命名为a,x,b,j。由于不考虑各等级层系统之间传输时间的差异,故这个算法是有效的。这可用下图进一步说明。由图中看出,P1和P4正以相同的分时分别向其他三个节点发送信息。P1的信息为(a,1,1),P4的信息为(q,1,4)。P1的信息到达节点2的时间比P4的信息早,但在节点3,P1的信息却比P4的

    注意事项

    本文(8网络与分布式系统_50980834.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开