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

Additional Ressources


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 Session 7 (30.10.24): Advanced x86 Assembly, Linking and Loading, GDB 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