二读《深入理解计算机系统》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28788687/article/details/82389391

二读《深入计算机系统 》

       好久没有写过博客了,想来理由有二,其一大概是懒惰在作怪,其二无非是自己一直都很迷啦。最近重新“读完”了《深入计算机系统》,想了想觉得总是该留下一点东西。这才又写了这篇博客,想留下点痕迹,以便以后再回来的时候能知道现在那些地方没理解清楚。
       首先还是依葫芦画瓢,先跟着别人评价下这本书,这本书可以用我经常再各大程序论坛看见的一个词来形容:经典。哈哈哈…实在是想不出好的词了。其实别人想怎么说都是别人的事,自己去看一看不就知道了,自己得出来的评价才是最好的评价。全书总共三部分,在我看来第一部分(程序结构和执行)可以算是基础,第二部分算是进阶,三部分则是跟前二者截然不同的一部分。让我们慢慢来看,首先是第一部分。

  1. 第一章的第一小节是一定要看的,读这一段的感觉就像如漫游(小节标题)形容的一样。这一部分会概况的给你描述出一个程序的存在形式,执行过程,计算机抽象出来的层次结构,还会为我们简要介绍进程、虚拟内存等知识点。这一节一定要看!
  2. 第二章主要是介绍数据在内存中的储存形式,先是进制的相互转换,然后讨论了数据的大小、大小端、位运算、移位运算。紧接着就是整形数据的表示范围、补码表示方式。如对于带符号的int类型表示的最大正数比最小负数的绝对值小一。然后是有符号与无符号之间的转换关系,以及程序会产生的一些异常情况。如为什么计算机认为-1 < 0 是 false。介绍完整数然后就是浮点数的表示与储存方式,以及舍入与运算问题。这一些应该算是比较容易理解的,认真用心去看就行了,第一次遇见不懂得多看看前面的,多查查一点资料就行了。毕竟这本书属于学术派,用词什么的比较严谨,可能在我们看来无非是把简单的问题说的很复杂罢了。值得一提的是,课后的作业也一定要去看,切不可跑马观花。
    第四章(处理器体系结构)算是介绍硬件方面的东西,不敢兴趣可以跳过。
  3. 接着是汇编以及程序性能优化。因为是第二次读,所以读起来不怎么难受,还记得第一次的时候,读的我心态爆炸。哈哈哈…还是要沉下心来,方得始末。至于汇编这一部分,第一次读的时候算是跑马观花了,他说什么就是什么,压根就没去关心一些细节。这次细细的读还是发现很多问题。作者还是借一个函数为什么展示了编译出来的汇编程序。总的来说,这一部分可以不用在意具体的数据以及寄存器的名称,了解大体意思即可。访问信息也大体看看即可,不用背下来寄存器的命名。值得一提的是书中120页的提到的”生成4字节数字的指令会把高位4字节置为0“,在图3-11中语句就会用到这句话,第一遍读的时候,压根没在意,以为自己懂了,谁知…..希望各位以我为鉴,多想一想,切不可捡一个掉一个。3.4.1主要是寻址模式,总的来说大多数可以看做是 I m m ( r a , r b , s ) 的变种,接着是很重要的数据传送指令,mov..都是这种形式的。注意一下lea即可。这一部分就这样了哈。还有后面的jump语句,条件码。认真看,这些真不难。最后的优化程序性能可以说是我最喜欢的一部分,也可以说是我们能理解部分最重要的一部分。在这章有我们经常提到的边界处理,if-else 语句的性能,内存引用等,这些都是我们平时写代码会用到的。在这里就不细讲了,毕竟这篇博客是来概述的,不是介绍一些细节的。当然,有问题也可以与我讨论。

    好了,又水完了.hahaha,写着写着,又觉得无聊了。

猜你喜欢

转载自blog.csdn.net/qq_28788687/article/details/82389391