苏东海-2011110904-操作系统课程论文-Final.docVIP

  • 3
  • 0
  • 约 7页
  • 2017-08-19 发布于重庆
  • 举报

苏东海-2011110904-操作系统课程论文-Final.doc

苏东海-2011110904-操作系统课程论文-Final

几种分布式系统时钟同步算法的分析及比较 操作系统课程论文 姓名:苏东海 学号:2011110904 年级:2011级计算机硕士 摘要: 分布式系统中,所有的处理器必须在时间上保持一致,就是所谓的时钟同步问题,否则就会引发很多致命级的错误。有很多算法对如何实现分布式系统中时钟同步进行了研究,本文主要对一些主要的算法进行一个简单的介绍,对每一种算法所出现的问题都进行了分析和解决,并在此基础上提出了另外一个可行的时钟同步算法。 关键字: 分布式系统, 时钟同步, 时钟同步算法 Abstract: In distributed systems, all the processors must keep in consistent with each other, called Clock Synchronous Problem, or some deadly errors will occur. Nowadays, there are many algorithms made much contribution to it, this paper mainly has a simple introduction about some main-stream algorithms, also with an analysis and methods to resolve some problems-made by them, based on these analysis this paper proposes another algorithm to resolve the Clock Synchronous Problem. Keywords: Distributed Systems, Clock Synchronous, Clock Synchronous Algorithms 介绍 分布式系统是:处理器空间分布,通过网络交换信息,完成一定功能的系统【1】。在分布式系统中,进程之间通过分层协议、请求/应答消息传输机制(包括RPC)及组通信等方法进行通信。与之相关的是进程之间如何同步,比如分布式系统中如何实现临界区、如何分配资源等。 在单机系统中,临界区、临界资源、和其它同步问题可以使用信号量、管程甚至使用硬件方法来解决。但这些方法对分布式系统并不十分有效,因为它们必须依赖于共享存储器。如何解决这些看似简单的问题,是困扰很多研究人员的一个难题。但每个进程的创建、执行、挂起和结束都有一定的先后顺序,因此从时间这个概念入手是解决这些问题的关键所在。 但由于在分布式系统中,各处理器之间并没有一个明确的时钟。因此,有必要在时间这个概念上达成共识,而此处的时间可以是近似的实时时间,也可以是简单的整数计数器,用来达成这种共识的技术就是我们所说的时钟同步【2】。在下面一部分通过一个例子来说明通过时钟同步来解决上述种种问题的有用性。 时钟同步的有效性 在集中式系统中,时间的概念非常清楚,当某个进程想要知道时间时,它可以使用由内核提供的系统调用。如果进程A询问时间,之后进程B也询问时间,进程B得到的时间值就应该大于或等于进程A所得到的时间值,但一定不会小于进程A得到的时间值,但在分布式系统中,获得时间上的一致并不容易。 考虑下面一个例子,在缺少全局时间的UNIX下的make程序。一般来说,UNIX系统中一个大程序通常可被分割成多个源文件,如果某个源文件发生变化,那么只需将该文件重新编译即可,而不需重新编译所有的文件(这样可以大大提高编程人员的工作效率)。make程序所使用的这种方法很简单,当编程者修改完所有的源文件后,编程者启动make程序,看一下源文件和目标文件最后一次修改的时间,如果源文件input.c的时间为2151,而相应的目标文件output.o的时间为2150,make就知道input.c在output.o创建后被改动过。因此,input.c必需重新编译。相反,若input.c的时间为2144,而output.o的时间为2145,就不必再重新编译了。make检查所有的源文件并找出哪一个需要重新编译,然后调用编译器重新编译它。 在没有统一时间的分布式系统中,若output.o的时间为2144,紧随其后的input.c被修改,但是由于它所在机器上的时钟略慢,造成input.c的时间为2143,如图1所示,make将不再调用编译器,最终可执行的二进制程序将包括由老的源文件和新的源文件所产生的混合目标文件,这样可能将不能再正常执行。 图1:当每台机器有它自己的时钟时,一个发生于另一事件之后 的事件可能会被标记一个比另一个事件更早的时间 因此,时钟同步在分布式系统中有着非常重要的作用,这对于解决分布式系统中所出的上述问题也非常有效,而分

文档评论(0)

1亿VIP精品文档

相关文档