CSAPP 小结

花了大概一个寒假的时间,读完了 CSAPP 这本书,看完了这门课的视频,并且完成了部分家庭作业和七个 lab。

读完这本书有一些收获,让我接触到了很多未曾涉足的方面,让我明白自己还有哪些东西需要继续学习,算是为未来铺路的一门导论课程(不过好像有点晚了?)。

简要评价一下各个 lab 的体验:

data lab

整数部分涉及到了很多位运算的技巧,有一道问题把我难住了。浮点数部分没有什么意思,基本按照要求模拟就可以,而且感觉测试样例比较弱。

bomb lab

很酷炫的一个lab。需要使用 gdb,并且阅读大量的汇编代码。反复阅读,从一开始只能读明白破碎的部分逻辑,到逐渐拼凑出完整的函数,还是很让人激动的。

attack lab

很酷炫的一个lab。这一部分在课本上的介绍比较简略,通过实验让我有了更深的体会。同时体验了一点带黑阔的感觉(虽然这里的攻击技术都已经会被防范了)。

cache lab

第一部分是一个比较简单的模拟工作。第二部分主要是分块的技巧,不过对于 64*64 的矩阵的优化还是比较巧妙的,值得学习。

shell lab

大部分代码都能在书上找到,唯一找不到的一个函数是繁琐的模拟工作,需要处理各种错误情况,而且还没有自动化测试。不过巩固了对信号的理解。

malloc lab

很折磨的一个lab。最基本的模型可以做书上找到,不过需要在此基础上进行改进。去除脚部块和实现 segregated free list都花费了我将近一天的时间。在此过程中进行了大量的调试(主要都是用printf),不过最终看到性能相比最初有了一定的提升还是很高兴的。

proxy lab

最后一个lab,综合性比较强。不过由于后面两章看得比较简略,所以一开始有点懵。理解其原理后,大部分代码还是可以从书上找到。不过两个阶段分别融合了生产者消费者模型和读写者模型,还是挺有趣的。

总体来说还是很棒的体验!


CSAPP 小结
https://je3ter.github.io/2024/02/17/CSAPP/CSAPP 小结/
作者
Je3ter
发布于
2024年2月17日
许可协议