网站大量收购独家精品文档,联系QQ:2885784924

[建筑]高级操作系统.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[建筑]高级操作系统

高级操作系统 Advanced Operating System 熊 焰 Yxiong@ 0551_3600689 中国科学技术大学计算机系 第二章 分布式系统同步 分布式系统时钟同步 分布式互斥 分布式选举算法 分布式系统死锁 2.1分布式系统时钟同步 在分布式系统中: 进程之间的通信:采用消息传递(Message-passing),而不是通过共享存储器进行通信的。 与进程通信密切相关的问题:进程之间是如何彼此协作和同步的。 例如,分布式系统中临界区是如何实现的以及资源是如何分配的?在单机系统中,临界区、互斥和同步一般都是采用信号灯和管程等方法来解决的。这些方法却并不能很好地应用于分布式系统,其原因是这些方法都是建立在共享存储器 2.1分布式系统时钟同步 基础上的。两个采用信号灯进行交互的进程必须能够访问到这个信号灯。如果这两个进程是运行在同一台机器上,那么它们只要将信号灯存放在机器的内核中,就可以共享到这个信号灯。但是,如果它们运行在不同的机器上,则共享信号灯的方法再也无效了。因此,需要一些新的方法来解决分布式系统中进程间交互的问题。 在这一章我们将讨论分布式系统中与进程间协作和同步有关的问题。首先,我们引入时间的度量,因为时间在分布式同步中起着重要的作用,其次,介绍分布式互斥和选举算法;最后,讨论分布式系统的死锁。 2.1分布式系统时钟同步 分布式系统中的同步比单机系统中的同步要复杂的多,原因是前者必须使用分布式算法。在分布式系统中,由某一个机器收集整个系统的所有信息,然后,让这个进程考察这些信息并作出一个决定通常是不大可能的,也不是人们所希望的。因此,分布式算法应具有下列特性: 1.相关的信息是分布在多个机器上的。 2.进程根据局部信息来作出决定。 3.对系统中任一个机器的失败应能容错。 4.不存在公共时钟或其它全局时间源。 2.1分布式系统时钟同步 前三点表明由一个机器收集所有的信息进行处理是不可能的。例如,在资源分配时,将所有请求发送给一个管理者进程,由它根据表中的信息来考察所有的请求并决定资源的分配。这在分布式系统中必将造成某一个进程负担过重。此外,一个分布式系统应该比单机系统更可靠。如果一个机器崩溃了,其余的机器应能继续工作,而不至于使系统瘫痪。第四点也是非常重要的。在单机系统中,时间是确定的。如果一个进程想要知道时间,则它可以调用一个系统调用由内核告诉它当前的时间值。如果一个进程先得到时间值而另一个进程后得到时间值,那么,先得到的时间值一定比后得到的时间值小,然而,在分布式系统中,所有机器要在时间上达到一致是非常困难的。 2.1分布式系统时钟同步 首先,我们看一看在分布式系统中缺乏全局时间所产生的影响。考察Unix中的make程序。通常,一个大程序分成多个源文件。这样,对其中某一个文件的修改只需要对被修改的这个文件进行重编译,而无须对所有的源文件进行编译。当调用make程序时,Make程序考察所有源文件和对应目标文件的修改时间。如果源文件input.c的修改时间为2155且对应目标文件input.o的修改时间为2151,那么,make程序知道input.c已被修改。input.c必须被重新编译。如果output.c的修改时间为2144且对应目标文件outpu t.o的修改时间为2145,则不需要对output.c进行重新编译。Make程序在考察完所有源文件和其对应目 2.1分布式系统时钟同步 标文件的修改时间后决定那些文件需要重新编译并调用编译器对其进行编译。在分布式环境中,由于无法在全局时间上达到一致,所以,情况并非这样简单。假定output.o的修改时间为2144,在这以后,outpu- t.c被修改并被赋予的时间为2143,原因是output.c所在机器上的时钟要比output.o所在机器上的时钟慢。所以,make程序不调用编译器进行编译,结果,最终可执行二进制程序将含有由新老源文件所生成的目标文件,导致该可执行程序无法运行而程序员却不知道原因而一直寻找程序代码的错误。因此,在分布式系统中,时钟同步是非常重要的,也是必不可少的。 2.1分布式系统时钟同步 2.1.1 逻辑时钟同步算法 所有计算机上都有一个: 记录时间的电路---称之为时钟---它实际上是一个定时器---一个以某个频率进行震荡的石英晶体。 与定时器相关的两个寄存器分别称之为计数器和保持寄存器。晶体每震荡一次,计数器就减一。当计数器变为0时,一个中断产生并将保持寄存器的值重新装入到计数器中。 因此,我们可以对定时器进行编程使得定时器每秒钟中断60次。每一次中断称之为一次时钟滴答。

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档