Advanced Computer Systems
|Title||Advanced Computer Systems (52015)|
|Instructor||Dries Kimpe (firstname.lastname@example.org)|
|Syllabus||This class will use the book Computer Systems: A Programmer'sPerspective (3rd Edition), Randal E. Bryant, David R. O'Hallaron (required).
This course focuses on studying modern computer systems from the point of view of a programmer, with an emphasis on topics which help you improve the performance, correctness or utility of user-level programs.
As such, this is intended to be a practical, hands-on study of contemporary computer systems. We will focus on the X86-64 architecture (as implemented by Intel/AMD 64 bit processors).
- Representing and Manipulating information: unsigned and two's complement representation, IEEE floating point and corresponding arithmetic.
- Machine level representation of programs: x86-64 assembly, control instructions, translation of basic C control constructs (such as loops and switch statements), a study of common code security vulnerabilities (such as buffer overflows).
- Processor architecture: study of a pipelined out of order processor.
- Code optimization
- Memory hierarchy: persistent storage(magnetic spinning disks, SSD), RAM and ROM, and caches.
- Virtual Memory
This is a hands on course; There will be multiple labs requiring you to program in C.
NOTE: This is a new course. The information above is the intended content of the course and subject to change.
MPCS 51040 C Programming or MPCS 51100 Advanced Programming.