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

花了两周时间认真阅读了《深入理解计算机系统》,确实是一本不错的书,简单说一下自己的读后感,如果三年前读到就好了

全书将软硬件串在一起帮助我们描述了程序是怎么在系统中工作的,书中的链接加载程序布局等我在《程序员的自我修养》中读到过,其余很多知识和计算机原理、操作系统、系统编程也有很多重叠,总体说来内容并不是很陌生,但仍然有不少收获。第三部分io网络并发三章尚未阅读

写下之下的这些文字是为了帮助自己更好的复习全书的内容,尤其是自己以前掌握不深刻的部分

 

书的第一部分是全书的精华,主要讲程序与硬件,第四章除外,我没有看

第二章,重点是数的表示方法

  • 移位运算  算术右移和逻辑右移的区别
  • 字节顺序  大端和小端
  • 数的格式转换  先改变大小,再改变有无符号,无符号有符号隐式转换带来的灾难
  • 整数的运算  主要是各种溢出问题
  • 浮点数  乘法不具备可结合性,转换为整数时可溢出 

第三章,重点是汇编程序,个人认为收获最大的一章

  • 各种指令,mov,leal,移位,运算,控制,条件传送指令*,
  • 各种逆向工程,结合习题很有意思
  • 函数调用时帧栈结构
  • 联合、结构数据分布和对齐的问题
  • 内存越界和缓冲区溢出
  • 64位(没有太仔细看,寄存器多了大了,函数调用有很多不同,很多函数不需要栈帧,参数通过寄存器传送)

第五章,程序优化,全章由一个例子贯穿始末,量化了不同方法带来的性能改进

  • 编译器优化的局限性 ,限制这种能力的原因有:存储器别名的情况,函数调用(静态变量,可重入)
  • 循环优化,不变的变量只算一次
  • 减少函数调用(性能和可读性的折衷)
  • 不必要的内存引用(尽量用临时变量在寄存器中,避免不必要的内存读写)
  • 从处理器的角度考虑(流水、预测分支、关键路径),循环展开,考虑流水(充分利用处理器的多个加法器等,超标量)
  • 程序剖析的工具 gprof

第六章,存储器层次结构

  • 各种存储技术,寄存器,SRAM(高速缓存),DRAM(内存),硬盘(传统硬盘、固态硬盘),网络
  • 各种缓存,高速缓存L1L2是内存的缓存,内存是硬盘的缓存,各种缓存的管理机制(这里只讲了高速缓存的,后面会将内存管理)
  • 程序的局部性,时间和空间的


第二部分,主要将程序在系统的中的运行,这一部分和前一部分差距较大,原因是这一部分我比较熟?
第七章,链接

  • 可以参见《程序员的自我修养》这本书,主要是目标文件格式阿,符号解析阿,重定位阿的,内容比较简略
  • 静态库的链接顺序,经常会出错的一个问题
  • 一些工具的使用,readelf,objdump,ldd
  • 感觉从这一章开始,翻译就很不给力了

第八章,名字很奇特,叫异常控制流讲了各个层面的异常,其实我觉得这一章还不如叫进程

  • 四类异常:中断(IO设备),陷阱(trap,咋这么翻译呢,系统陷入多好听,主要是系统调用),故障(缺页),终止
  • 进程相关,fork,execve,wait,waitpid
  • 信号。signal
  • 非本地跳转,软异常?setjmp,longjmp,据说是try\catch实现的基础
  • 一些工具(pmap,strace,ps,top)

第九章,虚拟存储器,重点应该是内存管理,地址翻译的机制,我讨厌有些地方该叫内存却叫做存储器

  • 内存管理,主要做了两件事,从虚拟地址到物理地址的翻译,提供了内存读写的保护(只读的内存不能写,只读写的不能运行)
  • 动态内存的分配,给出了几种分配器的数据结构,这一部分没有仔细看
  • 垃圾回收
  • 各种内存的错误,总结的很好,基本我都犯过

回头再看第一章,人家总结的真好,整个一个计算机系统就是一个大抽象,把各种硬件系统抽象为一些简单的概念,这些概念让我们这些程序员能够轻松的处理程序而不用再管硬件了,伟大啊
三个基本抽象:

  • 文件--负责抽象IO设备
  • 虚拟存储器--负责抽象IO设备、内存
  • 进程--负责抽象IO设备、内存、处理器

整本书就是负责介绍怎么抽象的

 

写完了,再次感谢作者和译者

 

转载于:https://www.cnblogs.com/hopen528/archive/2010/12/07/1899608.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值