Skip to content
Hardcover Computer Systems: A Programmer's Perspective Book

ISBN: 0136108040

ISBN13: 9780136108047

Computer Systems: A Programmer's Perspective

Select Format

Select Condition ThriftBooks Help Icon

Recommended

Format: Hardcover

Condition: Very Good

$69.39
Save $94.01!
List Price $163.40
Almost Gone, Only 1 Left!

Book Overview

&>standalone product; MasteringEngineering (R) does not come packaged with this content. If you would like to purchase both the physical text and MasteringEngineering search for 0134123832 /... This description may be from another edition of this product.

Customer Reviews

5 ratings

Densely packed and valuable

This book is a very unusual one because it explains computer architecture from the standpoint of the C/C++ programmer. That is, its object is to allow the programmer to understand how the architecture of the computer on which he/she programs effects the performance and execution of these programs. Things such as virtual memory, parallelization, optimization, and even logical and mathematical operations are effected by the architecture of the computer itself. For example - big endian versus little endian machines. You'd believe you wouldn't have to think about how your computer is organized at this level - that is one of the reasons you program in a high level language anyways, right? Wrong. If you have data stored in big endian format that is mathematically operated upon in a little endian machine, or vice versa, you will wind up with something quite different from what you intended. That's the kind of information this book gets into. Some have labeled this book as "hard". It really is not hard as much as it is densely packed with knowledge. You need to take each concept within each chapter and think about it before you go on to the next. If you do this you'll not only get much out of it during your initial read, you'll have a valuable reference for some time to come. To get the most of this book you should already be a capable C/C++ programmer and you should also know the building blocks of a computer. The book goes over these things very quickly but it really is not enough if you start out knowing nothing about these subjects. Highly recommended. The following is the proposed table of contents for the second edition: 1 A Tour of Computer Systems 1 I Program Structure and Execution 25 2 Representing and Manipulating Information 29 3 Machine-Level Representation of Programs 145 4 Processor Architecture 317 5 Optimizing Program Performance 449 6 The Memory Hierarchy 531 II Running Programs on a System 619 7 Linking 623 8 Exceptional Control Flow 667 9 Virtual Memory 741 III Interaction and Communication Between Programs 819 10 System-Level I/O 823 11 Network Programming 847 12 Concurrent Programming 893 A Error Handling 957 A.1 Error Handling in Unix Systems 957 A.2 Error-Handling Wrappers 959

Great book

This book teaches you everything you need to know about computer systems from a programmer's perspective. Complete with detailed examples and exercises, this book has it all. The information contained in this book makes you think about programming in an entirely new light. Highly recommended.

Everything you need to know as a programmer

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.

Bryant and O'Hallaron created a great course

OK, I haven't actually read this book, but I took Bryant and O'Hallaron's course in 1998 (the first semester it was offered, I think) and was a TA for it a year later. They saw the need for a new course for CS undergrads who were coming in and learning C++ and Java without really understanding the guts of the machine. Their course taught things like bit-level representation of numbers (including two's complement and IEEE floating-point), assembly language, virtual memory, memory allocation, caching and its effect on performance, and the basics of TCP/IP. It was a great course--very informative and a lot of fun--and since there was nothing else like it out there, they had to write this book to go along with it.I'm sure the book lives up to the course--and if not, you can rate this review "very unhelpful!" (I did read drafts of the chapters while I was a TA, so I hope I know what I'm talking about!)

I love this book

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. You will also learn more about twos complement operations and integer and floating point arithmetic, able to understand assembly code (GAS: GNU Assembler code), how procedures are implemented using stacks array allocation, debugging, embedding assembly code in C programs, more about CPU instruction sets and hardware control language and their implementations, pipelining, optimizing programs and expoliting caches, understanding modern CPU's, various storage technologies, linking, symbol tables, object files, shared object files, and more.Don't forget to visit the book's website before buying the book. It is Here is a brief look about what it is all about!Chapter 1: A Tour of Computer SystemsChapter 2: Representing and Manipulating InformationChapter 3: Machine-Level Representation of ProgramsChapter 4: Processor Architecture [MORE FOR COMPUTER ENGINEERS!]Chapter 5: Optimizing Program PerformanceChapter 6: The Memory Hierarchy [COOL ONE!]Chapter 7: LinkingChapter 8: Exceptional Control FlowChapter 9: Measuring Program Execution TimeChapter 10: Virtual MemoryChapter 11: System-Level I/OChapter 12: Network ProgrammingChapter 13: Concurrent Programming
Copyright © 2023 Thriftbooks.com Terms of Use | Privacy Policy | Do Not Sell/Share My Personal Information | Cookie Policy | Cookie Preferences | Accessibility Statement
ThriftBooks® and the ThriftBooks® logo are registered trademarks of Thrift Books Global, LLC
GoDaddy Verified and Secured