Skip to content

Solutions and Notes for Labs of Computer Systems: A Programmer's Perspective 3rd Editon // 《深入理解计算机系统》第三版的实验文件、解答与笔记

Notifications You must be signed in to change notification settings

LIMINGNING/CSAPP-Labs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CSAPP-Labs

这个项目是我对《深入理解计算机系统》第三版配套实验的解答和我写的笔记,实验文件在目录labs下,来源Lab Assignments

目录:

包含所有的lab文件,以及CMU给的参考文档,也包含我写的解答文件,我的实验环境是 Ubuntu 16.04 amd-64,其中source保存了所有lab的原文件;

是我写的笔记:

涉及了位运算,补码和浮点数等内容,都是C语言程序设计题。

拆除二进制炸弹,可以大大提升看汇编代码的能力。

这个lab主要涉及了栈随机化,不可执行等栈保护的方法和使栈溢出、ROP攻击等内容。

Architecture Lab,涉及了Y86-64指令集,和SEQ和PIPE的实现方式,以及程序优化等内容,可以熟悉汇编和硬件语言HCL

这个lab在CMU已经被Cache Lab取代了,考虑到Cache Lab比较难,可以先做这个lab练练手。基于书上第五、六章对程序进行优化,主要用了循环分块消除缓存不命中和消除分支预测错误等方法。

Part A要求写一个缓存模拟器,Part B要求优化矩阵转置函数,减少缓存不命中数。这个lab可以加深对缓存的理解。已写完Part A。

About

Solutions and Notes for Labs of Computer Systems: A Programmer's Perspective 3rd Editon // 《深入理解计算机系统》第三版的实验文件、解答与笔记

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 54.5%
  • Makefile 23.0%
  • HCL 11.3%
  • Tcl 4.7%
  • Perl 4.5%
  • Shell 1.0%
  • Other 1.0%