Programming Books C Java PHP Python Learn more Browse Programming Books
Buy Used
Condition: Used: Very Good
Comment: SHIPS DIRECTLY FROM AMAZON! Eligible for FREE Super Saver Shipping and PRIME. Tracking is included. Easy return policy. As pictured. Very light edge wear. No marks throughout. Carefully packed and promptly shipped.
Access codes and supplements are not guaranteed with used items.
Add to Cart
Trade in your item
Get a $2.55
Gift Card.
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

Computer Systems: A Programmer's Perspective Hardcover – August 23, 2002

ISBN-13: 978-0130340740 ISBN-10: 013034074X Edition: US ed

Price: $39.99
12 New from $58.21 28 Used from $15.01
Amazon Price New from Used from
"Please retry"
$58.21 $15.01
"Please retry"

There is a newer edition of this item:



Save up to 90% on Textbooks
Rent textbooks, buy textbooks, or get up to 80% back when you sell us your books. Shop Now

Product Details

  • Hardcover: 978 pages
  • Publisher: Prentice Hall; US ed edition (August 23, 2002)
  • Language: English
  • ISBN-10: 013034074X
  • ISBN-13: 978-0130340740
  • Product Dimensions: 9.2 x 7.8 x 1.6 inches
  • Shipping Weight: 3.7 pounds
  • Average Customer Review: 4.5 out of 5 stars  See all reviews (63 customer reviews)
  • Amazon Best Sellers Rank: #84,627 in Books (See Top 100 in Books)

Editorial Reviews


"I strongly believe that a programmer's perspective really helps in teaching the students the inner structure of computers." -- Kostas Daniilidis, University o f Pennsylvania "The book approaches the material in a way unlike any other, but similar to how I'd like to move our course." -- John Greiner, Rice University "This is an outstanding project and has a good chance of revolutionizing pedagogy in the field." -- Michael Scott, University of Rochester

From the Back Cover


This book is for programmers who want to write faster and more reliable programs. By learning how programs are mapped onto the system and executed, readers will better understand why programs behave the way they do and how inefficiencies arise. Computer systems are viewed broadly, comprising processor and memory hardware, compiler, operating system, and networking environment. With its programmer's perspective, readers can clearly see how learning about the inner workings of computer systems will help their further development as computer scientists and engineers. It also helps prepare them for further study in computer architecture, operating systems, compilers, and networking.

Topics include: data representations, machine-level representations of C programs, processor architecture, program optimization, memory hierarchy, linking, exceptional control flow, virtual memory and memory management, system-level 1/O, network programming, and concurrent programming. The coverage focuses on how these areas affect application and system programmers. For example, when covering data representations, it considers how the finite representations used to represent numbers can approximate integer and real numbers, but with limitations that must be understood by programmers. When covering caching, it discusses how the ordering of loop indices in matrix code can affect program performance. When covering networking, it describes how a concurrent server can efficiently handle requests from multiple clients.

The book is based on Intel-compatible (IA32) machines executing C programs on Unix or related operating systems such as Linux. Some familiarity with C or C++ is assumed, although hints are included to help readers making the transition from Java to C.

A complete set of resources, including labs and assignments, lecture notes, and code examples are available via the book's Web site at

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

This is a great book, in fact one of the best I've ever read.
It's at a medium level of depth where you'll get a really intuitive grasp of how the really complex computer systems work without overly intensive detail.
I used this as a text book for a class with an extremely good instructor who backed up the material in the book very well.
Douglas A. Rosser

Most Helpful Customer Reviews

125 of 135 people found the following review helpful By Amazon Customer on September 14, 2011
Format: Kindle Edition Verified Purchase
There are too many typos. It's a complete waste of money and time trying to decipher some of the formulas, where variables like x' can sometimes mixed up with x'', where there is poor spacing between different formulas, etc. There are even basic word typos ("buy" for "by").

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) actually supposed to be (|V|>>0). There are MORE significant examples than this one, where incorrect notation can make or break your understanding.
4 Comments Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
61 of 64 people found the following review helpful By AmazonBuyer on March 24, 2005
Format: Hardcover
What a splendid book! I wish I had gone to CMU and take this course. This book is written by CMU professors after teaching Computer Systems course for few years. This book covers broad spectrum of topics from Operating Systems, Compilers, Computer Architecture, Assembly Level Programming, Kernel internals, Linkers, etc from a programmer's perspective (as the title aptly says).

