深入理解计算机系统(原书第3版)

Randal E.Bryant

出版时间

2016-11-01

ISBN

9787111544937

评分

★★★★★

标签

编程

书籍介绍

和第2版相比,本版内容上*大的变化是,从以IA32和x86-64为基础转变为完全以x86-64为基础。主要更新如下:

基于x86-64,大量地重写代码,首次介绍对处理浮点数据的程序的机器级支持。

处理器体系结构修改为支持64位字和操作的设计。

引入更多的功能单元和更复杂的控制逻辑,使基于程序数据流表示的程序性能模型预测更加可靠。

扩充关于用GOT和PLT创建与位置无关代码的讨论,描述了更加强大的链接技术(比如库打桩)。

增加了对信号处理程序更细致的描述,包括异步信号安全的函数等。

采用新函数,更新了与协议无关和线程安全的网络编程。

AI导读
核心看点
  • 以程序员视角串联硬件、OS与网络知识
  • 全面覆盖x86-64架构及底层运行机制
  • 配套经典Lab实验,强化动手实践能力
适合谁读
  • 计算机专业学生及求职者
  • 希望深入理解底层机制的开发者
  • 从事系统级编程或性能优化的工程师
读前提醒
  • 建议结合CMU课程视频或Coursera学习
  • 务必动手完成书中的编程实验与习题
  • 重点研读数据表示、链接与异常控制流
读者共识
  • 计算机领域公认的必读经典教材
  • 内容广博且逻辑严密,构建完整知识框架
  • 难度较高,需投入大量时间精读与实践

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "We use the term concurrency to refer to the general concept of a system with multiple, simultaneous activities, and the term parallelism to refer to the use of concurrency to make a system run faster."
  • "图5-22展示了做 k 次循环展开和 k 路并行变换的效果,k 最大为 6。我们可以看到,随着 k 值的增加,所有合并情况的 CPE 都增加了。对于整数乘法和浮点数运算,我们看到 CPE 的值为 L/k,这里 L 是操作的延迟,最高可以得到吞吐量界限 1.00。我们还看到使用标准的展开,整数加法也达到了这个界限。"
  • "总结一下,我们考虑无符号与补码表示之间互相转换的结果。对于在$0 \le x \le 2^{w-1}$范围内的值$x$而言,我们得到$T2U_w(x)=x$和$U2T_w(x)=x$。也就是说,在这个范围内的数字有相同的无符号和补码表示。对于这个范围意外的数值,转换需要加上或者减去$2^w$。"
  • "C语言是系统级编程的首选,同时它也非常适用于应用级程序的编写。然而,它也并非适用于所有的程序员和所有的情况。C的指针是造成困惑和程序错误的一个常见原因。同时,C还缺乏对一些有用抽象的显式支持,例如类、对象和异常。"
  • "This book is written for a programmer's perspective, describing how application programmers can use their knowledge of a system to write better programs."
  • "Building high-performance Web servers.Many Web servers generate dynamic content, such as personalized Web pages, account balances, and banner ads. Early Web servers generated dynamic content by using fork and execve to create a child process and run a “CGI program” in the context of the child. Howev"
  • "But if we had a 32-bit address space, 4KB pages, and a 4-byte PTE[page table entry, 杨注], then we would need a 4MB page table resident in memory at all time..."
  • "我个人的经验是,有许多系统设计和概念,看似简单或不理解,可一旦自己动手做同样的试验,才明白当初设计者为什么要如此设计。计算机系统就像自然界的生态环境,对每一个部件的设计都要求它能够与系统其它部件和平相处,我们不能站在一个微观的视角去看待系统部件的设计是否最优,而应该从宏观来观察和思考"
作者简介
Randal E. Bryant,1981年于麻省理工学院获得计算机博士学位,1984年至今一直任教于卡内基-梅隆大学。现任卡内基-梅隆大学计算机科学学院院长、教授,同时还受邀任教于电子和计算机工程系。他从事本科生和研究生计算机系统方面课程的教学近40年。他和O’Hallaron教授一起在卡内基梅隆大学开设了15-213课程“计算机系统导论”,那便是本书的基础。他还是ACM院士、IEEE院士、美国国家工程院院士和美国人文与科学研究院院士。其研究成果被Intel、IBM、Fujitsu和Microsoft等主要计算机制造商使用,他还因研究获得过Semiconductor Research Corporation、ACM、IEEE颁发的多项大奖。 David R. O’Hallaron卡内基梅隆大学电子和计算机工程系教授。在弗吉尼亚大学(University of Virginia)获得计算机科学的博士学位,2007年-2010年为Intel匹兹堡实验室主任。他教授本科生和研究生的计算机系统方面的课程已有20余年,并和Bryant教授一起开设了“计算机系统导论”课程。曾获得CMU计算机学院颁发的Herbert Simon杰出教学奖。他主要从事计算机系统领域的研究,与Quake项目成员一起获得过高性能计算领域中的*高国际奖项——Gordon Bell奖。他目前的工作重点是研究自动分级(autograding)概念,即评价其他程序质量的程序。
目录
出版者的话
中文版序一
中文版序二
译者序
前言

显示全部
用户评论
上学期的Computer System,这学期的concurrency、networking、database、OS,算是有一点程序员的样子了。脱了三四年的书算是结合颜神的笔记(https://yanmulin.me/)将将读完了。不过这本书的广度惊人,以后遇到相关领域还是得再读的。
我不知道大学老师又不会又为什么非要装逼不用这个教材,讲了四年的课连别人一本书的一个章节都不如。f**ing sl*t asshole. holy shit!
如果厨二经常说什么神作的话,这本书就是当之无愧的神作
看得比较粗,就是个全家桶,并没有特别深入吧,算是概论型,几乎每章都可以抽出来又是一本书
这是一本多么神奇的书呢? 无论我怎么看都像是新的
天书,太难懂了,看完书我只知道计算机是抽象出来的机器。
神作啊,给我们这种非科班出身的人来说补齐了很多计算机底层的知识
加油!
经典就是经典,我用了两个多月,全书通读了一遍,收获非常之大,也配合了B站up主做的一些整理,感谢~ 最后的并发那块讲得真的好,醍醐灌顶,茅塞顿开。 真的是一本不可多得的好书,常读常新,大家一起加油
真的是好书!翔实 自然 生动 底层逻辑讲得异常清晰
下载
收藏