Skip to content

zennlyu/openCS_15.213.CSAPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSAPP-Labs

  • First, read through the materials and THE GREAT CSAPP. Each course's theme correspond to the chapter on book.
  • There're 7 labs available for u to conquer. The process of doing them alone is not only helpful for computer basics, but also the C programming language which we will see very powerful in many ways.
  • For beginners self-learning CS like me, the CMU CS Structure below may be of great help for learning routes. It's just a reference for beginners who can't follow regular college processes. However, we can follow alike structure to build our own tech stack.Screenshot_CMU_System

Course Materials

Progress

Num.
1 Bit, Bytes and Integer
2 Floating Point
3 Machine Level Programming
4 Programming Optimization
5 The Memory Hierachy
6 Cache Memories
7 Linking
8 Exceptional Control
9 System Level I/O
10 Virtual Memory Control
11 Virtual Memory System
12 Dynamic Memory Allocation
13 Network Programming
14 Concurrent Programming
15 Synchronization: Basics
16 Synchronization: Advanced
17 Thread Level Programming
  • [Data Lab 笔记]

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

  • [Bomb Lab 笔记]

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

  • [Attack Lab 笔记]

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

  • [Architecture Lab (Y86-64) 笔记]

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

  • [Performance Lab 笔记]

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

  • [Cache Lab 笔记]

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