文章吧手机版
《深入理解计算机系统(原书第2版)》读后感精选10篇
日期:2017-12-02 来源:文章吧 阅读:

《深入理解计算机系统(原书第2版)》读后感精选10篇

  《深入理解计算机系统(原书第2版)》是一本由(美)Randal E.Bryant / David O'Hal著作,机械工业出版社出版的平装图书,本书定价:99.00元,页数:702,文章吧小编精心整理的一些读者的读后感,希望对大家能有帮助。

  《深入理解计算机系统(原书第2版)》读后感(一):推荐

       寒假花了3个多星期,把这本书的第一、第二部分读完。这本书讲述的计算机如何工作的,较偏向底层,稳重思路非常清晰的,特别是前面的部分很详细,到后面可能由于篇幅的关系后面显得有些简略。
       书中配套是实验还是非常值得一做的,并且非常有趣,我做了前3个lab,从中学到的还是很多的。
       平时写程序都是在高级的层面上,我们都不需要知道计算机内部是如何工作的,正如书中提到计算机中的分层和抽象思想一样,分层和抽象的思想是伟大的,我们可以专注于自己领域而不用关注其它方面,但是导致我们编程那么久,对于计算机还是一无所知
        而这本书恰恰就是讲述计算机是如何工作的,虽然不懂得底层不妨害写程序,但我始终认为不知道计算机内部是如何工作的很难称得上是好的程序员。
       推荐!

  《深入理解计算机系统(原书第2版)》读后感(二):本书的使用指南

