- Hardcover: 1080 pages
- Publisher: Pearson; 2 edition (February 14, 2010)
- Language: English
- ISBN-10: 0136108040
- ISBN-13: 978-0136108047
- Product Dimensions: 7.5 x 1.6 x 9.3 inches
- Shipping Weight: 3.8 pounds (View shipping rates and policies)
- Average Customer Review: 139 customer reviews
- Amazon Best Sellers Rank: #161,120 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Computer Systems: A Programmer's Perspective (2nd Edition) 2nd Edition
Use the Amazon App to scan ISBNs and compare prices.
There is a newer edition of this item:
"Children of Blood and Bone"
Tomi Adeyemi conjures a stunning world of dark magic and danger in her West African-inspired fantasy debut. Learn more
Frequently bought together
Customers who bought this item also bought
Customers who viewed this item also viewed
From the Back Cover
For Computer Systems, Computer Organization and Architecture courses in CS, EE, and ECE departments.
Few students studying computer science or computer engineering will ever have the opportunity to build a computer system. On the other hand, most students will be required to use and program computers on a near daily basis. "Computer Systems: A Programmer's Perspective" introduces the important and enduring concepts that underlie computer systems by showing how these ideas affect the correctness, performance, and utility of application programs. The text's hands-on approach (including a comprehensive set of labs) helps students understand the "under-the-hood" operation of a modern computer system and prepares them for future courses in systems topics such as compilers, computer architecture, operating systems, and networking.
Visit the CSS: AP web page http: //csapp.cs.cmu.edu for more information and resources.
About the Author
Randal E. Bryant received the Bachelor's degree from the University of Michigan in 1973 and then attended graduate school at the Massachusetts Institute of Technology, receiving the Ph.D. degree in computer science in 1981. He spent three years as an Assistant Professor at the California Institute of Technology and has been on the faculty at Carnegie Mellon since 1984. He is currently the President's Professor of Computer Science and head of the Department of Computer Science. He also holds a courtesy appointment with the Department of Electrical and Computer Engineering.
He has taught courses in computer systems at both the undergraduate and graduate level for over 20 years. Over many years of teaching computer architecture courses, he began shifting the focus from how computers are designed to one of how programmers can write more efficient and reliable programs if they understand the system better. Together with Prof. O'Hallaron, he developed the course "Introduction to Computer Systems" at Carnegie Mellon that is the basis for this book. He has also taught courses in algorithms and programming.
Prof. Bryant's research concerns the design of software tools to help hardware designers verify the correctness of their systems. These include several types of simulators, as well as formal verification tools that prove the correctness of a design using mathematical methods. He has published over 100 technical papers. His research results are used by major computer manufacturers including Intel, Motorola, IBM, and Fujitsu. He has won several major awards for his research. These include two inventor recognition awards and a technical achievement award from the Semiconductor Research Corporation, the Kanellakis Theory and Practice Award from the Association for Computer Machinery (ACM), and the W. R. G. Baker Award and a Golden Jubilee Medal from the Institute of Electrical and Electronics Engineers (IEEE). He is a Fellow of both the ACM and the IEEE.
David R. O'Hallaron received the Ph.D. degree in computer science from the University of Virginia in 1986. After a stint at General Electric, he joined the Carnegie Mellon faculty in 1989 as a Systems Scientist. He is currently an Associate Professor in the Departments of Computer Science and Electrical and Computer Engineering.
He has taught computer systems courses at the undergraduate and graduate levels, on such topics as computer architecture, introductory computer systems, parallel processor design, and Internet services. Together with Prof. Bryant, he developed the course "Introduction to Computer Systems" that is the basis for this book.
Prof. O'Hallaron and his students perform research in the area of computer -systems. In particular, they develop software systems to help scientists and engineers simulate nature on computers. The best known example of their work is the Quake project, a group of computer scientists, civil engineers, and seismologists who have developed the ability to predict the motion of the ground during strong earthquakes, including major quakes in Southern California, Kobe, Japan, Mexico, and New Zealand. Along with the other members of the Quake Project, he received the Allen Newell Medal for Research Excellence from the CMU School of Computer Science. A benchmark he developed for the Quake project, 183.equake, was selected by SPEC for inclusion in the influential SPEC CPU and OMP (Open MP) benchmark suites.
Author interviews, book reviews, editors picks, and more. Read it now
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
I'm having to purchase the physical edition.
UPDATE: I bought the physical version. Wow. All those typographical errors in the Kindle version really screwed me over for the upcoming homework. Complete formulas were left out. Avoid.
Example: (|V| o) ....is actually supposed to be (|V|>>0). There are MORE significant examples than this one, where incorrect notation can make or break your understanding.
First 3 chapters are excellent. Very well explained. I think I filled my gaps in knowledge about floating points, instruction set (basics) and processor architecture.
- Chapter 5: IT industry has moved far ahead and the authors are still stuck on topics like "Loop Unrolling". There are more realistic and advanced coding performance problems/scenario in IT industry that I think should have been addressed in this book. Growing distance between IT industry and CS academics really is making CS degrees useless.
- Chapter 6: I think some of the very important topics about memory systems are missing, such as Cache Coherency, MESI protocol, Bus locks, LOCK prefix, CMPXCHG, XCHG etc. Temporal and spatial locality are overly covered (with fancy graphs and all :)).
- Part III: I glanced over Part III and I think You are probably better off with any other Linux book.
This is a textbook for my prereq Systems course. While I have no beef with equations, I simply do not see the point in complicating simple concepts with a sea of gibberish-looking equations.
I am a business major and went to law school after that. I have dealt with compact equations in statistics classes and they're quite helpful. In this case, they are simply unnecessary in order to learn the practical concepts.
I spent a full day trying to figure out FPU representation and a few other concepts from the material in this book and I was still confused. 10 minutes on a few online resources and I was shocked at how twisted the material is.
Assembly and machine code can be taught in a practical way. If you do not have a background in math, stay away from this book. It can easily end up making you regret taking the course.