基本信息
- 原书名:Distributed Algorithms
- 原出版社: Morgan Kaufmann Publishers
- 作者: (美)Nancy A.Lynch
- 译者: 舒继武 李国东 余华山
- 丛书名: 计算机科学丛书
- 出版社:机械工业出版社
- ISBN:9787111131274
- 上架时间:2003-12-25
- 出版日期:2004 年1月
- 开本:16开
- 页码:527
- 版次:1-1
- 所属分类:计算机 > 计算机科学理论与基础知识 > 计算理论 > 综合
教材

编辑推荐
本书的内容按照系统模型组织,首先是根据定时模型,然后在定时模型内再根据进程间的通信机制。不同系统的材料分别独立成章,便于查阅。本书论述十分严谨,但又很直观,便于读者迅速理解。本书也为读者提供设计新的算法和证明新的不可能解的基本数学工具。\t\t
\t\t
内容简介
计算机书籍
在本书中,作者给出设计,实现和分析分布式算法的蓝图。本书适合学生、程序员、系统分析员和研究人员等不同类型的读者。本书包括这个领域最重要的算法和不可能解.而且都采用简单的自动机理论进行论述。对所有算法的正确性都给予证明.并且根据精确定义的复杂度标准分析算法的复杂度。其中涉及的问题包括资源分配、通信、分布式处理器之间的一致性、数据一致性、死锁检测、领导者进程的选取、全局快照等。
本书的内容按照系统模型组织,首先是根据定时模型.然后在定时模型内再根据进程间的通信机制。不同系统的材料分别独立成章,便于查阅。
本书论述十分严谨,但又很直观.便于读者迅速理解。本书也为读者提供设计新的算法和证明新的不可能解的基本数学工具。而且,它教给读者怎样对分布式系统进行严格的推理 —包括形式化建模,为它们所需的行为设计精确的指标,证明它们的正确性.并且用实际的度量标准来评价它们的性能。
本书对分布式算法进行全面介绍,包括最为重要的算法和不可能性结果。绝大部分的解都给出了数学证明。这些算法都根据精确定义的复杂度衡量方法进行分析。本书还讲述针对许多典型问题的算法、各类系统模型及其能力。章后提供大量习题并列出了详细的参考文献。
本书可作为高等院校计算机系研究生的教材,尤其适合对计算机理论或体系结构感兴趣的学生学习,还适合分布式设计人员、研究人员及其相关技术人员参考。
作译者
目录
专家指导委员会
译者序
前言
第1章 引言 1
1.1 相关主题 1
1.2 我们的观点 2
1.3 本书内容综述 3
1.4 参考文献注释 7
1.5 标记 7
第一部分 同步网络算法
第2章 建模I:同步网络模型 10
2.1 同步网络系统 10
2.2 故障 11
2.3 输入和输出 11
2.4 运行 11
2.5 证明方法 12
2.6 复杂度度量 12
2.7 随机化 12
2.8 参考文献注释 13
译者序
分布式计算是随着计算机网络的发展而兴起的,现已成为提高问题求解规模和速度、提高系统可靠性的重要手段,在数值模拟和生物工程等应用领域中被广泛应用。随着网络技术的发展以及网络计算的兴起,分布式计算技术也在不断地发展和完善中,在计算机技术的发展和应用中发挥着越来越重要的作用。在我国科学工程计算部门和高等院校中,有越来越多的科技工作者开始学习和研究分布式计算技术。
分布式计算包括三个层面的内容:作为底层的分布式系统,作为理论指导的分布式算法,以及结合具体问题的程序实现。其中,分布式算法处于重要地位,它是分布式系统的体现,更是分布式程序设计的基础和灵魂。分布式算法的一个重要特点是,它并不仅是抽象的理论研究,而且是与具体的分布式系统和应用问题密切相关的。
然而,在分布式算法的研究中,国内的有关资料十分缺乏,因此我们翻译了本书,它有几个显著特点:
全面:本书分三部分,分别对同步算法、异步算法和部分同步算法进行全面的介绍,可以作为一本分布式算法的完全手册。
严谨:书中的算法和概念都给出准确的定义,性能的分析评价都给出严格的证明,可以作为进一步深入理论研究的基础。
深入浅出:虽然算法理论有很强的抽象性,但是本书能够用浅显的语言和大量的图示作出详尽的讲解,阅读本书只需要读者具备一些基本的离散数学和概率知识。因此,本书可以适合不同层次的读者。
本书的翻译是专门从事分布式算法的科研工作者通力合作的结果,其中清华大学计算机系舒继武副教授翻译了序言和第1章至第7章,南京大学计算机系李国东副教授翻译了第8章至第13章和第15章至第20章,北京大学计算机系余华山博士翻译了第14章和第21章至第25章,全书由舒继武和李国东统稿和审校。
此书的翻译过程中,我们深切体会到本书作者在分布式算法方面的造诣,自身也获得了提高。希望本书能使国内的学者共享本书作者的思想和结晶。
由于分布式算法是一个蓬勃发展的领域,译者水平有限,加上时间仓促,书中的错误在所难免,竭诚欢迎广大读者批评指正。
译 者
2003年9月
前言
分布式算法是用于解决多个互连处理器运行问题的算法。分布式算法的各部分并发和独立地运行,每一部分只承载有限的信息。即使处理器和通信信道以不同的速度运作,或即使某些构件出了故障,这些算法仍然应该工作正常。
分布式算法有广泛的应用:电信、分布式信息处理、科学计算以及实时进程控制。例如,今天的电话系统、航班订票系统、银行系统、全球信息系统、天气预报系统以及飞机和核电站控制系统都严重依赖于分布式算法。很明显,确保分布式算法准确、高效地运行是非常重要的。然而,由于这种算法的执行环境很复杂,所以设计分布式算法就成为了一项极端困难的任务。
本书对分布式算法这个领域做了全面的介绍—包括最为重要的算法和不可能性结果,且都是在一种简单的自动机理论环境中呈现。几乎所有的解都给出了数学证明(至少是粗略的)。这些算法都根据精确定义的复杂度衡量方法进行了分析。总之,这些材料为更深入地理解分布式算法打下了牢固的基础。
本书面向不同层次的读者。首先,本书可以作为计算机系一年级研究生的教材,尤其适合于对计算机系统、理论或两者怀有浓厚兴趣的学生。第二,本书可作为分布式系统设计人员的短期培训教材。最后,它也可作为参考手册,供设计人员、学生、研究人员以及任何对该领域感兴趣的个人使用。
本书包含了针对很多典型问题的算法,如在几种不同系统环境下的一致性(consensus)、通信、资源分配和同步问题。这些算法和结论基于分布式环境的基本假设来组织。组织的第一层基于时序模型(timing model)—同步、异步或部分同步;第二层基于进程间的通信机制—共享存储器或消息传递。每种系统模型都用数章来阐述:每一组的头一章提出所述系统类型的形式化模型,余下各章介绍了算法和不可能性结果。从头至尾,我们进行了严密的论述,然而非常简明易懂。
由于该领域很广阔也很活跃,因此本书不想去包罗万象。我们只是将最根本的结果选进了本书。若以复杂度来衡量,这些结果并不总是最优的;但它们比较简单且能够阐明重要的通用设计和推理方法。
本书将会介绍分布式计算领域中许多最重要的问题、算法和不可能性结果。当实际系统中出现这些问题的时候,你就能将它们识别出来,并进而利用本书介绍的算法来解决它们,或者应用不可能性结果来证明它们是不可解的。本书还介绍各类系统模型及其能力。这样一来,你自己就可以设计出新算法(甚至还可以证明出新的不可能性结果)。最后,本书还会让你相信,严格推导分布式算法和系统是可行的:形式化建模,给出其所需行为的精确规格说明,严格证明它们符合规格说明,确定合适的复杂度衡量标准以及按照这些标准进行分析。
使用本书
预备知识 阅读本书所需的预备知识是基本的本科离散数学(包括数学归纳和渐进分析)、一些编程技能以及对计算机系统相当熟悉。有关随机算法的部分还需要基本的概率知识。有关串行算法及其分析的本科课程对阅读本书有帮助,但并不是必需的。
章节关系 本书的编排原则是使读者能比较独立地阅读不同模型的各章。各章之间的依赖关系如图A所示。例如,如果想尽快了解异步网络,就可以跳过第5~7章。还可以只读算法部分,而不必先阅读算法所依赖的建模部分。
图A 各章之间的依赖关系
带星号的小节 在本书目录中,有几个小节的标题打了星号。它们的内容不太基本或者说比其他部分更深。第一次阅读的时候可以忽略这些内容,不会有什么影响。
课程 本书的第1版已经在MIT(麻省理工学院)的研究生导论课中用了很多年,并且在一些计算机软件和应用公司的系统设计师夏季课程中用了三年。本书包括足够一年课程的内容,所以对一些短期课程来说必须有所取舍(注意看章节之间的关系)。
例如,在强调异步网络计算的一个学期的课程中,可以选择第3、4、6章、7.2节、第12章、和第14~21章,参考一些有关建模的章节(第2、8和9章),并根据需要加入第10、11和13章中的一些定义。在强调对分布一致性进行详细研习的一个学期的课程中,可以选择第2~9、12章、13.1节、第15、17、21、23和25章。还有其他多种可能组合。如果你是这个领域的研究者,你可以用所在领域的研究报告中更新或者更特别的结论来补充本书。
在为系统设计师提供的一两周的短期课程中,可以涉及全部章节的重点,在较高的层次上讨论关键结论和关键证明思想,而无需讲解太多细节。
错误 如果在本书中发现了错误,以及对本书有什么建设性建议,请告诉我。特别欢迎对额外问题的建议。请发送email到:distalgs@theory.lcs.mit.edu。
致谢
我们很难一一列举出所有对本书的出版做出贡献的人们,因为本书是多年教学和研究的成果,得到了许多学生和研究人员的帮助。即使这样,我还是想尽力而为。
本书是MIT的研究生课程6.852(分布式算法)讲稿的最终版本。在我早期组织材料的过程中,学生们学过这门课。这些学生在1990和1992年给予了特别的帮助,当时是他们帮助我完成了讲稿的在线版本。有几位课程助教对我整理笔记给予了极大的帮助,他们是:Ken Goldman、Isaac Saias和Boaz Patt-Shamir。助教Jennifer Welch 和Rainer Gawlick也帮了我很大的忙。