Chapter 1
A Tour of Computer System
一个对计算机系统总体的介绍,简单明了。
应试 ★★★:可能在笔试中会有一些整体上的概念题。
修炼 ★: 属于计算机最基本的概念。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
chapter 2
Representing and Manipulating Information
信息在计算机中的表示形式。分别包括整数和浮点数的表示形式。
应试 ★: 应试中很少会考到。
修炼 ★★★★:有很多人可能写了多年的代码都不知道浮点数是如何用那4(8)个字节存储的。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
chapter 3
Machine-Level Representation of Program
汇编语言的复习。
修炼 ★★★★★:理解汇编语言和寄存器结构是后面很多内容的基础。
应试:
3.7 Procedures ★★★★★:过程调用,尤其是过程调用(包括递归调用)中堆栈的使用情况是经常会考到的。
3.10 Alignment ★★★★★:数据在内存中的“对齐”方式,也是经常出现在考题中的。比如定义一个结构体数组,打印出其中一个元素的地址,问这个地址相对数组起始地址有多少个字节的距离。
others ★★★: 汇编在应试中考的还是比较少的(除专门的职位)。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
chapter 4
Processor Architecture
计算机体系结构的内容。
处理器结构,各种逻辑门、功能单元,指令集,指令的执行,指令执行的流水线等。
应试 ★: 对于软件相关职位来说,很少会考到这么底层的东西的。
修炼 ★★★: 对于从事软件层面的技术人员来说,不用深入,但是也应该理解,知道是怎么回事。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
chapter 5
Optimizing Program Performance
如何优化程序的执行效率,包括代码的优化,编译器的优化,及CPU级别的优化。
5.1-5.6
应试 ★★★★: 经常会有一些让你寻找程序瑕疵的问题,你能看出代码在哪些细节上可以优化吗?
修炼 ★★★★★: 你当然需要知道编译器能在什么层面上自动帮你优化代码,在编译器无法优化时你自己如何在小细节上优化代码。
5.7以后
CPU级别的优化,微指令的概念,功能单元上微指令的并行,程序分支的预测等。
应试 ★: 对于软件相关职位来说,不会考这些东西的。
修炼 ★★★: 不用深入,但是应该知道并能够理解。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
chapter6
The Memory Hierarchy
详细介绍了计算机系统中的存储结构。
6.1 介绍了不同种类的存储设备以及对应的存取数据的方式。
应试 ★: 很少会考到这么底层的东西
修炼 ★★: 知道就好了。
6.2-6.5 介绍了存储设备的组织形式,着重介绍了Cache及其工作方式。
应试 ★★★★: 在面试中,经常会考到跟cache相关的题目。
修炼 ★★★★: 存储结构和cache是计算机中很基础也很重要的概念。
6.6-6.7 介绍了程序如何和cache打交道,不同的循环嵌套顺序、遍历方向等对cache命中的影响。
应试 ★★: 很少会考到这些东西。
修炼 ★★★★: 你当然希望在写多重循环的时候知道什么样的嵌套顺序效率最高。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
chapter 7
Linking
顾名思义,详细讲解了程序的链接过程,主要分为静态链接和动态链接,以及链接过程中使用到的技术。
应试 ★★★:需要知道链接的基本概念,尤其是动态链接可能会考到。
修炼 ★★★★★:有的时候,你很可能会被一个链接错误折磨好几天。另外,动态链接库的应用现在也是很普遍的。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
chapter 8
Exceptional Control Flow
顾名思义,本章主要讲解异常控制,不过这里的“异常”并不是Java或者C++里的狭义的异常,而是一个广义的“Exceptions”的概念,包括中断(Interrupt,硬件层面,主要是I/O中断),陷阱(Trap,主动产生的异常,主要用于用户程序和系统内核间的交互,如系统调用),错误(Falut,如除0错误;页错误:在虚拟内存中,所请求页面并不在内存中,需要从硬盘读取等。错误可能恢复),中止(Abort,致命错误,无法恢复,如硬件问题等)。
在介绍异常处理的同时,引入了进程的概念,对进程控制也进行了详细介绍,以及进程级别的Exception:信号(signal),这个级别的异常处理由操作系统完成,通常叫做上下文切换(context switch)。
应试 ★★: 主要掌握进程的概念即可。
修炼 ★★★: 知道异常控制流是怎么回事,用户程序和系统交互(如系统调用)的原理和方式即可,不用太深入。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
chapter 9
Measuring Program Execution Time
本章介绍了如何尽可能准确的测量程序执行的时间。在实际编程中,我们极少会需要进行如此精确的测量,所以我跳过本章不读。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
chapter 10
Virtual Memory
非常重要的一章,虚拟存储机制是计算机实现多任务的一项重要技术。计算机正是通过时间片技术使得每个进程在执行时仿佛独占CPU,进而又通过虚拟存储机制使得每一个进程在执行时,仿佛独占内存。
10.1介绍了虚拟地址和物理地址,CPU进行寻址操作产生的是虚拟地址,通过存储管理单元(memory management unit)转换为实际的物理内存地址。
10.3~10.5讲述了虚拟存储机制的优点:使得内存可以作为硬盘的cache;能够更方便的管理内存;能更好的提供内存保护机制。
10.6 介绍了虚拟地址如何转换为物理地址。
10.7 很精彩的一节,通过Intel Pentium和Linux的实例讲述了整个存储管理机制。记得以前上操作系统课的时候,各种理论、机制学了一大堆,但是就是不知道实际的操作系统到底用的哪套方法。而本节内容正是通过实例让你对刚学的理论机制有一个直观的了解。
10.8~10.10 讲述了存储映射(Memory Mapping)、动态内存分配和垃圾回收机制。
10.11 很实用的一节,列举了一些C编程中容易犯的内存引用错误。
应试 ★★★★: 本章内容是操作系统课程的重点内容,如果考操作系统,极有可能考到。10.11节的知识也能帮你应对一些程序挑错题。
修炼 ★★★★★: 操作系统中重要的基础内容,即使你只使用Java这样的高级编程语言,至少也应该弄懂垃圾回收机制吧。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
chapter 11
System-Level I/O
介绍类Unix系统下的I/O读写,主要介绍系统层面的I/O接口。由于我们日常编程所用的I/O接口都是各种高级语言提供的经过封装的标准接口,故而如果不进行嵌入式编程的话这部分知识不是必须的,我跳过没读。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
chapter 12
Network Progranmming
简单介绍了网络模型,TCP/IP协议,类Unix系统的socket接口等。
应试和修炼 ★★: 因为篇幅限制,本章只做了简单讲解,要掌握网络编程知识还需要参考专门的网络技术书籍。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
chapter 13
Concurrent Programming
本章简单介绍了并发程序设计的内容,主要包括:
进程级别的并发,各子进程拥有不同的虚拟地址空间,需要IPC(InterProcess Communication)机制共享数据,进程之间切换开销大。
I/O复用,事件驱动,单进程运行,共享虚拟地址空间,并发效果不理想。
线程,介于上述两种中间,各子线程共享进程的虚拟地址空间,线程间切换开销较小。
另外介绍了并发编程中访问共享变量的信号量机制。给出了4类容易引起线程不安全的函数。
应试 ★★: 除应聘相关职位外,并发编程考的比较少,不过需要清楚锁机制和信号量机制等。
修炼 ★★★: 多线程程序在现今的开发中还是很常见的,但是本章介绍的比较简单,需要参考另外专门的书籍。

  《深入理解计算机系统(原书第2版)》读后感(三):这是一本非常全面带领你进入计算机世界的书

