分布式系统与WEB服务课件

上传人:仙*** 文档编号:247021269 上传时间:2024-10-17 格式:PPT 页数:88 大小:265.97KB
收藏 版权申诉 举报 下载
分布式系统与WEB服务课件_第1页
第1页 / 共88页
分布式系统与WEB服务课件_第2页
第2页 / 共88页
分布式系统与WEB服务课件_第3页
第3页 / 共88页
资源描述:

《分布式系统与WEB服务课件》由会员分享,可在线阅读,更多相关《分布式系统与WEB服务课件(88页珍藏版)》请在装配图网上搜索。

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,南京理工大学计算机学院,分布式系统与,WEB,服务,第三章 分布式系统的同步 和进程,第三章 分布式系统的同步 和进程,3,1,时钟同步,分布式算法的主要特征:,相关信息分布在多台机器上,进程仅依据局部的信息作出决定,一台机器的故障不应引起整个系统的失败,没有共用的全局时钟。,31 时钟同步 分布式算法的主要特征:,1,逻辑时钟,先看一个例子,:,0,6,12,18,24,30,36,42,48,54,60,0,8,16,24,32,40,48,56,64,72,80,0,10,20,30,40,50,60,7

2、0,80,90,100,A,B,C,D,三个有自己时钟的进程,时钟不同,运行的结果是消息,C,在时间,60,上被发送,却在时间点,54,上到达,1逻辑时钟000ABCD三个有自己时钟的进程,时钟不同,Lamport,的算法以,”,先于,”,关系,为基础,每个消息都携带它的发送时间,当它到达目的地时,如果目的地的时间早于它的发送时间,那么就把目的地的时间向前拔,至少要比发送时间大,1,个单位,.,0,6,12,18,24,30,36,42,48,70,76,0,8,16,24,32,40,48,61,69,77,85,80,0,10,20,30,40,50,60,70,80,90,100,A,B

3、,C,D,用,Lamport,的算法纠正时钟,Lamport的算法以”先于”关系为基础,每个消,该算法解决了全局时钟问题,它的条件就是两个相关事件之间必须至少相差一个时间,2,时钟同步算法,逻辑时钟只给出事物的相对时间,与真实时间并不对应,故要引入外部物理时钟,常用的时钟同步算法,:,克里司帝安,(CRISTIAN),算法,具有国家标致时间接收器的机器,注意,:,调整的方法,通过调节单位时间内的中断的时间,来逐步完成时钟的调整,.,该算法解决了全局时钟问题,它的条件就,伯克利算法,计算平均时间,它是一个集中式算法,不能在大规模的分布式系统中使用,原理,:,定期轮询每台机器的时间,由结果计算平均

4、时间,各机器依此调整时间,.,3,同步时钟的具体使用,至多一次消息传送,消息的时间戳比存储的时间戳的值早,就拒绝接受该消息,伯克利算法,基于时钟的缓冲存储器(,CACHE,)的一致性,使用,CACHE,会出现一致性问题,原解决的方法,:,区分读写缓存,现在可用同步时钟来解决。即通过提供有效期(,利用有效的租约),来控制,CACHE,一致性问题。,基于时钟的缓冲存储器(CACHE)的一致性,3.2,互斥操作,有多个进程的系统经常会碰到临界区的操作。当一个进程要访问某个共享数据时,它要先进人临界区进行互斥操作,确保没有别的进程同时访问该数据。在单机系统中,临界区可以用信号灯、管程来实现。那么在分布

5、式系统中,由于,不能共享主存,,怎么实现临界区和互斥操作呢,?,下面我们讨论几种算法。,集中式算法,该方法就是模拟单机系统,指定一个管理员进行许可管理,该算法保证了互斥,每个临界区只需三条消息,(,申请,许可,释放,),3.2 互斥操作 有多个进程的系统经常,1,0,2,OK,请求,C,管理员,队列空,管理员,1,0,2,不回答,请求,C,队列空,1,0,2,OK,释放,C,管理员,队列空,2,(A),进程,1,向管理员请求进入临界区,得到许可,(B),进程,2,向管理员请求进入临界区,管理员不回答,(C),进程,2,向管理员请求进入临界区,管理员许可,缺点,:,集中式算法管理员是系统的瓶颈,

