Benedikt Falk
Teaching Material - 252-0061-00L Systems Programming and Computer Architecture
The exercise session slides can be found on moodle. Any additional material will be uploaded here. If you should have any questions feel free to send me an email to falkbe 'at' ethz.ch
Disclaimer: The exercise slides found on this page are not the same as the offical ones found on the moodle (cf. link above).
I always only add and never remove slides from the official ones. The additional slides are clearly marked as such, with resp. blue headings, and
are trying to give additional input and more intuitive explanations next to the official material.
The slides are not official course material and these slides per se not exam relevant,
that does not imply that the contents covered are not exam relevant. Correctness is not guranteed.
Exercise Session Wed 14-16, HG G 26.3
Moodle Link
GitHub Link
Recommended Literature
- Computer Systems: A Programmer's Perspective by Randal E. Bryant and David R. O'Hallaron, Carnegie Mellon University
- Digital Design and Computer Architecture by David Money Harris, Sarah L. Harris
Additional Ressources
- x86-64 Cheatsheet: Link
- Computer Systems Finals CMU (Additional Training): Link
- Clockwise Spiral Rule: Link
- GDB Online Documentation: Link
- GDB Cheat Sheet: Link
Exercise Sessions
Exercise Session 1 (18.9.24): Introduction and Environment Setup
Exercise Session 2 (25.9.24): Makefiles and GCC flags
Exercise Session 3 (2.10.24): Pointers
Exercise Session 4 (9.10.24): Dynamic Memory Allocation in C
Exercise Session 5 (16.10.24): Intro to x86 Assembly
Exercise Session 6 (23.10.24): Advanced x86 Assembly, Stack frames
- Exercise Slides: Link
- Clockwise Spiral Rule: Link
- Kahoot W6: Link
Exercise Session 7 (30.10.24): Advanced x86 Assembly, Linking and Loading, GDB
- Exercise Slides: Link
- GDB Online Documentation: Link
- GDB Cheat Sheet: Link
- Kahoot W7: Link
Exercise Session 8 (6.11.24): Unix FHS, Advanced Linking
Exercise Session 9 (13.11.24): Buffer Overflow Attacks (Code Injections, ROP)
Exercise Session 10 (19.11.24): Floating Point, SSE3
Exercise Session 11 (27.11.24): Optimisations and CPE, Computer Architecture
Exercise Session 12 (4.12.24): Kernel, Exceptions, Caches and Virtual Memory
Exercise Session 13 (11.12.24): Cache Coherency, Memory Consistency Models, NUMA
Exercise Session 14 (18.12.24): DMA, PCIe, Course Summary