今年因为找工作的缘故,在知乎上找到了这本书,刚开始看的时候也是一头雾水,在看这本书之前看过 唐朔飞的《计算机组成原理》这本书,与csapp相比,唐的书在很多时候是直接给出结论的,比如dram要分两次选一块,这个结论一下就呈现在我眼前,当初直接吓到了,这什么玩意,完全没有一点概念,相比唐的这种果敢直率给结论的写书方法,csapp中画了一个图(p384),果断让我这个被芯片虐成渣的学渣理解了这个概念。
另外,这本书的切入点也十分明显,先完全打通二进制世界的你的任督二脉,然后再带领你去发现一个个结在书上的人参果,第二次看这本书的时候,完全被作者这样的布局感动哭,遥想自己晚上不睡觉啃着唐的那本书,我那逝去的青春啊。
再者,csapp中的习题都挺不错的,外加实验(我还没有完全做完),骚年,不要多想了,投入到cs&ee的怀抱吧。

  《深入理解计算机系统(原书第2版)》读后感(四):在一定程度上,其实它是在锻炼你的思维方式

这本书的中译名为“深入理解计算机系统”,有一定的问题。如果直译原书名,应该是类似于“以程序员的视角理解计算机系统”。可能在国内看来,这是讲系统的,用C和汇编语言的,因此很“深入”。事实上,这是一本入门级别的书,这本书其实并不“深入”,它谈论的内容还是相对比较浅的。但“浅”不代表“浅薄”,写一本面向初学者的好书往往是非常困难的,它的作者都是顶尖学府的教授,结合多年教学经验而写出来的。
CMU把这本书作为“Introduction to Computer System”课程的教材,是面向计算机专业低年级学生的“计算机系统介绍(导论)”。这些学生只是刚刚了解如何使用一门高级语言,对于计算机系统的工作方式等话题可谓一点都没有接触过,而CSAPP对读者的背景也只要求是“一些编程经验”而已。这本书的话题覆盖面很广,从计算机的基本组成,二进制数据表示方式,到机器级别的指令,CPU工作方式,存储结构和优化,操作系统的虚拟内存管理,程序运行方式,I/O,网络、到(较底层)程序性能优化和并行程序开发等等。所以,它其实覆盖了“计算机组成原理”,“操作系统”等许多课程的内容,其中的许多话题都能再次展开,继续深入,都能再变成一本,甚至N本经典。在高年级的计算机专业课程设置中,都会有更加纵向的内容出现。另外,《计算机科学前沿技术》一书对CMU中的课程体系进行了介绍,有兴趣的读者可以去看看,该书还推荐了很多其他好书,当然也包括这本书,准备按照这本书的介绍全部拿来看看。
“覆盖面广”,其实就是这本书的最大优点。它告诉我们计算机是如何设计和工作的,操作系统有哪些重点,它们的作用又是什么。CSAPP的目标其实便是要讲清楚原理,但并不会把某个话题挖掘地过于深入,过于细节。看看这本书后,我们就可以对计算机系统各组件的工作方式有了理性的认识。在一定程度上,其实它是在锻炼思维方式 -- 计算思维。

  《深入理解计算机系统(原书第2版)》读后感(五):挺好,推荐,力荐第二部分