I am searching for words to describe the usefulness of this book. In my experience, I have had hard time learning some of the topics where Operating systems, Processor and Compilers intersect. For example, Linkers and Loaders, program disassembly using reverse-engineering, virtual memory in Kernel etc. After all the hard work, I found the right book which grinds all the famous books in different areas and gives the right juice for the real programmers to taste and digest.

Those famous books are:
[1] Computer Organization and Design Second Edition : The Hardware/Software Interface by David A. Patterson, John L. Hennessy
[2] UNIX Internals: The New Frontiers by Uresh Vahalia
[3] Linux Kernel Development by Robert Love
[4] Linkers and Loaders by John R. Levine
[5] GNU Binutils (GAS, objdump, ar, nm etc) Documentation

Excellent job. I really appreciate the work and content of this book.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
32 of 34 people found the following review helpful By goldenv on November 18, 2003
Format: Hardcover
Have it on my desk since I bought for my computer architecture course (Csci 2021, Univ. of Minnesota - Twin Cities). Such a cool book to learn how computer hardware and software *really* work together, and why finding that out, could make us a more valuable computer scientist/programmer. Also provides a great hand to get you ready for advanced classes like Operating Systems, Compilers. My favorite chapter in the book is about Caches. It's unbelievable to first find out how much cached really matter! Thanks Prof. Bryant and O'Hallaron.
I think the first 7 chapters are what the most important to understand and grasp. Rest of the chapters are important too but they usually will overlap with other topics/classes like operating systems. Also, chapter 4 goes in more detail in processor architecure like pipelined CPU and will probably help more to the computer engineer; although computer scientists do learn a lot out of it and will help write code to exploit modern pipelined CPU's, like the deeply pipelined, Pentium 4. But I think the first 7 chapters are the ones, that sets this book aside from the others. You will need access to LINUX, as most of the discussions rotate around it like the virtual address space, assembly code - GAS and so on use the linux implementations.
After reading, you will be able tp convert decimal nos to binary and even floating point nos to binary format very easily.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
22 of 24 people found the following review helpful By C. Lee on June 7, 2011
Format: Kindle Edition
I am a software engineer who already have 5 years experience. When I was at University of Penn., we used this book(1st edition) as supplement. However, I found it is just deserved to be used as main textbook: clean, friendly writing style, concrete examples to explain abstract system concepts, and interesting exercises with detailed solution. It's the number one system textbooks in my mind. Even though I have worked for 5 years, this books remain it's place on my bookshelf.

The only little problem of this book, both the strength and weakness, is that it chooses x86 architecture to explain the system concepts. x86 is great architecture, but from an embedded system developer point of view, I will strongly recommend the authors to introduce some embedded processors topics(like ARM): they are small, powerful enough to drive most of mobile devices, and consumes "much" less power, and more importantly, they are the rising stars in the post PC world.
2 Comments Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
18 of 20 people found the following review helpful By Adam on May 25, 2005
Format: Hardcover
I just completed a college course using this textbook... the course was tough, but the book was very good and useful. This is one textbook I won't be selling any time soon!

The practice problems provided in the book were usually very good, and the programming problems distributed with it were fun and educational, including topics like Buffer Overflows, Memory Optimizations, and Debugging with GDB, among others.

There are *some* problems with this book, but it doesn't suffer from the devastating flaws that plague most computer science textbooks. Some sections lack thorough explanations and examples, and the writting is a bit unclear at times. Some solutions to the practice problems are vague and don't really provide much insight on how to solve the problems. Luckily, these flaws only creep up in a few places.

Compared to most technical textbooks, however, this one really shines. It's not quite perfect, so I think 4 stars is appropriate.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Customer Images

Most Recent Customer Reviews


What Other Items Do Customers Buy After Viewing This Item?