Computer Systems: A Programmer's Perspective with MasteringEngineering, Global Edition
by David Richard O'Hallaron, Randal E. Bryant
8.94 / 10 1.2K ratings
- Language
- English
- Published
- 2015
- Publisher
- Pearson Education Limited
- Pages
- 1120
- ISBN
- 9781292109428
Subjects
Original edition
Computer Systems: A Programmer's PerspectiveOriginally published in 2002 English Prentice Hall
Other editions (7)
- Computer Systems: A Programmer's Perspective

- Modified Mastering Engineering with Pearson eText -- ValuePack Access Card -- for Computer Systems: A Programmer's Perspective

- Computer Systems A Programmer's Perspective

- Computer Systems: A Programmer's Perspective plus Mastering Engineering with Pearson eText -- Access Card Package

- Computer Systems A Programmer's Perspective

What other readers say
Liked
This book is widely praised for providing a thorough and comprehensive understanding of fundamental computer systems concepts. Reviewers consistently highlight its ability to clarify complex topics such as virtual memory, processes, threads, assembly language, and memory hierarchy, often stating that it leaves no questions unanswered and fosters a deep appreciation for these intricate systems. Many commend its practical approach, which includes engaging online lab exercises, clear C programming examples, and real-world scenarios that effectively bridge theoretical knowledge with practical application. The book is frequently lauded for its clear, well-written, and easy-to-follow explanations, making a deep dive into low-level execution accessible and invaluable for understanding how software truly interacts with hardware.
Disliked
However, the book is noted for its demanding nature, with several readers describing it as a "mental marathon" that requires significant discipline and a substantial time commitment to complete thoroughly. Some reviewers found it less effective as a quick lookup guide, noting that its detailed, sequential structure means it needs to be read entirely to grasp concepts effectively, and can feel bogged down by jargon or hypotheticals if not approached this way. Criticisms also include a perceived lack of depth in certain advanced areas, with some suggesting that dedicated, more specialized texts might be better for specific subjects, or that the book can feel either too advanced without prior foundational knowledge or too superficial once that material has been learned elsewhere. Specific concerns were raised regarding the inclusion of code exhibiting Undefined Behavior without proper explanation, as well as some outdated content related to network protocols.
In short
Overall, this book stands out as a fundamental and transformative resource for gaining a deep understanding of computer systems from a programmer's perspective. It is highly recommended for serious software engineers, computer science students, and self-taught professionals who are committed to investing significant time and effort into mastering the technical intricacies of how programs execute "under the hood." Ideal readers should ideally possess a basic understanding of C programming and familiarity with Linux systems. While it may not serve as a quick reference guide or an introductory overview for complete beginners, those willing to engage with its comprehensive and hands-on approach will find it an indispensable tool for clarifying complex concepts and profoundly enhancing their knowledge of computer architecture and operating systems.
No reviews yet. Be the first.