感觉最精彩的是第七章,或者说整个第二部分。
第三部分如果作者没有用自己写的库,那也是很好的;可惜第三部分很多程序都是用作者自己的库写的,因为进行了封装,感觉对初学者不是很好,特别是网络编程那一块儿。网络编程那一块儿没有介绍到守护进程的知识,可能需要找其他书再看一下,如果对网络编程感兴趣的话。不过第三部分也都看完了。
建议时间不多的,直接看第二部分。这是我第一次挑着看一本书,第一次就看了第七章链接。很精彩。
这本书分成三个大的部分也挺好的。
有时间实践一下实验。
跳着读的,其中第2章、第4章、第5章没看。第5章一直打算看的。对学过计算机专业课的,建议不要按部就班读,不然读到第2章信息的表示,好多书都讲过的,就不感兴趣了。
这里有篇读后感对各章进行了评价,http://book.51cto.com/art/201103/249824.htm 看来有时间可以看下第5章。
有时间重读重点章节,做下总结和笔记。
看完这本CSAPP后,开始看APUE了,看APUE的前5章发现都是函数,而且好多东西CSAPP里讲过了,看得没什么效率。。有人也这样看CSAPP、APUE、UNP这几本书吗?是不是应该跳着看会比较好

  《深入理解计算机系统(原书第2版)》读后感(六):一个自学者的个人感受

我于今年5.11日拿到这本书,开始了我的自学之旅。
PS:我想这是一本技术类书,买这本书的人大概都跟我一样是为了学习,而不是当科普书或者什么的。
对于前三个章节,我的学习体验都是很好的,以我的水平来看,算是讲的非常清楚了,我也学到了很多知识。
但是在学到第四章---处理器体系结构的时候,学习体验就不是那么好的了。而且我这个学期的专业课恰好是讲的寄存器和时序逻辑电路的东西,就这样,在本章节的后面,关于流水线的问题那里,看完之后还是一脸懵懂,完全不能理解。
处于以上原因,第四章的后半部分被我直接跳过了,现在在学第五章,感觉还能学的动。
对于这本书,我的学习心得就是,练习题一定要做,如果有能力的话,可以把后面的家庭作业也做一下,不过估计没几个人能做的下来,反正我没做。

  《深入理解计算机系统(原书第2版)》读后感(七):程序员必看

找工作之前认真把《深入理解计算机系统》看了一遍,看完最大的收获是理解了一个程序如何从源代码,经过编译链接,变成正在运行的程序。每次面试的时候把程序地址空间一讲,佯装自己专业基础扎实,硬是把面试官骗过去了,哈哈~~
书的后半部门讲到了套接字,之前看《UNIX网络编程》一直对套接字理解不深刻,看完《深入理解计算机系统》后半部分,顿时有种摸到门道的感觉。
对于我这种平时几乎不写代码的人,看来这本书,总算把上课学的编译原理、操作系统等等基础课程的知识串联起来了。我想对于经常写代码的人,看这本书理解更快了。这书真是的程序员必看的书。
唯一觉得不足的地方时,本书对内存管理和虚拟内存介绍的不多,当然也有可能是书上写了,但是我没理解透彻。

  《深入理解计算机系统(原书第2版)》读后感(八):为什么不能早点遇到它

在刚上大学一年级的时候,学校的哥哥姐姐们都力荐了这本书,一直奉行“好书就该收藏”,所以二话不说就买下了这本所谓的“神作”,刚买来读了百来页,但是略觉枯燥,因为与硬件相比,我更喜欢的是软件,其实我是没有认识到,读这本书要一定的“计算机组成原理”的基础。
于是束之高阁......
待二年级下半年,我重新拿起了这本书,刚读了一章,才知道我已经冷落了这本书整整一年的时间,惭愧啊。
这本书绝对是本好书,古人所谓茅塞顿开,醍醐灌顶,只要你拿起这本书,并且用心读下去,绝对是这种感觉,我这才体会到“爱不释手”的爱书的感觉,总想一下子把它读完,但又不舍得,所以还是一字一句的啃。
无论是软件还是硬件,这本书都涉及了。
虽为好书,但也并非零基础,大家最好在学习计算机组成原理的时候一起看,一个字爽。
我特别喜欢虚拟存储器,Cache这些部分,特别赏心悦目。

  《深入理解计算机系统(原书第2版)》读后感(九):强烈推荐Coursera的《Hardware/Software Interface》

