Introduction¶
CSAPP: Computer Systems: A Programmer's Perspective
- Textbook: Computer Systems: A Programmer's Perspective, 3/E (CS:APP3e))
- CMU Fall 2015 schedule, slides, labs: 15-213/15-513/14-513 Introduction to Computer Systems (ICS)
- Bilibili: Lecture Videos
Schedule¶
1 天 1 个 Lecture,一共 26 个 Lectures
Labs¶
Lab Assignments
- Data Lab: Bit-level operations. Manipulating bits.
- Bomb Lab: Assembly language, debugger. Defusing a binary bomb.
- Attack Lab (64-bit): Stack discipline, buffer overflow attacks. The basics of code injection attacks.
- Cache Lab: Minimize the number of misses on a simulated cache. Building a cache simulator and optimizing for locality.
- Shell Lab: Writing Unix shell. Concurrency.
- Malloc Lab: Writing malloc package. Data Layout and organization. Systems-level programming.
- Proxy Lab: Writing Web proxy. Network programming. Concurrency and synchronization.
- Architecture Lab: Y86-64 array copying function, interactions between hardware and software.
- Performance Lab
Lab1: due L04 floating point
Lab2: due L06 machine control
Lab3: due L10 optimization
Lab4: due L12 cache memories
Lab5: due L18 vm systems
Lab6: due L20 malloc advanced
Lab7: due L26 parallelism