XXIV MaryEllen N.Oliver(校对)、Laurel Muller(美术)和Ted Laux(索引制作)。 最后,我们要感谢Prentice Hall出版社的朋友们。Marcia Horton总是支持着我们。 我们的编辑Matt Goldstein由始至终表现出了一流的领导才能。我们由衷地感谢他们的帮 助、鼓励和真知灼见。 第1版的致谢 我们衷心地感谢那些给了我们中肯批评和鼓励的众多明友及同事。特别感谢我们15 213课程的学生们,他们充满感染力的精力和热情鞭策我们前行。Nick Carter和Vinny Furia无私地提供了他们的malloc程序包。 Guy Blelloch、Greg Kesden、Bruce Maggs和Todd Mowry已教授此课多个学期,他 们给了我们鼓励并帮助改进课程内容。Herb Derby提供了早期的精神指导和鼓励。Allan Fisher、Garth Gibson、Thomas Gross、Satya、Peter Steenkiste和Hui Zhang从一开始就 鼓励我们开设这门课程。Garth早期给的建议促使本书的工作得以开展,并且在Allan Fisher领导的小组的帮助下又细化和修订了本书的工作。Mark Stehlik和Peter Lee提供 了极大的支持,使得这些内容成为本科生课程的一部分。Greg Kesden针对ICS在操作系 统课程上的影响提供了有益的反馈意见。Greg Ganger和Jiri Schindler提供了一些磁盘驱 动的描述说明,并回答了我们关于现代磁盘的疑问。Tom Striker向我们展示了存储器山 的比喻。James Hoe在处理器体系结构方面提出了很多有用的建议和反馈。 有一群特殊的学生极大地帮助我们发展了这门课程的内容,他们是Khalil Amiri、 Angela Demke Brown、Chris Colohan、Jason Crawford、Peter Dinda、Julio Lopez、 Bruce Lowekamp、Jeff Pierce、Sanjay Rao、Balaji Sarpeshkar、Blake Scholl、Sanjit Ses- hia、Greg Steffan、Tiankai Tu、Kip Walker和Yinglian Xie。尤其是Chris Colohan建立 了愉悦的氛围并持续到今天,还发明了传奇般的“二进制炸弹”,这是一个对教授机器语 言代码和调试概念非常有用的工具。 Chris Bauer、Alan Cox、Peter Dinda、Sandhya Dwarkadis、John Greiner、Bruce Ja- cob、Barry Johnson、Don Heller、Bruce Lowekamp、Greg Morrisett、Brian Noble、 Bobbie Othmer、.Bill Pugh、Michael Scott、Mark Smotherman、Greg Steffan和Bob Wier 花费了大量时间阅读此书的早期草稿,并给予我们建议。特别感谢Peter Dinda(西北大 学)、John Greiner(莱茨大学)、Wei Hsu(明尼苏达大学)、Bruce Lowekamp(威廉&.玛丽 大学)、Bobbie Othmer(明尼苏达大学)、Michael Scott(罗彻斯特大学)和Bob Wier(落基 山学院)在教学中测试此书的试用版。同样特别感谢他们的学生们!
XXV 我们还要感谢Prentice Hall出版社的同事。感谢Marcia Horton、Eric Frank和Har old Stone不懈的支持和远见。Harold还帮我们提供了对RISC和CISC处理器体系结构准 确的历史观点。Jerry Ralya有惊人的见识,并教会了我们很多如何写作的知识。 最后,我们衷心感谢伟大的技术作家Brian Kernighan以及后来的W.Richard Ste- vens,他们向我们证明了技术书籍也能写得如此优美。 谢谢你们所有的人。 Randal E.Bryant David R.O'Hallaron 于匹兹堡,宾夕法尼亚州
R andal E.Bryant1973年于密歇根大学获得学士学位,随即就读于 麻省理工学院研究生院,并在1981年获计算机科学博士学位。他 在加州理工学院做了三年助教,从1984年至今一直是卡内基-梅隆大学 的教师。这其中有五年的时间,他是计算机科学系主任,有十年的时间 是计算机科学学院院长。他现在是计算机科学学院的院长、教授。他同 时还受邀任职于电子与计算机工程系。 他教授本科生和研究生计算机系统方面的课程近40年。在讲授计算 机体系结构课程多年后,他开始把关注点从如何设计计算机转移到程序 员如何在更好地了解系统的情况下编写出更有效和更可靠的程序。他和 O'Hallaron教授一起在卡内基-梅隆大学开设了l5-213课程“计算机系统 关于 导论”,那便是此书的基础。他还教授一些有关算法、编程、计算机网 络、分布式系统和VLSI(超大规模集成电路)设计方面的课程。 作者 Bryant教授的主要研究内容是设计软件工具来帮助软件和硬件设计 者验证其系统正确性。其中,包括几种类型的模拟器,以及用数学方法 来证明设计正确性的形式化验证工具。他发表了150多篇技术论文。包 括Intel、IBM、Fujitsu和Microsoft在内的主要计算机制造商都使用着他 的研究成果。他还因他的研究获得过数项大奖。其中包括Semiconductor Research Corporation颁发的两个发明荣誉奖和一个技术成就奖,ACM颁 发的Kanellakis理论与实践奖,还有IEEE颁发的W,R.G.Baker奖、 Emmanuel Piore奖和Phil Kaufman奖。他还是ACM院士、IEEE院士、 美国国家工程院院士和美国人文与科学研究院院士。 David R.O'Hallaron卡内基-梅隆大学计算机科学和电子与计算机工 程系教授。在弗吉尼亚大学获得计算机科学博士学位,2007~2010年为 Intel匹兹堡实验室主任。 20年来,他教授本科生和研究生计算机系统方面的课程,例如计算机 体系结构、计算机系统导论、并行处理器设计和Internet服务。他和Bry ant教授一起在卡内基-梅隆大学开设了作为本书基础的“计算机系统导 论”课程。2004年他获得了卡内基-梅隆大学计算机科学学院颁发的Her bert Simon杰出教学奖,这个奖项的获得者是基于学生的投票产生的
XXVII O'Hallaron教授从事计算机系统领域的研究,主要兴趣在于科学计算、数据密集型计算和 虚拟化方面的软件系统。其中最著名的是Quake项目,该项目是一群计算机科学家、土木工程 师和地震学家为提高对强烈地震中大地运动的预测能力而开发的。2003年,他同Quake项目 中其他成员一起获得了高性能计算领域中的最高国际奖项一Gordon Bell奖。他目前的工作 重点是自动分级(autograding)概念,即评价其他程序质量的程序
目录 出版者的话 中文版序一 中文版序二 译者序 前言 关于作者 第1章计算机系统漫游……1 1.7.1进程…11 1.1信息就是位十上下文………1 1.7.2线程……… 12 1.2程序被其他程序翻译成不同的 1.7.3虚拟内存…… 12 格式…………3 1.7.4文件… 14 1.3了解编译系统如何工作是 1.8系统之间利用网络通信… 14 大有益处的……………………4 1.9重要主题… 16 1.4处理器读并解释储存在内存 1.9.1 Amdahl定律 16 中的指令…5 1.9.2并发和并行………17 1.4.1系统的硬件组成……5 1.9.3计算机系统中抽象的 1.4.2运行he11o程序…7 重要性…………………… 19 1.5高速缓存至关重要 ………………9 1.10小结……… 20 1.6存储设备形成层次结构…9 参考文献说明 ………44… 20 1.7操作系统管理硬件…10 练习题答案……………… 20 第一部分 程序结构和执行 第2章信息的表示和处理…………22 2.1.3寻址和字节顺序……29 2.1信息存储……24 2.1.4表示字符串……34 2.1.1十六进制表示法…25 2.1.5表示代码…34 2.1.2字数据大小……27 2.1.6布尔代数简介…35