分布式 系统 存储 数据库 云计算 (3)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

8.3分布式操作系统8.3.1分布式系统概述8.3.2分布式进程通信8.3.3分布式资源管理8.3.4分布式进程同步8.3.5分布式系统中的死锁8.3.6分布式文件系统8.3.7分布式进程迁移8.3.1分布式操作系统•分布式计算机系统是由一组松散的计算机系统,经互连网络连接而成的”单计算机系统映像”(SingleComputerSystemImage)。分布式系统与网络系统区别•网络系统中,用户在通信或资源共享时必须知道计算机及资源的位置,通过远程登录或让计算机直接相连来传输信息或进行资源共享;•分布式系统中,用户在通信或资源共享时并不知道有多台计算机存在,数据通信和资源共享如在单计算机系统上一样,此外,互联的各计算机可互相协调工作,可把一个大型程序分布在多台计算机上并行运行。分布式计算机系统满足条件•系统中任意两台计算机可通过系统的安全通信机制来交换信息。•系统中的资源为所有用户共享•系统中的若干机器可互相协作完成同一个任务•系统中的一个结点出错不影响其它结点运行,具有较好的容错性和健壮性。如何实现”单计算机系统映像”?实现分布式系统的技术称透明性:•位置透明性•迁移透明性•复制透明性•并发透明性•并行透明性分布式操作系统基本功能1进程通信。2资源共享。3并行运算。4网络管理。分布式操作系统具有特征•一是有单一全局性进程通信机制,任何一台机器上进程都采用同一种方法与其它进程通信;•二是有单一全局性进程管理和安全保护机制,进程的创建、执行和撤销以及保护方式不因机器不同而有所变化;•三是有单一全局性的文件系统,用户存取文件和在单机上没有两样。8.3.2分布式进程通信分布式系统中进程通信可分成三种:一是消息传递机制messagepassing二是远程过程调用RPC三是套接字socket这三种通信机制都需依赖于网络的数据传输功能。1、消息传递机制(1)•通信原语的基本形式为Send(P,message)Receive(Q,buffer)•最简单的分布式消息传递模型称客户机/服务器模型消息传递机制(2)(1)目标进程寻址第一种方法:机器号和进程号寻址法。第二种方法:广播寻址法。第三种方法:名字服务器寻址法。(2)同步和异步通信原语同步发送异步发送(3)缓冲和非缓冲原语缓冲原语非缓冲原语(4)可靠和非可靠通信原语可靠通信原语非可靠通信原语2.远程过程调用(1)客户机客户存根客户应用客户OS内核本地调用客户打包参数拆包参数返回结果OS内核服务器本地调用服务存根服务应用服务过程打包参数拆包参数返回结果OS内核网络消息传送远程过程调用(2)RPC执行步骤总结(1)1)客户进程以普通方式调用客户存根2)客户存根组织RPC消息并执行Send,激活内核程序3)内核把消息通过网络发送到远地内核4)远地内核把消息送到服务器存根5)服务器存根取出消息中参数后调用服务器过程远程过程调用(3)RPC执行步骤总结(2)6)服务器过程执行完后把结果返回至服务器存根7)服务器存根进程将它打包并激活内核程序8)服务器内核把消息通过网络发送至客户机内核9)客户内核把消息交给客户存根10)客户存根从消息中取出结果返回给客户进程11)客户进程获得控制权并得到了过程调用的结果3套接字(1)•socket通信的基本原理•socket通信的工作过程•每个套接字支持特定类型的网络,常见的有:可靠的面向连接的字节流、可靠的面向连接的包流、不可靠的包传递等。•创建socket时,用参数指明所用协议,对可靠的字节流和包流,常用TCP/IP;对不可靠的包传递,则采用UDP。套接字(2)•Socket的功能由系统调用体现主要有:创建socket()、指定本地地址bind()、建立socket连接connect()、愿意接收连接listen()和接收连接accept()、发送数据send()、sendto()、sendmsg()、write()、writev()和接收数据read()、readv()、recvfrom()、recvmsg()。套接字(3)服务器方客户方socket()建立数据报式套接字,返回套接字号socket()建立数据报式套接字,返回套接字号bind()把套接字s与本地地址相连接bind()把套接字s与本地地址相连接recvfrom()/sendto()在s上读写数据,直至结束recvfrom()/sendto()在s上读写数据,直至结束closesocket()关闭套接字,服务结束closesocket()关闭套接字,结束对话无连接协议的套接字调用时序套接字(4)面向连接的套接字调用时序socket()建立流式套接字,返回套接字号sbind()把套接字s与本地地址相连listen()通知TCP/IP,服务器准备好接收连接accept()接收连接,并得到第二个套接字nsrecev()/send()在ns上读写数据,直到结束Closesocket()关闭套接字nsClosesocket()关闭最初套接字ssocket()建立流式套接字,返回套接字号sconnect()把套接字s与远程主机相连Send()/recev()在ns上读写数据,直到结束Closesocket()关闭套接字s,结束TCP/IP对话服务器方客户方socket()建立流式套接字,返回套接字号sbind()把套接字s与本地地址相连listen()通知TCP/IP,服务器准备好接收连接closesocket()关闭套接字nsclosesocket()关闭最初套接字ssocket()建立流式套接字,返回套接字号sconnect()把套接字s与远程主机相连send()/recev()在ns上读写数据,直到结束建立连接服务请求服务响应8.3.3分布式资源管理(1)•单机操作系统采用一类资源由一个资源管理者来管的集中式管理方式。•分布式操作系统采用一类资源多个管理者的方式,可以分成两种:1集中分布管理2完全分布管理分布式资源管理(2)集中分布管理•一类资源有多个管理者,但每个具体资源仅有一个管理者负责,如尽管系统有多个文件管理,但每个文件只依属于一个文件管理者。•集中分布管理下,使用某个文件必须也仅须通过其相应的某个文件管理者。分布式资源管理(3)完全分布管理•假如一个文件有若干副本,分别受管于不同的文件管理。为保证文件副本的一致性,当一份副本正被修改时,其他各副本应禁止使用。•当一个文件管理接收到使用文件的申请时,只有在和管理该文件其他副本的管理者协商后,才能决定是否让申请者使用文件。一个具有多副本的文件资源由多个文件管理者共同管理。分布式资源管理(4)分布式资源搜索算法(1)集中分布管理应具有向其他资源管理者提交资源申请和接受其他资源管理者转来的申请的功能。分布式资源搜索算法:1、投标算法2、由近及远算法3、回声算法分布式资源管理(5)1投标算法(1)•资源管理者欲向它机资源管理者申请资源时,先广播招标消息,向网络中位于其他结点的每个资源管理者发招标消息。•当一个资源管理者接到招标消息时,如果该结点上有所需资源,则根据一定策略计算出”标数”,发一个投标消息给申请者,否则回一个拒绝消息。分布式资源管理(6)投标算法(2)•申请者收到所有回答消息后,根据一定策略选出一个投标者,并向它发一个申请消息。•接到申请消息后,将申请者的名字登记入册,并在可以分配资源时发消息通知申请者。•资源使用完毕后,向分配资源的资源管理者归还资源。分布式资源管理(7)2由近及远算法(1)•申请者向它的某个邻结点发一个搜索消息,信中附上对资源的需求及参数p,其值为申请者编号。•接搜索消息后,将发来消息的结点编号和参数p登记下来,前者定义为它的上邻结点,后者定义为它的前结点。•如果接搜索消息的结点具有消息中所要求的资源,它就向它的上邻结点发一个成功消息,并将自己的编号附上;分布式资源管理(8)由近及远算法(2)•否则它先发一个消息给它的前结点告知自己是它的后结点。然后,发消息给上邻结点,请继续搜索,消息中带上参数p,其值为自己的编号。•接继续搜索消息后,如果还有未被搜索的下邻结点,那么,就发搜索消息给它,消息中附上的参数p是从继续搜索消息中取得的。•如果所有下邻结点都已搜索过,但它有后结点,则把继续搜索消息转给它的后结点。分布式资源管理(9)由近及远算法(3)•如果既没有未被搜索的下邻结点,又没有后结点,则说明全部结点己被搜索过,这时它将向上邻结点发一个失败消息。•接成功消息或失败消息后,若接消息者非申请者,则将消息转发给它的上邻结点,否则搜索就此结束。•申请者或获得最近能提供所要资源的结点地址,或被告之系统中没有这样的资源。分布式资源管理(10)由近及远算法(4)•如果一个己被搜索过的结点又收到搜索消息,则将原消息退回,发搜索消息的结点就认为该下邻结点不存在。分布式资源管理(11)3回声算法(1)•资源申请者向它的每一个邻结点发探查消息,消息中附上对资源的需求。•若接探查消息的结点是第一次接到这样的探查消息,就把传来探查消息的邻结点定义为它的对该探查而言的上邻结点,而把其余的邻结点定义为它的下邻结点。若接探查消息的结点不是第一次接到这样的探查消息,就向传来探查消息的邻结点发一回声消息,消息中参数值为0。分布式资源管理(12)回声算法(2)•接上邻结点传来的探查消息后,若有下邻结点,则将探查消息复制后分发给各下邻结点,否则向上邻结点发一回声消息,消息中参数S(称资源参数)取下列值:S=0当结点不具备所需资源时S=w*a+1当有a个申请者在等待资源时式中w是一个常数。分布式资源管理(13)回声算法(3)•当一个结点接到它的所有下邻结点发来的回声消息后,就向它的上邻结点发一回声消息,消息中附上参数S及与之对应的结点编号。参数S取下列值:S=0若Sr=0且所有回声消息中所附参数均为0S=min(Sr1+1,…,Sre+1,Sr)否则若S值被选为Sre+1,回声消息中所附结点编号就是附有资源参数Sre的回声中所附的结点编号。若S值被选为Sr,回声消息中所附结点编号就是本结点编号。分布式资源管理(14)回声算法(4)•申请者获得所有邻结点发来的回声消息后,将按上一条规则选定S的方法选中一个资源提供者,然后,向它发申请消息。•当一个结点接到申请消息后,就把申请消息登记下,并在可能时将资源分配给它。•使用完毕后通知资源分配者去配。8.3.4分布式进程同步(1)•分布式系统中各计算机没有共享内存储区,进程间无法通过传统公共变量•进程分散在不同计算机上,只能根据本地可用信息做出决策,系统中没有公共的时钟和全局时间。•采用完全分布式管理时,每个资源由位于不同结点上的资源管理共同来管,每个资源管理在决定分配它管理的资源以前,必须和其他资源管理者协商。必须设计一个算法,各资源管理者按此算法共同协商资源的分配。分布式进程同步(2)•算法应满足:资源分配的互斥性、不产生饿死现象、且各资源管理者处于平等地位而无主控者。•通常把这种资源分配算法称分布式同步算法,由同步算法构成的机制称分布式同步机制。•进程间通过网络通信联系会有延迟。•必须要解决对不同计算机中发生的事件进行排序的问题,再设计出性能优越的分布式同步算法。1事件排序(1)•进程同步的实质是对多个进程在执行顺序上的规定,为此,应对系统中所发生的事件进行排序。•定义一个关系称作“先发生”,表达为“a→b”读作“a在b之前发生”,意思是指系统中所有进程认为事件a先于事件b发生。事件排序(2)三种情况会产生先发生关系情况(1):如果a和b是同一进程中的两个事件,且a发生在b之前,则a→b为真;情况(2):如果a是一个进程发送消息事件,b为另一个进程接收该消息事件,则a→b为真;情况(3):存在某个事件c,若有a→c并且c→b,则a→b为真。事件排序(3)定义事件的“先发生”关系后,•同一进程中两个事件的先后关系可以被明确确定,•不同进程中发生的事件间的先后关系,有一部分可以被确定,而另一部分则不能确定。事件排序(5)例如,三个进程P1、P2和P3,分别发生以下事件:•事件a:P1发送消息给P2;•事件b:

1 / 86
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功