6、102OK请求C管理员队列空管理员102不回答请求C队列空1,分布式算法,算法的条件,:,系统中的事件必须有全局的顺序,算法的工作过程如下,:,当一个进程要进入临界区时,它构造一条包括临界区名、进程号和当前时间的请求消息,然后把该消息广播给其他的所有进程。这里假设,消息的发送是可靠的。,当一个进程收到请求后,根据它的状态采取相应的动作:,(1),当接收者不在临界区,并且也不想进入临界区,就应答发送者,OK,消息。,(2),如果接收者已经在临界区中,它不回答仅仅把请求加入队列。,(3),如果接收者不在临界区,但它也想进入临界区,就要将收到消息的时间戳和它广播消息的时间戳比较,.,如果到来的消息时

7、间戳早,接收者回答发送者,OK,消息;反之接收者把到来的请求加入队列,不回答,.,分布式算法,在发完进入临界区请求后,进程将等待所有的允许消息,一旦得到许可,就可进入临界区,当退出时向队列中的所有进程发,OK,消息,并将它从队列中删除。,所有进程都要参与决定是否进入临界区,若有进程不能做,算法将出错。,由于所有进程都要参加算法,所以比集中式算法慢,复杂,开销大。,改进算法:,不需所有进程同意,部分回答,OK,即可,令牌环算法,进程只有拥有令牌时,才能进入临界区,一个进程从相邻的进程收到令牌时先检查自己是非要进入临界区,;,如果要,就进入,否则就将令牌传递给下一个进程,.,缺点,:,令牌可能丢失

8、且检测困难,一个要进入临界区的进程最差情况下要等待其他进程进入和退出临界区所用时间总和,在发完进入临界区请求后,进程将等待所有的允许消息,,三种算法的特点比较,集中式算法简单、高效,每次进入和离开临界区只需,3,次消息传递:,请求、许可;释放,,分布式算法中,,n,个进程需要,(n-1),个请求和,(n-1),个许可,总共要,2(n,1),个消息。在令牌环算法中,所需的消息数是不固定的。如果每个进程都要进入临界区,那么每个令牌都有一次进人和退出,平均每次进入有,个消息传递;如果令牌被一个进程占有很长时间,那么进入临界区需要的消息就不确定。,进程从它发出进入临界区的请求到它进入临界区的时间延迟在

9、三个算法中是不同的,当临界区很短并且使用频率很低时,进入临界区时间延迟的决定因素是进人临界区的控制机制当临界区很长并且使用的频率很高时,决定因素在于等待时间,消息数就能说明这一点。,这三种算法出现故障时,都会有很大影响,要避免系统的崩溃,须注意,:,在容错系统中,次三种算法都不适用,.,三种算法的特点比较,3.3,选举算法,在分布式系统中,大多数算法要求有一个进程充当管理员或初始启动者等特殊角色。前面几个算法就有这样的例子。一般来说,由哪个进程充当特定角色无关紧要,但是必须有一个进程做这个工作。下面我们来看如何选一个进程担当特定角色。,选举算法的目的是当选举完成后,能够让所有的进程知道谁是管理

10、员,.,3.3选举算法 在分布式系统中,大多,1.,霸道算法,该算法提出。当一个进程,P,注意到管理员不再对请求作出反应时,它就开始选举进程,P,执行下列步骤:,(1),向所有,进程号比它大,的进程发送,ELECTION,消息;,(2),如果没有进程响应,进程,P,成为管理员;,(3),如果有进程响应,该响应进程成为管理员,,P,结束选举。,注意:,一个进程只能从号码比它小的进程处得到一个选择消息,1.霸道算法,2,0,5,3,6,4,1,7,(A),进程,4,启动选举,2,0,5,3,6,4,1,7,(B),进程,5,6,响应,让,4,停止,2,0,5,3,6,4,1,7,(C),进程,5,

11、6,都启动选举,2,0,5,3,6,4,1,7,(D),进程,6,让进程,5,停止选举,2,0,5,3,6,4,1,7,(E),进程,6,成为管理员,发通知,霸道算法图示,20536417(A)进程4启动选举20536417(B)进,2.,环形算法,这个算法使用环,但不是令牌环。,这里假定所有的进程都是有序号的,即每个进程都知道它的后继进程。当一个进程发现管理员不能工作时,它把包含其进程号的,ELECTION,消息发给它的后继进程;接收消息的进程再向后继进程发送,ELECTION,消息。如果接收进程没有反应,发送消息的进程便向下一个进程发消息。每一次发送,ELECTION,,进程都要将自己的进

