Systems Programming and Computer Architecture

What's new?

  • 17 Sep: assignment 1 released (datalab)

Course Materials


Overview

This course introduces the fundamental concepts, mechanisms, and techniques that underpin how computer systems process information, execute programs, and interact with the outside world. We focus on computing immediately above and below the boundary between hardware and software, and expose students to the practical issues that affect performance, portability, robustness, and extensibility through assembly language, the C programming language, and computer hardware from the perspective of systems software.

Topics include:

  • Representing information in computer systems
  • Systems programming in C
  • Assembly language and compiled code
  • Sequential, pipelined, and multicore processor design
  • Caches and the memory hierarchy
  • Performance optimization and performance measurement
  • Devices, I/O, traps, and DMA
  • Memory management

Main Text and Reference books

  • R. Bryant, D. O'Hallaron: Computer Systems: A Programmer's Perspective, 2nd ed. 2002, Prentice Hall.
  • B. Kernighan, D. Ritchie: C Programming Language, 2nd ed. 1988, Prentice Hall.

Recommended Text and Reference books

  • D. Patterson, J. Hennessy: Computer Organization and Design, 4nd ed. 2008, Morgan Kaufmann.
  • S. Harbison, G. Steele: C: A Reference Manual, 5nd ed. 1994, Prentice Hall.
  • S. Oualline: Practical C Programming, 1997, O'Reilly.
  • S. Prata: C Primer Plus, 2004, Sams.
  • U Kirch-Prinz, P. Prinz: C Pocket Reference, 2002, O'Reilly.
  • Intel publishes a lot of material covering the IA-32 processors. The official web site for IA-32 and Intel 64 documentation is here.

 

Lecturer

Staff

Hilfsassistenten

  • Nikolas Gobel (ngoebel at student) (En + De)
  • Benjamin Flueck (bflueck at student) (En + De)
  • Nicolas Ochsner (ochsnern at student) (En + De)

Course Hours

Lecture

  • Tue 10-12h, CAB G 61: Timothy (En)
  • Wed 10-12h, CAB G 61: Timothy (En)

Exercise

  • Thu 13-15h, CHN D 42, Simon Gerber (En + De)
  • Thu 13-15h, CHN G 46, Nikolas Gobel (En + De)
  • Thu 13-15h, LEE C 104, Pravin Shinde (En)
  • Thu 13-15h, LEE D 105, Benjamin Flueck (En + De)
  • Thu 13-15h, LFW C 1, Gerd Zellweger (En + De)
  • Thu 13-15h, ML J 34.1, Moritz Hoffmann (En + De)
  • Thu 13-15h, ML J 37.1, Nicolas Ochsner (En + De)