What could a woman's wardrobe have to do with computer systems?
This is a clever mnemonic devised by Geoff Kuenning of Harvey Mudd College to help him remember which registers are used for passing arguments in a Linux x86-64 system:
%rdi: Diane's
%rsi: Silk
%rdx: dress
%rcx: costs
%r8: $8
%r9: 9
Thanks to Geoff for providing this helpful aid!
All topics concerning the contents and the use of the textbook:
R.E. Bryant & D.R. O'Hallaron, Computer Systems: A Programmer's Perspective
Wednesday, August 26, 2015
Monday, August 17, 2015
Third Edition: Complete Set of Lecture Notes Now Available
We've updated all of the lecture notes for CS:APP3e and posted them on the CS:APP3e instructor's site.
Tuesday, June 2, 2015
Third Edition: Ready for Fall Courses
The Third Edition of Computer Systems: A Programmer's Perspective came out in March. The CS:APP web page now contains information for this edition, with a link to the web pages for the second edition. We already have a (fortunately small) errata page.
This fall, we will be teaching 15-213, the CMU course that inspired the book originally. Leading up to that, we will update the lecture slides and the labs, and we will be making that available on the instructors' site.
This fall, we will be teaching 15-213, the CMU course that inspired the book originally. Leading up to that, we will update the lecture slides and the labs, and we will be making that available on the instructors' site.
Wednesday, February 11, 2015
The third edition will be out March 11, 2015
We spent many of our 2014 hours writing and revising the book. We feel it will bring the book up to date, and that the presentation of some of the material will be more clear.
According to Amazon, the book will be available starting March 11.
Here are some chapter-by-chapter highlights:
According to Amazon, the book will be available starting March 11.
Here are some chapter-by-chapter highlights:
- Ch. 2 (Data): After hearing many students saying ``It's too hard!'' we took a closer look and decided that the presentation could be improved by more clearly indicating which sections should be treated as informal discussion and which should be studied as formal derivations (and possibly skipped on first reading). Hopefully, these guideposts will help the students navigate the material, without us reducing the rigor of the presentation.
- Ch. 3 (Machine Programming): It's x86-64 all the way! The entire presentation of machine language is based on x86-64. Now that even cellphones run 64-bit processors, it seemed like it was time to make this change. Eliminating IA32 also freed up space to put floating-point machine code back in (it was present in the 1st edition and moved to the web for the 2nd edition). We generated a web aside describing IA32. Once students know x86-64, the step (back) to IA32 is fairly simple.
- Ch. 4 (Architecture): Welcome to Y86-64! We made the simple change of expanding all of the data widths to 64 bits. We also rewrote all of the machine code to use x86-64 procedure conventions.
- Ch. 5 (Optimization): We brought the machine-dependent performance optimization up to date based on more recent versions of x86 processors. The web aside on SIMD programming has been updated for AVX2. This material becomes even more relevant as industry looks to the SIMD instructions to juice up performance.
- Ch. 7 (Linking): Linking as been updated for x86-64. We expanded the discussion of position-independent code and introduce library inter positioning.
- Ch. 8 (Exceptional Control Flow): We have added a more rigorous treatment of signal handlers, including signal-safe functions.
- Ch. 11 (Network Programming): We have rewritten all of the code to use new libraries that support protocol-independent and thread-safe programming.
- Ch. 12 (Concurrent Programming): We have increased our coverage of thread-level parallelism to make programs run faster on multi-core processors.
Subscribe to:
Posts (Atom)