最新课程:2014年6月30日这门课在Coursera开始第二季,地址https://www.coursera.org/course/hwswinterface,请大家及时关注
如果你觉得这本书过于厚重担心看不下来的话,不妨跟着coursera的Hardware/Software Interface这门课程去听一听。这本书虽然是这门课的超集,但是其中的关键与精华都在课程中有讲到。其实更关键的是,coursera的课将原书中最为精彩的lab移植了过来,在做这些作业时很难感到枯燥。下面把这门课的lab列出来,以及一些提示:
Lab1:位运算,我觉得这是最无聊也是最有趣的一个Lab,看你怎么看它。说其无聊主要是指没有成就感(相对于其他的Lab来说),说其有趣是指也许这是你第一次用这么少的代码实现这么多的功能。甚至可以只用与或非来实现三目运算符
Lab2:BinaryBomb,拆炸弹,非常经典的Lab。一共有6个Phase,每个Phase都需要你打开GDB(懒人可以用DDD),打各种断点,查看各种寄存器内存状态,分析汇编语句,整理出结构。6个Phase从易到难,分别是简单的比较(助教已经演示)、循环(这个可以算是最耗时间的,一旦你通过了这个Phase,剩下的就好说了)、switch语句(注意计算offset)、递归(嗯,fib什么的)、指针数组(注意跟踪过程,一定要有纸笔)、链表(排序算法什么的)。这个Lab是整门课最精彩的Lab,因为时刻伴随着你在一步步地逼近真相的神秘感与快感。当这个Lab做完后,你会发现GDB调试功力大涨,对于操作系统的调用过程也很熟悉了。
Lab3:内存攻击,最邪恶的Lab没有之一,这个Lab是要你去利用内存溢出的漏洞去攻击给你提供的可执行程序。这个Lab也有好几个Phase,最后一个Phase是直接注入自己的汇编代码。sendmail真是被黑出翔
Lab4:不透明的Cache,又是类似于Lab2的黑箱Lab,通过给几个虚拟的Cache提供输入,以及Cache给你返回的Hit/Miss信息判断Cache的规格。对了解Cache的结构很有帮助
Lab5:手写一个malloc,嗯,你没看错。不过其中最痛苦的块合并功能已经给你写好了,你只要知道malloc、free的流程就可以了,侯捷老师课上学的东西终于能派上用场了
这就是全部的5个lab,设计的精巧程度自然不用多说,关键是,之前有可能只是抽象的学过这些概念,比如Cache、比如内存溢出攻击,这次就可以实际观察、演练。
这门课的最后一章还讲了一些JVM与Intel架构的不同之处,对Java有些了解的同学可以听一听。
最后还要说,尽管这本书和这门课很精彩,但毕竟是体系结构入门的教材,在大多数方面还是和操作系统、组成原理的深度是比不了的。所以我觉得这本书大三之前还值得看(最好在操作系统前看),到大三之后,除非是为了面试临时复习抱佛脚,否则这本书还是讲的有些浅了。不过如果是作为汇编的入门,倒是很好的教材。

  《深入理解计算机系统(原书第2版)》读后感(十):让我激起对计算机无穷乐趣的书

大学是一段美好的时光,可惜我全拿去玩游戏了,毕业时也就会写个hello world吧。
然后去了富士康,哈哈哈哈,不堪回首啊。在之后又换了工作,虽然是编程,但是也只是为了应付工作,学学c的语法,写一些业务逻辑的代码。编程对我来说并不是什么乐趣吧。
但是在接触到这本书之后,真的有点开眼看世界的感觉啊,计算机是如此的美啊,看过此书才知道自己的无知与计算机的广大,这些东西可能对一些大学学过的人来说不过如此,但是对我,却是都是新知识啊。因为它,我在一个月的时间里学了汇编,想想都觉得自己咋变得这么有动力了,哈哈。
再后来,看linux 内核的代码,顿时有种如鱼得水的感觉,如果没有看过这本书,看内核代码我估计就是看天书了,并间隙着返回去重新读大学的书,哎,以前咋就看不懂了,猪头啊
评价:中立好评差评
【已有2位读者发表了评论】

┃ 《深入理解计算机系统(原书第2版)》读后感精选10篇的相关文章

┃ 每日推荐