《深入理解计算机系统》读后笔记一

来源:互联网 发布:颓废 知乎 编辑:程序博客网 时间:2024/04/29 02:53

    《深入理解计算机系统》这本书从一个程序员的视角详细剖析了整个计算机系统,涵盖了组成原理、汇编语言、体系结构、操作系统、网络等计算机基础知识。是很多人都推荐的一本书,所以有空的时候花了近一个月的时间把我感兴趣的地方都看了一遍。

    在看完整本书之后,现在把我看过的内容整体回顾一遍,作为复习,也作为以后再回头看这本书的索引和参考。

    第一章——计算机系统漫游   

          这章是对整本书所要讲的内容的一个简介,整体的介绍了计算机体系结构,才看的时候对以前没有接触过的进程、线程的概念还是不能理解,但是在深入看了后面的内容后就理解了。然后在这章里我觉得有两个概念比较重要:

1)存储设备的层次结构;


2)关于操作系统的三个抽象:1、文件是对I/O的抽象;2、虚拟储存器是对程序存储器的抽象;3、进程是对一个正在运行的程序的抽象。


          第二章——信息的表示和处理

        这一章介绍了数据在计算机如何被处理和储存——以二进制的方式 。由二进制表示整数的方式具体分为:补码、反码、无符号的形式,这三种方式又是如何进行四则运算,如何进行相互转换,并给出了推导公式;什么情况下会产生溢出。这些内容虽然很细节化,很底层,但是由于大量的计算机安全漏洞都是由于计算机算术运算的微妙细节引起的,所以这一章的内容还是值得一看的。

笔记:

2.1.9  逻辑运算与位级运算
 位级运算:或“|” 与“&” 取反“ ~” 异或“^”(常见用法:实现掩码运算)
 逻辑运算:或“||” 与“&&” 取反“ !”
差异1:逻辑运算认为所有非0参数都表示true,参数0表示false
差异2:逻辑运算如果对第一个参数求值就能确定表达式的结果,那么逻辑运算符就不会对第二个参数求值。

      关于浮点数的部分,由于我现在的阶段用的并不多,所以暂时没看,等以后用上了再看。


      第三章——程序的机器级表示

      这一章讲了汇编语言,很多地方都是以一种逆向工程的方式来教授,用GCC把写好的c语言代码转化为汇编代码,然后剖析产生的汇编代码来加深对具体代码的实现,因为太过于底层,所以只是看看最简单的算术逻辑操作就没再往下看了。


      第四章——处理器体系结构

       没看

0 0