CSAPP:深入理解计算机系统概述(各章节重点概述)

终于“草草”阅读完了CSAPP,第一次读完,主要目标是建立起知识框架,没有在细节上进行过多的深追,主要目标是构建起知识网络,为后续细节学习打下基础,本文先进行概述,描述各章的主要思想与重点内容。

第一章(计算机系统漫游)
可以说是整本书的一个缩影,很多国外的教材都采用这种方式,以简单的例子来给读者呈现整书的思想。
该章节主要描述了一个简单的程序是如何运行起来的,这一章也提到了高速缓存、进程线程、虚拟内存、网络通信等都会在后续章节进行细讲。

第二章(信息的表示与处理)
这一章节主要讲的是数据的底层存储格式与基本操作,解释了数字的表示(主要是补码),对数据溢出也进行了详细的讲解,最后对整数计算与浮点计算进行了详细的讲解。

这一部分内容看似繁琐枯燥,需要细细琢磨、推演,但这部分绝对是重点内容,对于bug定位、精度评估以及理解计算机底层原理都是至关重要的。

第三章(程序的机器级表示)
这一章就是讲汇编,汇编可以说是适合人类阅读的最底层代码。尤其是随着编译器技术的提升,我们写的代码可能会被编译器优化地“面目全非”,编写汇编可能越来越不重要(因为开发周期长、投入比低),但能够用反汇编对代码进行分析还是十分有用的。

这一部分也是需要细细研读的,特别是之前没接触过汇编的同学,读起来不是那么容易,需要静下心来研读一番,特别是从事高性能计算的同学,反汇编信息具有重要地参考价值。

第四章(处理器体系结构)
这一章较为接近硬件底层,通过阅读可以学习到底层的结构,个人认为理解主要思想即可,如果不是从事底层软件开发,不必花费过多精力。

第五章(优化程序性能)
这一章主要是一些代码优化的细节讲解。
以个人经验来看,去除冗余操作之后,优化程序性能主要是两个思想:(1)减少访存、提高cache命中率。访存的时间是往往大于计算时间的,所以应该尽量减少访存。如果无法减少,应该尽量提高cache命中率。(2)保证循环内流水线排布正常,不要在循环内部加判断,这样CPU的流水可以排布起来,耗时更短。

第六章(储存器结构)
这章主要讲计算机体系中的多级缓存机制,需要详细阅读一下各级缓存的映射原理。

这一章可以说是一个重点内容,所有的开发都离不开访存,另外,后面的“虚拟内存”章节,部分原理与本章相似,理解本章有利于后续章节的理解与认知

第七章(链接)
这一章的主要内容就是讲我们在编译的时候,编译器都替我们做了什么,生成的文件又包含了哪些信息。

这一章对于排查编译问题是有一定帮助的。

第八章(异常流控制)
“异常流”,这个词听起来像是系统出了问题,其实这个翻译似乎带有误导读者的嫌疑,系统的中断也是一种异常,这里的异常可以理解为打断正常流程的含义,并不完全代表系统故障。

这一章的内容跟笔者的工作内容无相关性,读完之后也是对进程和信号等概念有了一些认识。

第九章(虚拟内存)
这一章主要讲虚拟内存原理,个人理解这里跟多级缓存机制的原理类似。

这一章主要是涉及到一些地址翻译的原理,对于软件开发的工作,这部分是需要细细研读一番

第十章(系统级I/O)
这章主要是UNIX下的I/O,其实开发过程中,尽量使用标准库(stdio)即可,除非涉及到非常底层的开发。

本章内容较为简单,与UNIX编程知识存在交叉,粗读即可。

第十一章(网络编程)
这一章主要是讲网络编程原理,阅读之后对网络编程是有一定了解的,如果涉及到服务器开发,个人理解这部分还是要仔细阅读一番。

第十二章(并发编程)
这里主要是讲并发与并行编程(多线程编程),并行主要是以Posix(pthread)为例进行讲解,并对数据共享、数据安全等内容进行讲解。

总结,本文对CSAPP各章节的主要内容进行了概述,可能跟从事的工作有关,工作相关的内容,理解就更深入一些,不相关的内容,读完可能也是蜻蜓点水,欢迎大家讨论~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值