12、程号加入消息。,2,0,4,6,5,1,3,7,使用环形选举算法,选举消息,选举消息,2,3,2,5,5,6,5,6,0,出现故障的管理员,2.环形算法20465137使用环形选举算法,最后,第一个发出该选举(,ELECTION,)消息进程收到该消息,再将其转换为协调(,COORDINATOR,)消息后,再循环一周,通知谁是管理员,谁是组成员,,这时消息包中进程号最高的进程将成为管理员。,当这个消息循环一周后,由发送进程把它从网上清除。,图中,2,和,5,都发现,7,失效,分别建立选举消息,两条消息都沿环运行,结果是一样的,只是浪费了带宽。,最后,第一个发出该选举(ELECTION)消息进程,

13、3,4,线,程,进程因等待而挂起,使进程中可并行部分不能执行,从而使系统性能下降,故引入,-,线程,.,1.,线程:就是可以共享地址空间的轻型进程,它有自己的程序寄记数器栈和寄存器集合。,它与进程的主要区别是它的地址空间是共享的。,线程相对于进程,犹如进程相对于机器,2.,线程的使用,将并行性引入到顺序执行的系统,.,多线程组织的常用模型:,34 线 程 进程因等待而挂起,使进程中可,1),分配器工作者模型,有一个分配器线程唤醒工作者线程可用信号灯,2),团队模型,地位平等 线程各自获取和处理自己的请求,.,3),流水线模型,管道线模型,第一个线程产生一些数据传给下一个线程处理,且持续下去。,

14、多线程可分时工作在单,CPU,上也可工作在多处理器系统上,而且多线程系统设计的好将可与多处理机工作性能相当,.,1)分配器工作者模型,共享缓冲区,到达的工作请求,邮箱,文件服务器进程,分配器线程,工作者线程,到达的工作请求,到达的工作请求,内核,分配器,/,工作者模型,流水线模型,团体模型,进程中线程三种组织方式,共享缓冲区到达的工作请求邮箱文件服务器进程分配器线程工作者线,3.,线程包的设计的相关问题,线程包就是供用户或程序员调用的关于线程的一组原语。,线程的管理方法有静态和动态方法两种。,静态,即开始就确定好线程的个数,,动态,个数,不定,线程的代码与进程一样,由多个过程组成。,线程包中临

15、界区控制利用互斥体(,mutex),其总处于:,打开和锁住两种状态,lock mutex;,check data structures lock mutex,while(resource busy)mark resource as free;,wait(condition varable);unlock mutex;,mark resource as busy;wakeuo(condition variable);,unlock mutex;,互斥变量与条件变量的使用,3.线程包的设计的相关问题,线程可由算法进行调度,如优先级调度、循环调度等,4.,线程包的实现,在用户空间实现线程(如图),这

16、种方法是将线程包完全放在,用户空间,,内核对此一无所知,在这种方法中,内核只是管理普通的单线程进程。这种方法最明显的优点,是它可以在一个不支持多线程的操作系统上实现用户线程包。同时它还允许每个进程有自己特定的调度算法,.,线,程,1,线,程,2,线,程,3,线,程,4,线,程,5,线,程,6,运行期系统,内 核,内核空间,用户空间,线程可由算法进行调度,如优先级调度、循环调度等线线线线,缺点是:,数量太多会引起资源紧张,.,同时,(1),它也难实现阻塞系统的调用,.,(2),它的调度是非抢先式的,.,进程内部无时钟中断,无法进行时间片的调度,.,2),在操作系统内核实现(如图),不需要运行系统,线程创建或撤销,只需一次系统调用,比在用户空间实现线程开销大,.,可通过在撤销时加标记,当做为新线程创建时仅需激活即可。,线,程,1,线,程,2,线,程,3,线,程,4,线,程,5,线,程,6,内 核,用户空间,内核空间,缺点是:线线线线线线内 核用户空间内核空间,3),调度员活动方法,结合前两种的优点,(,用户线程的高性能和内核线程的实现简单,),原理:当使用调度员活动方法时,内核给每个进分配

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  sobing.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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